public static CompletionQueue CreateCompletionQueue(void *ringBase, io_cqring_offsets *offsets) => new CompletionQueue( head: Add <uint>(ringBase, offsets->head), tail: Add <uint>(ringBase, offsets->tail), ringMask: Add <uint>(ringBase, offsets->ring_mask), ringEntries: Add <uint>(ringBase, offsets->ring_entries), overflow: Add <uint>(ringBase, offsets->overflow), cqes: Add <io_uring_cqe>(ringBase, offsets->cqes) );
public CompletionQueue(int ringFd, void *ringBase, io_cqring_offsets *offsets, bool ioPolled) { _ringFd = ringFd; _head = Add <uint>(ringBase, offsets->head); _tail = Add <uint>(ringBase, offsets->tail); _ringMask = *Add <uint>(ringBase, offsets->ring_mask); _ringEntries = *Add <uint>(ringBase, offsets->ring_entries); _overflow = Add <uint>(ringBase, offsets->overflow); _cqes = Add <io_uring_cqe>(ringBase, offsets->cqes); _ioPolled = ioPolled; _headInternal = _head; _tailInternal = _tail; }