コード例 #1
0
ファイル: SubmissionQueue.cs プロジェクト: tmds/IoUring
 public static SubmissionQueue CreateSubmissionQueue(void *ringBase, io_sqring_offsets *offsets, io_uring_sqe *elements)
 => new SubmissionQueue(
     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),
     flags: Add <uint>(ringBase, offsets->flags),
     dropped: Add <uint>(ringBase, offsets->dropped),
     array: Add <uint>(ringBase, offsets->array),
     sqes: elements
     );
コード例 #2
0
 public SubmissionQueue(int ringFd, void *ringBase, io_sqring_offsets *offsets, io_uring_sqe *elements, bool sqPolled, bool ioPolled)
     : this(ringBase, offsets)
 {
     _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);
     _flags        = Add <uint>(ringBase, offsets->flags);
     _dropped      = Add <uint>(ringBase, offsets->dropped);
     _array        = Add <uint>(ringBase, offsets->array);
     _sqes         = elements;
     _tailInternal = 0;
     _headInternal = 0;
     _sqPolled     = sqPolled;
     _ioPolled     = ioPolled;
 }
コード例 #3
0
ファイル: SubmissionQueue.cs プロジェクト: tkp1n/IoUring
        private SubmissionQueue(void *ringBase, io_sqring_offsets *offsets)
        {
            var entries = *Add <uint>(ringBase, offsets->ring_entries);

            _states = new int[entries];
        }
コード例 #4
0
 private SubmissionQueue(void *ringBase, io_sqring_offsets *offsets)
 {
 }