package gouring import "unsafe" const ( SizeofUnsigned = unsafe.Sizeof(uint32(0)) SizeofUint32 = unsafe.Sizeof(uint32(0)) SizeofIoUringSqe = unsafe.Sizeof(IoUringSqe{}) Align128IoUringSqe = 64 SizeofIoUringCqe = unsafe.Sizeof(IoUringCqe{}) Align32IoUringCqe = SizeofIoUringCqe SizeofIoUringProbe = unsafe.Sizeof(IoUringProbe{}) SizeofIoUringProbeOp = unsafe.Sizeof(IoUringProbeOp{}) SizeofIoUringBufRing = unsafe.Sizeof(IoUringBufRing{}) SizeofIoUringBuf = unsafe.Sizeof(IoUringBuf{}) ) func _SizeChecker() { var x [1]struct{} _ = x[SizeofIoUringSqe-64] _ = x[SizeofIoUringCqe-16] _ = x[SizeofIoUringProbe-16] _ = x[SizeofIoUringProbeOp-8] _ = x[SizeofIoUringBufRing-16] _ = x[SizeofIoUringBuf-16] } type IoUring struct { Sq IoUringSq Cq IoUringCq Flags uint32 RingFd int Features uint32 EnterRingFd int IntFlags uint8 pad [3]uint8 pad2 uint32 } type IoUringSq struct { khead unsafe.Pointer // *uint32 ktail unsafe.Pointer // *uint32 kringMask unsafe.Pointer // *uint32 kringEntries unsafe.Pointer // *uint32 kflags unsafe.Pointer // *uint32 kdropped unsafe.Pointer // *uint32 Array uint32Array //ptr arith Sqes ioUringSqeArray //ptr arith SqeHead uint32 SqeTail uint32 RingSz uint32 RingPtr unsafe.Pointer RingMask, RingEntries uint32 pad [2]uint32 } func (sq *IoUringSq) _KHead() *uint32 { return (*uint32)(sq.khead) } func (sq *IoUringSq) _KTail() *uint32 { return (*uint32)(sq.ktail) } func (sq *IoUringSq) _KRingMask() *uint32 { return (*uint32)(sq.kringMask) } func (sq *IoUringSq) _KRingEntries() *uint32 { return (*uint32)(sq.kringEntries) } func (sq *IoUringSq) _KFlags() *uint32 { return (*uint32)(sq.kflags) } func (sq *IoUringSq) _KDropped() *uint32 { return (*uint32)(sq.kdropped) } type IoUringCq struct { khead unsafe.Pointer // *uint32 ktail unsafe.Pointer // *uint32 kringMask unsafe.Pointer // *uint32 kringEntries unsafe.Pointer // *uint32 kflags unsafe.Pointer // *uint32 koverflow unsafe.Pointer // *uint32 Cqes ioUringCqeArray //ptr arith RingSz uint32 RingPtr unsafe.Pointer RingMask, RingEntries uint32 pad [2]uint32 } func (cq *IoUringCq) _KHead() *uint32 { return (*uint32)(cq.khead) } func (cq *IoUringCq) _KTail() *uint32 { return (*uint32)(cq.ktail) } func (cq *IoUringCq) _KRingMask() *uint32 { return (*uint32)(cq.kringMask) } func (cq *IoUringCq) _KRingEntries() *uint32 { return (*uint32)(cq.kringEntries) } func (cq *IoUringCq) _KFlags() *uint32 { return (*uint32)(cq.kflags) } func (cq *IoUringCq) _KOverflow() *uint32 { return (*uint32)(cq.koverflow) }