Module Rig_mlx5_abi.Doorbell
A doorbell record holds a count that a process stores for the NIC in its memory.
A queue pair's record and a completion queue's record are 8 bytes each, aligned to 8.
val size : intsize is 8, the bytes of a record.
val send : intsend is the byte offset in a queue pair's record of its send count, a 32-bit word holding the low 16 bits of the ring's producer count.
val receive : intreceive is the byte offset in a queue pair's record of its receive count, a 32-bit word holding the low 16 bits of the receive ring's producer count.
val consumed : intconsumed is the byte offset in a completion queue's record of its consumer count, a 32-bit word holding the count's low 24 bits.
val armed : intarmed is the byte offset in a completion queue's record of its arm word, the first word of arm.
val arm : sequence:int -> count:int -> cq:int -> int * intarm ~sequence ~count ~cq is the two 32-bit words of the store that arms completion queue number cq at consumer count count, after which the NIC raises an event at the next completion. sequence counts the events the queue raised, and its low 2 bits are stored. The first word is also stored at armed.
Raises Invalid_argument if sequence or count is negative, or cq is not in [0;2{^24}-1].