Versions in this module Expand all Collapse all v1 v1.0.1 Nov 29, 2025 v1.0.0 Nov 29, 2025 Changes in this version + const AcceptMultishot + const AsyncCancelAll + const AsyncCancelAny + const AsyncCancelFd + const AsyncCancelFdFixed + const CQEBufferShift + const CQEFBuffer + const CQEFMore + const CQEFNotif + const CQEFSockNonempty + const CQEventFdDisabled + const EnterExtArg + const EnterGetEvents + const EnterRegisteredRing + const EnterSQWait + const EnterSQWakeup + const FeatCQESkip + const FeatCurPersonality + const FeatExtArg + const FeatFastPoll + const FeatLinkedFile + const FeatNativeWorkers + const FeatNoDrop + const FeatPoll32Bits + const FeatRWCurPos + const FeatRcrcTags + const FeatRegRegRing + const FeatSQPollNonfixed + const FeatSingleMMap + const FeatSubmitStable + const FileIndexAlloc + const FsyncDatasync + const IOWQBound + const IOWQUnbound + const IntFlagAppMem + const IntFlagRegRegRing + const IntFlagRegRing + const LibraryVersionMajor + const LibraryVersionMinor + const LinkTimeoutUpdate + const MsgData + const MsgRingCQESkip + const MsgRingFlagsPass + const MsgSendFd + const NotifUsageZCCopied + const OpAccept + const OpAsyncCancel + const OpClose + const OpConnect + const OpEpollCtl + const OpFadvise + const OpFallocate + const OpFgetxattr + const OpFilesUpdate + const OpFsetxattr + const OpFsync + const OpGetxattr + const OpLast + const OpLinkTimeout + const OpLinkat + const OpMadvise + const OpMkdirat + const OpMsgRing + const OpNop + const OpOpenat + const OpOpenat2 + const OpPollAdd + const OpPollRemove + const OpProvideBuffers + const OpRead + const OpReadFixed + const OpReadv + const OpRecv + const OpRecvmsg + const OpRemoveBuffers + const OpRenameat + const OpSend + const OpSendMsgZC + const OpSendZC + const OpSendmsg + const OpSetxattr + const OpShutdown + const OpSocket + const OpSplice + const OpStatx + const OpSymlinkat + const OpSyncFileRange + const OpTee + const OpTimeout + const OpTimeoutRemove + const OpUnlinkat + const OpUringCmd + const OpWrite + const OpWriteFixed + const OpWritev + const PbufRingMMap + const PollAddLevel + const PollAddMulti + const PollUpdateEvents + const PollUpdateUserData + const RecvMultishot + const RecvsendFixedBuf + const RecvsendPollFirst + const RegisterBuffers + const RegisterBuffers2 + const RegisterBuffersUpdate + const RegisterEnableRings + const RegisterEventFD + const RegisterEventFDAsync + const RegisterFileAllocRange + const RegisterFiles + const RegisterFiles2 + const RegisterFilesSkip + const RegisterFilesUpdate + const RegisterFilesUpdate2 + const RegisterIOWQAff + const RegisterIOWQMaxWorkers + const RegisterLast + const RegisterPbufRing + const RegisterPersonality + const RegisterProbe + const RegisterRestrictions + const RegisterRingFDs + const RegisterSyncCancel + const RegisterUseRegisteredRing + const RestrictionLast + const RestrictionRegisterOp + const RestrictionSQEFlagsAllowed + const RestrictionSQEFlagsRequired + const RestrictionSQEOp + const RsrcRegisterSparse + const SQCQOverflow + const SQNeedWakeup + const SQTaskrun + const SendZCReportUsage + const SetupAttachWQ + const SetupCQE32 + const SetupCQSize + const SetupClamp + const SetupCoopTaskrun + const SetupDeferTaskrun + const SetupIOPoll + const SetupNoMmap + const SetupRDisabled + const SetupRegisteredFdOnly + const SetupSQAff + const SetupSQE128 + const SetupSQPoll + const SetupSingleIssuer + const SetupSubmitAll + const SetupTaskrunFlag + const SocketUringOpSiocinq + const SocketUringOpSiocoutq + const SpliceFFdInFixed + const SqeAsync + const SqeBufferSelect + const SqeCQESkipSuccess + const SqeFixedFile + const SqeIODrain + const SqeIOHardlink + const SqeIOLink + const TimeoutAbs + const TimeoutBoottime + const TimeoutClockMask + const TimeoutETimeSuccess + const TimeoutMultishot + const TimeoutRealtime + const TimeoutUpdate + const TimeoutUpdateMask + const UnregisterBuffers + const UnregisterEventFD + const UnregisterFiles + const UnregisterIOWQAff + const UnregisterPbufRing + const UnregisterPersonality + const UnregisterRingFDs + const UringCmdFixed + var RingBufStructSize = uint16(unsafe.Sizeof(BufAndRing{})) + func BufRingMask(entries uint32) int + func CheckKernelVersion(k, major, minor int) (bool, error) + func CheckVersion(major, minor int) bool + func CompareKernelVersion(a, b KernelVersion) int + func MajorVersion() int + func MinorVersion() int + func MlockSize(entries, flags uint32) (uint64, error) + func MlockSizeParams(entries uint32, p *Params) (uint64, error) + func Mmap(fd int, p *Params, sq *SubmissionQueue, cq *CompletionQueue) error + func Setup(entries uint32, p *Params) (uint, error) + func SetupRingPointers(p *Params, sq *SubmissionQueue, cq *CompletionQueue) + func UnmapRings(sq *SubmissionQueue, cq *CompletionQueue) + type BufAndRing struct + Addr uint64 + Bid uint16 + Len uint32 + Tail uint16 + func (br *BufAndRing) BufRingAdd(addr uintptr, length uint32, bid uint16, mask, bufOffset int) + func (br *BufAndRing) BufRingAdvance(count int) + func (br *BufAndRing) BufRingInit() + type BufReg struct + Bgid uint16 + Pad uint16 + Resv [3]uint64 + RingAddr uint64 + RingEntries uint32 + type CQRingOffsets struct + type CompletionQueue struct + type CompletionQueueEvent struct + Flags uint32 + Res int32 + UserData uint64 + func (c *CompletionQueueEvent) GetData() unsafe.Pointer + func (c *CompletionQueueEvent) GetData64() uint64 + type FileIndexRange struct + Len uint32 + Off uint32 + Resv uint64 + type FilesUpdate struct + Fds uint64 + Offset uint32 + Resv uint32 + type GetEventsArg struct + type KernelVersion struct + Flavor string + Kernel int + Major int + Minor int + func GetKernelVersion() (*KernelVersion, error) + type Params struct + type Probe struct + LastOp uint8 + Ops [probeOpsSize]ProbeOp + OpsLen uint8 + Res uint16 + Res2 [3]uint32 + func GetProbe() (*Probe, error) + func (p Probe) IsSupported(op uint8) bool + type ProbeOp struct + Flags uint16 + Op uint8 + Res uint8 + Res2 uint32 + type RecvmsgOut struct + ControlLen uint32 + Flags uint32 + Namelen uint32 + PayloadLen uint32 + func RecvmsgValidate(buf unsafe.Pointer, bufLen int, msgh *syscall.Msghdr) *RecvmsgOut + func (o *RecvmsgOut) CmsgFirsthdr(msgh *syscall.Msghdr) *syscall.Cmsghdr + func (o *RecvmsgOut) CmsgNexthdr(msgh *syscall.Msghdr, cmsg *syscall.Cmsghdr) *syscall.Cmsghdr + func (o *RecvmsgOut) Name() unsafe.Pointer + func (o *RecvmsgOut) Payload(msgh *syscall.Msghdr) unsafe.Pointer + func (o *RecvmsgOut) PayloadLength(bufLen int, msgh *syscall.Msghdr) uint32 + type Restriction struct + OpCode uint16 + OpFlags uint8 + Resv uint8 + Resv2 [3]uint32 + type Ring struct + func CreateRing(entries uint32) (*Ring, error) + func NewRing() *Ring + func (ring *Ring) BufRingCQAdvance(br *BufAndRing, count int) + func (ring *Ring) CQAdvance(numberOfCQEs uint32) + func (ring *Ring) CQESeen(event *CompletionQueueEvent) + func (ring *Ring) CQEventfdEnabled() bool + func (ring *Ring) CQHasOverflow() bool + func (ring *Ring) CQReady() uint32 + func (ring *Ring) CloseRingFd() (uint, error) + func (ring *Ring) CqEventfdToggle(enabled bool) error + func (ring *Ring) EnableRings() (uint, error) + func (ring *Ring) Enter(submitted uint32, waitNr uint32, flags uint32, sig unsafe.Pointer) (uint, error) + func (ring *Ring) Enter2(submitted uint32, waitNr uint32, flags uint32, sig unsafe.Pointer, size int) (uint, error) + func (ring *Ring) ForEachCQE(callback func(cqe *CompletionQueueEvent)) + func (ring *Ring) FreeBufRing(bgid int) error + func (ring *Ring) GetEvents() (uint, error) + func (ring *Ring) GetProbeRing() (*Probe, error) + func (ring *Ring) GetSQE() *SubmissionQueueEntry + func (ring *Ring) PeekBatchCQE(cqes []*CompletionQueueEvent) uint32 + func (ring *Ring) PeekCQE() (*CompletionQueueEvent, error) + func (ring *Ring) QueueExit() + func (ring *Ring) QueueInit(entries uint32, flags uint32) error + func (ring *Ring) QueueInitMem(entries uint32, p *Params, buf unsafe.Pointer, bufSize uint64) error + func (ring *Ring) QueueInitParams(entries uint32, p *Params) error + func (ring *Ring) QueueMmap(fd int, p *Params) error + func (ring *Ring) Register(fd int, opcode uint32, arg unsafe.Pointer, nrArgs uint32) (uint, syscall.Errno) + func (ring *Ring) RegisterBufferRing(reg *BufReg, _ uint32) (uint, error) + func (ring *Ring) RegisterBuffers(iovecs []syscall.Iovec) (uint, error) + func (ring *Ring) RegisterBuffersSparse(nr uint32) (uint, error) + func (ring *Ring) RegisterBuffersTags(iovecs []syscall.Iovec, tags []uint64) (uint, error) + func (ring *Ring) RegisterBuffersUpdateTag(off uint32, iovecs []syscall.Iovec, tags *uint64, nr uint32) (uint, error) + func (ring *Ring) RegisterEventFd(fd int) (uint, error) + func (ring *Ring) RegisterEventFdAsync(fd int) (uint, error) + func (ring *Ring) RegisterFileAllocRange(off, length uint32) (uint, error) + func (ring *Ring) RegisterFiles(files []int) (uint, error) + func (ring *Ring) RegisterFilesSparse(nr uint32) (uint, error) + func (ring *Ring) RegisterFilesTags(files []int, tags []uint64) (uint, error) + func (ring *Ring) RegisterFilesUpdate(off uint, files []int) (uint, error) + func (ring *Ring) RegisterFilesUpdateTag(off uint, files []int, tags []uint64) (uint, error) + func (ring *Ring) RegisterIOWQAff(cpusz uint64, mask *unix.CPUSet) error + func (ring *Ring) RegisterIOWQMaxWorkers(val []uint) (uint, error) + func (ring *Ring) RegisterPersonality() (uint, error) + func (ring *Ring) RegisterProbe(probe *Probe, nrOps int) (uint, error) + func (ring *Ring) RegisterRestrictions(res []Restriction) (uint, error) + func (ring *Ring) RegisterRingFd() (uint, error) + func (ring *Ring) RegisterSyncCancel(reg *SyncCancelReg) (uint, error) + func (ring *Ring) RingDontFork() error + func (ring *Ring) RingFd() int + func (ring *Ring) SQReady() uint32 + func (ring *Ring) SQRingWait() (uint, error) + func (ring *Ring) SQSpaceLeft() uint32 + func (ring *Ring) SetupBufRing(nentries uint32, bgid int, flags uint32) (*BufAndRing, error) + func (ring *Ring) Submit() (uint, error) + func (ring *Ring) SubmitAndGetEvents() (uint, error) + func (ring *Ring) SubmitAndWait(waitNr uint32) (uint, error) + func (ring *Ring) SubmitAndWaitTimeout(waitNr uint32, ts *syscall.Timespec, sigmask *unix.Sigset_t) (*CompletionQueueEvent, error) + func (ring *Ring) UnregisterBufferRing(bgid int) (uint, error) + func (ring *Ring) UnregisterBuffers() (uint, error) + func (ring *Ring) UnregisterEventFd(fd int) (uint, error) + func (ring *Ring) UnregisterFiles() (uint, error) + func (ring *Ring) UnregisterIOWQAff() (uint, error) + func (ring *Ring) UnregisterPersonality() (uint, error) + func (ring *Ring) UnregisterRingFd() (uint, error) + func (ring *Ring) WaitCQE() (*CompletionQueueEvent, error) + func (ring *Ring) WaitCQENr(waitNr uint32) (*CompletionQueueEvent, error) + func (ring *Ring) WaitCQETimeout(ts *syscall.Timespec) (*CompletionQueueEvent, error) + func (ring *Ring) WaitCQEs(waitNr uint32, ts *syscall.Timespec, sigmask *unix.Sigset_t) (*CompletionQueueEvent, error) + func (ring *Ring) WaitCQEsNew(waitNr uint32, ts *syscall.Timespec, sigmask *unix.Sigset_t) (*CompletionQueueEvent, error) + type RsrcRegister struct + Data uint64 + Flags uint32 + Nr uint32 + Resv2 uint64 + Tags uint64 + type RsrcUpdate struct + Data uint64 + Offset uint32 + Resv uint32 + type RsrcUpdate2 struct + Data uint64 + Nr uint32 + Offset uint32 + Resv uint32 + Resv2 uint32 + Tags uint64 + type SQRingOffsets struct + type SubmissionQueue struct + type SubmissionQueueEntry struct + Addr uint64 + Addr3 uint64 + BufIG uint16 + Fd int32 + Flags uint8 + IoPrio uint16 + Len uint32 + Off uint64 + OpCode uint8 + OpcodeFlags uint32 + Personality uint16 + SpliceFdIn int32 + UserData uint64 + func (entry *SubmissionQueueEntry) PrepareAccept(fd int, addr uintptr, addrLen uint64, flags uint32) + func (entry *SubmissionQueueEntry) PrepareAcceptDirect(fd int, addr uintptr, addrLen uint64, flags uint32, fileIndex uint32) + func (entry *SubmissionQueueEntry) PrepareCancel(userData uintptr, flags int) + func (entry *SubmissionQueueEntry) PrepareCancel64(userData uint64, flags int) + func (entry *SubmissionQueueEntry) PrepareCancelFd(fd int, flags uint32) + func (entry *SubmissionQueueEntry) PrepareClose(fd int) + func (entry *SubmissionQueueEntry) PrepareCloseDirect(fileIndex uint32) + func (entry *SubmissionQueueEntry) PrepareCmdSock(cmdOp int, fd int, _ int, _ int, _ unsafe.Pointer, _ int) + func (entry *SubmissionQueueEntry) PrepareConnect(fd int, addr *syscall.Sockaddr, addrLen uint64) + func (entry *SubmissionQueueEntry) PrepareFadvise(fd int, offset uint64, length int, advise uint32) + func (entry *SubmissionQueueEntry) PrepareFallocate(fd int, mode int, offset, length uint64) + func (entry *SubmissionQueueEntry) PrepareFgetxattr(fd int, name, value []byte) + func (entry *SubmissionQueueEntry) PrepareFilesUpdate(fds []int, offset int) + func (entry *SubmissionQueueEntry) PrepareFsetxattr(fd int, name, value []byte, flags int) + func (entry *SubmissionQueueEntry) PrepareFsync(fd int, flags uint32) + func (entry *SubmissionQueueEntry) PrepareGetxattr(name, value, path []byte) + func (entry *SubmissionQueueEntry) PrepareLink(oldPath, newPath []byte, flags int) + func (entry *SubmissionQueueEntry) PrepareLinkTimeout(duration time.Duration, flags uint32) + func (entry *SubmissionQueueEntry) PrepareLinkat(oldFd int, oldPath []byte, newFd int, newPath []byte, flags int) + func (entry *SubmissionQueueEntry) PrepareMadvise(addr uintptr, length uint, advice int) + func (entry *SubmissionQueueEntry) PrepareMkdir(path []byte, mode uint32) + func (entry *SubmissionQueueEntry) PrepareMkdirat(dfd int, path []byte, mode uint32) + func (entry *SubmissionQueueEntry) PrepareMsgRing(fd int, length uint32, data uint64, flags uint32) + func (entry *SubmissionQueueEntry) PrepareMsgRingCqeFlags(fd int, length uint32, data uint64, flags, cqeFlags uint32) + func (entry *SubmissionQueueEntry) PrepareMsgRingFd(fd int, sourceFd int, targetFd int, data uint64, flags uint32) + func (entry *SubmissionQueueEntry) PrepareMsgRingFdAlloc(fd int, sourceFd int, data uint64, flags uint32) + func (entry *SubmissionQueueEntry) PrepareMultishotAccept(fd int, addr uintptr, addrLen uint64, flags int) + func (entry *SubmissionQueueEntry) PrepareMultishotAcceptDirect(fd int, addr uintptr, addrLen uint64, flags int) + func (entry *SubmissionQueueEntry) PrepareNop() + func (entry *SubmissionQueueEntry) PrepareOpenat(dfd int, path []byte, flags int, mode uint32) + func (entry *SubmissionQueueEntry) PrepareOpenat2(dfd int, path []byte, openHow *unix.OpenHow) + func (entry *SubmissionQueueEntry) PrepareOpenat2Direct(dfd int, path []byte, openHow *unix.OpenHow, fileIndex uint32) + func (entry *SubmissionQueueEntry) PrepareOpenatDirect(dfd int, path []byte, flags int, mode uint32, fileIndex uint32) + func (entry *SubmissionQueueEntry) PreparePollAdd(fd int, pollMask uint32) + func (entry *SubmissionQueueEntry) PreparePollMultishot(fd int, pollMask uint32) + func (entry *SubmissionQueueEntry) PreparePollRemove(userData uint64) + func (entry *SubmissionQueueEntry) PreparePollUpdate(oldUserData, newUserData uint64, pollMask, flags uint32) + func (entry *SubmissionQueueEntry) PrepareProvideBuffers(addr uintptr, length, nr, bgid, bid int) + func (entry *SubmissionQueueEntry) PrepareRead(fd int, buf uintptr, nbytes uint32, offset uint64) + func (entry *SubmissionQueueEntry) PrepareReadFixed(fd int, buf uintptr, nbytes uint32, offset uint64, bufIndex int) + func (entry *SubmissionQueueEntry) PrepareReadv(fd int, iovecs uintptr, nrVecs uint32, offset uint64) + func (entry *SubmissionQueueEntry) PrepareReadv2(fd int, iovecs uintptr, nrVecs uint32, offset uint64, flags int) + func (entry *SubmissionQueueEntry) PrepareRecv(fd int, buf uintptr, length uint32, flags int) + func (entry *SubmissionQueueEntry) PrepareRecvMsg(fd int, msg *syscall.Msghdr, flags uint32) + func (entry *SubmissionQueueEntry) PrepareRecvMsgMultishot(fd int, msg *syscall.Msghdr, flags uint32) + func (entry *SubmissionQueueEntry) PrepareRecvMultishot(fd int, addr uintptr, length uint32, flags int) + func (entry *SubmissionQueueEntry) PrepareRemoveBuffers(nr int, bgid int) + func (entry *SubmissionQueueEntry) PrepareRename(oldPath, netPath []byte) + func (entry *SubmissionQueueEntry) PrepareRenameat(oldFd int, oldPath []byte, newFd int, newPath []byte, flags uint32) + func (entry *SubmissionQueueEntry) PrepareSend(fd int, addr uintptr, length uint32, flags int) + func (entry *SubmissionQueueEntry) PrepareSendMsg(fd int, msg *syscall.Msghdr, flags uint32) + func (entry *SubmissionQueueEntry) PrepareSendSetAddr(destAddr *syscall.Sockaddr, addrLen uint16) + func (entry *SubmissionQueueEntry) PrepareSendZC(sockFd int, buf []byte, flags int, zcFlags uint32) + func (entry *SubmissionQueueEntry) PrepareSendZCFixed(sockFd int, buf []byte, flags int, zcFlags, bufIndex uint32) + func (entry *SubmissionQueueEntry) PrepareSendmsgZC(fd int, msg *syscall.Msghdr, flags uint32) + func (entry *SubmissionQueueEntry) PrepareSendto(sockFd int, buf []byte, flags int, addr *syscall.Sockaddr, addrLen uint32) + func (entry *SubmissionQueueEntry) PrepareSetxattr(name, value, path []byte, flags int, length uint32) + func (entry *SubmissionQueueEntry) PrepareShutdown(fd, how int) + func (entry *SubmissionQueueEntry) PrepareSocket(domain, socketType, protocol int, flags uint32) + func (entry *SubmissionQueueEntry) PrepareSocketDirect(domain, socketType, protocol int, fileIndex, flags uint32) + func (entry *SubmissionQueueEntry) PrepareSocketDirectAlloc(domain, socketType, protocol int, flags uint32) + func (entry *SubmissionQueueEntry) PrepareSplice(fdIn int, offIn int64, fdOut int, offOut int64, nbytes, spliceFlags uint32) + func (entry *SubmissionQueueEntry) PrepareStatx(dfd int, path []byte, flags int, mask uint32, statx *unix.Statx_t) + func (entry *SubmissionQueueEntry) PrepareSymlink(target, linkpath []byte) + func (entry *SubmissionQueueEntry) PrepareSymlinkat(target []byte, newdirfd int, linkpath []byte) + func (entry *SubmissionQueueEntry) PrepareSyncFileRange(fd int, length uint32, offset uint64, flags int) + func (entry *SubmissionQueueEntry) PrepareTee(fdIn, fdOut int, nbytes, spliceFlags uint32) + func (entry *SubmissionQueueEntry) PrepareTimeout(spec *syscall.Timespec, count, flags uint32) + func (entry *SubmissionQueueEntry) PrepareTimeoutRemove(duration time.Duration, count uint64, flags uint32) + func (entry *SubmissionQueueEntry) PrepareTimeoutUpdate(duration time.Duration, count uint64, flags uint32) + func (entry *SubmissionQueueEntry) PrepareUnlink(path uintptr, flags int) + func (entry *SubmissionQueueEntry) PrepareUnlinkat(dfd int, path uintptr, flags int) + func (entry *SubmissionQueueEntry) PrepareWrite(fd int, buf uintptr, nbytes uint32, offset uint64) + func (entry *SubmissionQueueEntry) PrepareWriteFixed(fd int, vectors uintptr, length uint32, offset uint64, index int) + func (entry *SubmissionQueueEntry) PrepareWritev(fd int, iovecs uintptr, nrVecs uint32, offset uint64) + func (entry *SubmissionQueueEntry) PrepareWritev2(fd int, iovecs uintptr, nrVecs uint32, offset uint64, flags int) + func (entry *SubmissionQueueEntry) SetData(data unsafe.Pointer) + func (entry *SubmissionQueueEntry) SetData64(data uint64) + func (entry *SubmissionQueueEntry) SetFlags(flags uint32) + type SyncCancelReg struct + Addr uint64 + Fd int32 + Flags uint32 + Pad [4]uint64 + Timeout syscall.Timespec