Esempio n. 1
0
 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)
     );
Esempio n. 2
0
 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;
 }