Type of a backend. 'a is the response type, and 'b is the request id type (e.g. int or int64).
init ~sring is an initialized backend attached to shared ring sring.
slot backend idx retrieves the request/response slot at idx as an Cstruct.t. idx should be less than nr_ents.
val nr_ents : ('a, 'b) t -> intnr_ents backend is the number of slots in the underlying shared ring.
val next_res_id : ('a, 'b) t -> intnext_res_id backend advances the response producer and return the latest slot id.
val push_responses : ('a, 'b) t -> unitpush_responses backend updates the shared response producer.
val push_responses_and_check_notify : ('a, 'b) t -> boolpush_responses_and_check_notify backend updates the shared response producer, and returns true if an event notification is required to wake up the remote domain.
val more_to_do : ('a, 'b) t -> boolmore_to_do backend returns true if there are outstanding requests on the ring which we should immediately process without waiting for an event notification.
ack_requests t fn applies fn slot to each slot containing a new request.
val to_string : ('a, 'b) t -> stringto_string backend pretty-prints the ring metadata.