Documentation
¶
Index ¶
- Constants
- func BufferRingMask(entries uint32) uint32
- func FloorPow2(n uint32) uint32
- func MLockSize(entries, flags uint32) (uint64, error)
- func MLockSizeParams(entries uint32, p *Params) (uint64, error)
- func ParseSetupFlags(s string) uint32
- func RoundupPow2(n uint32) uint32
- func VersionEnable(major, minor, patch int) bool
- func VersionMatchFlavor(flavors []string) bool
- type BufReg
- type BufferAndRing
- type CQRingOffsets
- type CompletionQueue
- type CompletionQueueEvent
- type FileIndexRange
- type FilesUpdate
- type GetEventsArg
- type NAPI
- type Option
- type Options
- type Params
- type Probe
- type ProbeOp
- type 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
- type Ring
- func (ring *Ring) BufRingCQAdvance(br *BufferAndRing, count int)
- func (ring *Ring) CQAdvance(numberOfCQEs uint32)
- func (ring *Ring) CQESeen(event *CompletionQueueEvent)
- func (ring *Ring) CQEntries() uint32
- func (ring *Ring) CQEventFdEnabled() bool
- func (ring *Ring) CQEventFdToggle(enabled bool) error
- func (ring *Ring) CQHasOverflow() bool
- func (ring *Ring) CQReady() uint32
- func (ring *Ring) Close() (err error)
- func (ring *Ring) CloseFd() error
- func (ring *Ring) DontFork() 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) Fd() int
- func (ring *Ring) Features() uint32
- func (ring *Ring) Flags() uint32
- func (ring *Ring) FlushSQ() bool
- func (ring *Ring) ForEachCQE(callback func(cqe *CompletionQueueEvent))
- func (ring *Ring) FreeBufRing(br *BufferAndRing, entries uint32, bgid uint16) (err error)
- func (ring *Ring) GetEvents() (uint, error)
- func (ring *Ring) GetSQE() *SubmissionQueueEntry
- func (ring *Ring) PeekBatchCQE(cqes []*CompletionQueueEvent) uint32
- func (ring *Ring) PeekCQE() (*CompletionQueueEvent, error)
- func (ring *Ring) Probe() (*Probe, error)
- func (ring *Ring) Register(fd int, opcode uint32, arg unsafe.Pointer, nrArgs uint32) (uint, syscall.Errno)
- func (ring *Ring) RegisterBufferRing(reg *BufReg) (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) RegisterNAPI(napi *NAPI) (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) SQEntries() uint32
- func (ring *Ring) SQNeedWakeup() bool
- func (ring *Ring) SQReady() uint32
- func (ring *Ring) SQRingWait() (uint, error)
- func (ring *Ring) SQSpaceLeft() uint32
- func (ring *Ring) SetupBufRing(entries uint32, bgid uint16, flags uint32) (*BufferAndRing, error)
- func (ring *Ring) Submit() (uint, error)
- func (ring *Ring) SubmitAndGetEvents() (uint, error)
- func (ring *Ring) SubmitAndWait(waitNr uint32) (uint, error)
- func (ring *Ring) SubmitAndWaitMinTimeout(waitNr uint32, ts *syscall.Timespec, minTimeout time.Duration, ...) (*CompletionQueueEvent, error)
- func (ring *Ring) SubmitAndWaitTimeout(waitNr uint32, ts *syscall.Timespec, sigmask *unix.Sigset_t) (*CompletionQueueEvent, error)
- func (ring *Ring) UnregisterBufferRing(bgid uint16) (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) UnregisterNAPI(napi *NAPI) (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) WaitCQEsMinTimeout(waitNr uint32, ts *syscall.Timespec, minTimeout time.Duration, ...) (*CompletionQueueEvent, error)
- func (ring *Ring) WakeupSQPoll() (uint, error)
- type RsrcRegister
- type RsrcUpdate
- type RsrcUpdate2
- type SQRingOffsets
- type SubmissionQueue
- type SubmissionQueueEntry
- func (entry *SubmissionQueueEntry) PrepareAccept(fd int, addr *syscall.RawSockaddrAny, addrLen uint64, flags int)
- func (entry *SubmissionQueueEntry) PrepareAcceptDirect(fd int, addr *syscall.RawSockaddrAny, addrLen uint64, flags int, ...)
- func (entry *SubmissionQueueEntry) PrepareAcceptDirectAlloc(fd int, addr *syscall.RawSockaddrAny, addrLen uint64, flags int)
- func (entry *SubmissionQueueEntry) PrepareAcceptMultishot(fd int, addr *syscall.RawSockaddrAny, addrLen uint64, flags int)
- func (entry *SubmissionQueueEntry) PrepareAcceptMultishotDirect(fd int, addr *syscall.RawSockaddrAny, addrLen uint64, flags int)
- func (entry *SubmissionQueueEntry) PrepareBind(fd int, addr *syscall.RawSockaddrAny, addrLen uint64)
- func (entry *SubmissionQueueEntry) PrepareCancel(userdata uintptr, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareCancel64(userdata uint64, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareCancelALL()
- func (entry *SubmissionQueueEntry) PrepareCancelFd(fd int, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareCancelFdFixed(fileIndex uint32, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareClose(fd int)
- func (entry *SubmissionQueueEntry) PrepareCloseDirect(fileIndex uint32)
- func (entry *SubmissionQueueEntry) PrepareConnect(fd int, addr *syscall.RawSockaddrAny, addrLen uint64)
- func (entry *SubmissionQueueEntry) PrepareEPollWait(fd int, events []syscall.EpollEvent, flags uint32)
- 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) PrepareFixedFdInstall(fd int, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareFsetxattr(fd int, name, value []byte, flags int)
- func (entry *SubmissionQueueEntry) PrepareFsync(fd int, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareGetsockopt(fd int, level int, optName int, optValue unsafe.Pointer, optValueLen *int32)
- func (entry *SubmissionQueueEntry) PrepareGetsockoptInt(fd int, level int, optName int, optValue *int)
- func (entry *SubmissionQueueEntry) PrepareGetxattr(name, value, path []byte)
- func (entry *SubmissionQueueEntry) PrepareLink(oldPath, newPath []byte, flags int)
- func (entry *SubmissionQueueEntry) PrepareLinkTimeout(spec *syscall.Timespec, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareLinkTimeoutUpdate(spec *syscall.Timespec, userdata unsafe.Pointer)
- func (entry *SubmissionQueueEntry) PrepareLinkat(oldFd int, oldPath []byte, newFd int, newPath []byte, flags int)
- func (entry *SubmissionQueueEntry) PrepareListen(fd int, backlog uint32)
- 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, userdata unsafe.Pointer, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareMsgRingCQEFlags(fd int, length uint32, userdata unsafe.Pointer, flags, cqeFlags uint32)
- func (entry *SubmissionQueueEntry) PrepareMsgRingFd(fd int, sourceFd int, targetFd int, userdata unsafe.Pointer, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareMsgRingFdAlloc(fd int, sourceFd int, userdata unsafe.Pointer, flags uint32)
- 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, addrLength uint32, 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) PrepareSendBundle(fd int, length uint32, flags int)
- func (entry *SubmissionQueueEntry) PrepareSendMsg(fd int, msg *syscall.Msghdr, flags int)
- func (entry *SubmissionQueueEntry) PrepareSendZC(sockFd int, addr uintptr, length uint32, flags int, zcFlags uint32)
- func (entry *SubmissionQueueEntry) PrepareSendZCFixed(sockFd int, addr uintptr, length uint32, flags int, zcFlags, bufIndex uint32)
- func (entry *SubmissionQueueEntry) PrepareSendmsgZC(fd int, msg *syscall.Msghdr, flags int)
- func (entry *SubmissionQueueEntry) PrepareSetsockopt(fd int, level int, optName int, optValue unsafe.Pointer, optValueLen int32)
- func (entry *SubmissionQueueEntry) PrepareSetsockoptInt(fd int, level int, optName int, optValue *int)
- 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(userdata unsafe.Pointer, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareTimeoutUpdate(spec *syscall.Timespec, userdata unsafe.Pointer, 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) SetBufferGroup(bgid uint16)
- func (entry *SubmissionQueueEntry) SetBufferIndex(bid uint16)
- func (entry *SubmissionQueueEntry) SetData(data unsafe.Pointer)
- func (entry *SubmissionQueueEntry) SetData64(data uint64)
- func (entry *SubmissionQueueEntry) SetFlags(flags uint8)
- func (entry *SubmissionQueueEntry) SetIoPrio(flags uint16)
- func (entry *SubmissionQueueEntry) SetPersonality(personality uint16)
- type SyncCancelReg
- type Version
Constants ¶
View Source
const ( IORING_CQE_F_BUFFER uint32 = 1 << iota IORING_CQE_F_MORE IORING_CQE_F_SOCK_NONEMPTY IORING_CQE_F_NOTIF IORING_CQE_F_BUF_MORE )
View Source
const ( IORING_FEAT_SINGLE_MMAP uint32 = 1 << iota IORING_FEAT_NODROP IORING_FEAT_SUBMIT_STABLE IORING_FEAT_RW_CUR_POS IORING_FEAT_CUR_PERSONALITY IORING_FEAT_FAST_POLL IORING_FEAT_POLL_32BITS IORING_FEAT_SQPOLL_NONFIXED IORING_FEAT_EXT_ARG IORING_FEAT_NATIVE_WORKERS IORING_FEAT_RSRC_TAGS IORING_FEAT_CQE_SKIP IORING_FEAT_LINKED_FILE IORING_FEAT_REG_REG_RING IORING_FEAT_RECVSEND_BUNDLE IORING_FEAT_MIN_TIMEOUT IORING_FEAT_RW_ATTR )
View Source
const ( IORING_SETUP_IOPOLL uint32 = 1 << iota IORING_SETUP_SQPOLL IORING_SETUP_SQ_AFF IORING_SETUP_CQSIZE IORING_SETUP_CLAMP IORING_SETUP_ATTACH_WQ IORING_SETUP_R_DISABLED IORING_SETUP_SUBMIT_ALL IORING_SETUP_COOP_TASKRUN IORING_SETUP_TASKRUN_FLAG IORING_SETUP_SQE128 IORING_SETUP_CQE32 IORING_SETUP_SINGLE_ISSUER IORING_SETUP_DEFER_TASKRUN IORING_SETUP_NO_MMAP IORING_SETUP_REGISTERED_FD_ONLY IORING_SETUP_NO_SQARRAY IORING_SETUP_HYBRID_IOPOLL )
View Source
const ( MaxEntries = 32768 DefaultEntries = MaxEntries / 2 )
View Source
const ( IORING_ENTER_GETEVENTS uint32 = 1 << iota IORING_ENTER_SQ_WAKEUP IORING_ENTER_SQ_WAIT IORING_ENTER_EXT_ARG IORING_ENTER_REGISTERED_RING IORING_ENTER_ABS_TIMER IORING_ENTER_EXT_ARG_REG )
View Source
const ( IORING_REGISTER_BUFFERS uint32 = iota IORING_UNREGISTER_BUFFERS IORING_REGISTER_FILES IORING_UNREGISTER_FILES IORING_REGISTER_EVENTFD IORING_UNREGISTER_EVENTFD IORING_REGISTER_FILES_UPDATE IORING_REGISTER_EVENTFD_ASYNC IORING_REGISTER_PROBE IORING_REGISTER_PERSONALITY IORING_UNREGISTER_PERSONALITY IORING_REGISTER_RESTRICTIONS IORING_REGISTER_ENABLE_RINGS IORING_REGISTER_FILES2 IORING_REGISTER_FILES_UPDATE2 IORING_REGISTER_BUFFERS2 IORING_REGISTER_BUFFERS_UPDATE IORING_REGISTER_IOWQ_AFF IORING_UNREGISTER_IOWQ_AFF IORING_REGISTER_IOWQ_MAX_WORKERS IORING_REGISTER_RING_FDS IORING_UNREGISTER_RING_FDS IORING_REGISTER_PBUF_RING IORING_UNREGISTER_PBUF_RING IORING_REGISTER_SYNC_CANCEL IORING_REGISTER_FILE_ALLOC_RANGE IORING_REGISTER_PBUF_STATUS IORING_REGISTER_NAPI IORING_UNREGISTER_NAPI IORING_REGISTER_CLOCK IORING_REGISTER_CLONE_BUFFERS IORING_REGISTER_SEND_MSG_RING IORING_REGISTER_ZCRX_IFQ IORING_REGISTER_RESIZE_RINGS IORING_REGISTER_MEM_REGION IORING_REGISTER_LAST IORING_REGISTER_USE_REGISTERED_RING = 1 << 31 )
View Source
const ( IORING_RESTRICTION_REGISTER_OP uint32 = iota IORING_RESTRICTION_SQE_OP IORING_RESTRICTION_SQE_FLAGS_ALLOWED IORING_RESTRICTION_SQE_FLAGS_REQUIRED IORING_RESTRICTION_LAST )
View Source
const ( IORING_REGISTER_SRC_REGISTERED uint32 = 1 << iota IORING_REGISTER_DST_REPLACE )
View Source
const ( IOU_PBUF_RING_MMAP = 1 IOU_PBUF_RING_INC = 2 )
View Source
const ( IO_WQ_BOUND = iota IO_WQ_UNBOUND )
View Source
const ( IORING_OP_NOP uint8 = iota IORING_OP_READV IORING_OP_WRITEV IORING_OP_FSYNC IORING_OP_READ_FIXED IORING_OP_WRITE_FIXED IORING_OP_POLL_ADD IORING_OP_POLL_REMOVE IORING_OP_SYNC_FILE_RANGE IORING_OP_SENDMSG IORING_OP_RECVMSG IORING_OP_TIMEOUT IORING_OP_TIMEOUT_REMOVE IORING_OP_ACCEPT IORING_OP_ASYNC_CANCEL IORING_OP_LINK_TIMEOUT IORING_OP_CONNECT IORING_OP_FALLOCATE IORING_OP_OPENAT IORING_OP_CLOSE IORING_OP_FILES_UPDATE IORING_OP_STATX IORING_OP_READ IORING_OP_WRITE IORING_OP_FADVISE IORING_OP_MADVISE IORING_OP_SEND IORING_OP_RECV IORING_OP_OPENAT2 IORING_OP_EPOLL_CTL IORING_OP_SPLICE IORING_OP_PROVIDE_BUFFERS IORING_OP_REMOVE_BUFFERS IORING_OP_TEE IORING_OP_SHUTDOWN IORING_OP_RENAMEAT IORING_OP_UNLINKAT IORING_OP_MKDIRAT IORING_OP_SYMLINKAT IORING_OP_LINKAT IORING_OP_MSG_RING IORING_OP_FSETXATTR IORING_OP_SETXATTR IORING_OP_FGETXATTR IORING_OP_GETXATTR IORING_OP_SOCKET IORING_OP_URING_CMD IORING_OP_SEND_ZC IORING_OP_SENDMSG_ZC IORING_OP_READ_MULTISHOT IORING_OP_WAITID IORING_OP_FUTEX_WAIT IORING_OP_FUTEX_WAKE IORING_OP_FUTEX_WAITV IORING_OP_FIXED_FD_INSTALL IORING_OP_FTRUNCATE IORING_OP_BIND IORING_OP_LISTEN IORING_OP_RECV_ZC IORING_OP_EPOLL_WAIT IORING_OP_READV_FIXED IORING_OP_WRITEV_FIXED IORING_OP_LAST = math.MaxUint8 )
View Source
const ( IORING_TIMEOUT_ABS uint32 = 1 << iota IORING_TIMEOUT_UPDATE IORING_TIMEOUT_BOOTTIME IORING_TIMEOUT_REALTIME IORING_LINK_TIMEOUT_UPDATE IORING_TIMEOUT_ETIME_SUCCESS IORING_TIMEOUT_MULTISHOT IORING_TIMEOUT_CLOCK_MASK = IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME IORING_TIMEOUT_UPDATE_MASK = IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE )
View Source
const ( IORING_POLL_ADD_MULTI uint32 = 1 << iota IORING_POLL_UPDATE_EVENTS IORING_POLL_UPDATE_USER_DATA IORING_POLL_ADD_LEVEL )
View Source
const ( IORING_ASYNC_CANCEL_ALL uint32 = 1 << iota IORING_ASYNC_CANCEL_FD IORING_ASYNC_CANCEL_ANY IORING_ASYNC_CANCEL_FD_FIXED IORING_ASYNC_CANCEL_USERDATA IORING_ASYNC_CANCEL_OP )
View Source
const ( IORING_RECVSEND_POLL_FIRST uint16 = 1 << iota IORING_RECV_MULTISHOT IORING_RECVSEND_FIXED_BUF IORING_SEND_ZC_REPORT_USAGE IORING_RECVSEND_BUNDLE )
View Source
const ( IORING_ACCEPT_MULTISHOT uint16 = 1 << iota IORING_ACCEPT_DONTWAIT IORING_ACCEPT_POLL_FIRST )
View Source
const ( IORING_MSG_DATA uint32 = iota IORING_MSG_SEND_FD )
View Source
const ( IORING_MSG_RING_CQE_SKIP uint32 = 1 << iota IORING_MSG_RING_FLAGS_PASS )
View Source
const ( SOCKET_URING_OP_SIOCINQ = iota SOCKET_URING_OP_SIOCOUTQ SOCKET_URING_OP_GETSOCKOPT SOCKET_URING_OP_SETSOCKOPT )
View Source
const ( IOSQE_FIXED_FILE uint8 = 1 << iota IOSQE_IO_DRAIN IOSQE_IO_LINK IOSQE_IO_HARDLINK IOSQE_ASYNC IOSQE_BUFFER_SELECT IOSQE_CQE_SKIP_SUCCESS )
View Source
const ( IORING_SQ_NEED_WAKEUP uint32 = 1 << iota IORING_SQ_CQ_OVERFLOW IORING_SQ_TASKRUN )
View Source
const IORING_CQE_BUFFER_SHIFT = 16
View Source
const IORING_CQ_EVENTFD_DISABLED uint32 = 1 << 0
View Source
const IORING_FILE_INDEX_ALLOC uint32 = 4294967295
View Source
const (
IORING_FIXED_FD_NO_CLOEXEC uint32 = 1 << iota
)
View Source
const IORING_FSYNC_DATASYNC uint32 = 1 << 0
View Source
const (
IORING_MEM_REGION_TYPE_USER = 1
)
View Source
const (
IORING_NOP_INJECT_RESULT = 1 << iota
)
View Source
const IORING_NOTIF_USAGE_ZC_COPIED uint32 = 1 << 31
View Source
const IORING_REGISTER_FILES_SKIP int = -2
View Source
const (
IORING_REG_WAIT_TS uint32 = 1 << iota
)
View Source
const IORING_RSRC_REGISTER_SPARSE uint32 = 1 << iota
View Source
const IORING_URING_CMD_FIXED uint32 = 1 << 0
View Source
const IORING_URING_CMD_MASK = IORING_URING_CMD_FIXED
View Source
const IO_URING_OP_SUPPORTED uint16 = 1 << 0
View Source
const SPLICE_F_FD_IN_FIXED uint32 = 1 << 31
Variables ¶
This section is empty.
Functions ¶
func BufferRingMask ¶
func ParseSetupFlags ¶
func RoundupPow2 ¶
func VersionEnable ¶
func VersionMatchFlavor ¶
Types ¶
type BufferAndRing ¶
func (*BufferAndRing) BufRingAdd ¶
func (*BufferAndRing) BufRingAdvance ¶
func (br *BufferAndRing) BufRingAdvance(count uint16)
func (*BufferAndRing) BufRingInit ¶
func (br *BufferAndRing) BufRingInit()
type CQRingOffsets ¶
type CQRingOffsets struct {
// contains filtered or unexported fields
}
type CompletionQueue ¶
type CompletionQueue struct {
// contains filtered or unexported fields
}
type CompletionQueueEvent ¶
func (*CompletionQueueEvent) GetData ¶
func (c *CompletionQueueEvent) GetData() unsafe.Pointer
func (*CompletionQueueEvent) IsInternalUpdateTimeoutUserdata ¶
func (c *CompletionQueueEvent) IsInternalUpdateTimeoutUserdata() bool
type FileIndexRange ¶
type FilesUpdate ¶
type GetEventsArg ¶
type GetEventsArg struct {
// contains filtered or unexported fields
}
type Option ¶
func WithAttachWQFd ¶
func WithEntries ¶
func WithFlags ¶
WithFlags see https://man.archlinux.org/listing/extra/liburing/
func WithMemoryBuffer ¶
func WithSQThreadCPU ¶
func WithSQThreadIdle ¶
type Probe ¶
func (*Probe) IsSupported ¶
type RecvmsgOut ¶
func RecvmsgValidate ¶
func (*RecvmsgOut) CmsgFirsthdr ¶
func (o *RecvmsgOut) CmsgFirsthdr(msgh *syscall.Msghdr) *syscall.Cmsghdr
func (*RecvmsgOut) CmsgNexthdr ¶
func (*RecvmsgOut) Name ¶
func (o *RecvmsgOut) Name() unsafe.Pointer
func (*RecvmsgOut) PayloadLength ¶
func (o *RecvmsgOut) PayloadLength(bufLen int, msgh *syscall.Msghdr) uint32
type Restriction ¶
type Ring ¶
type Ring struct {
// contains filtered or unexported fields
}
func (*Ring) BufRingCQAdvance ¶
func (ring *Ring) BufRingCQAdvance(br *BufferAndRing, count int)
func (*Ring) CQESeen ¶
func (ring *Ring) CQESeen(event *CompletionQueueEvent)
func (*Ring) CQEventFdEnabled ¶
func (*Ring) CQEventFdToggle ¶
func (*Ring) CQHasOverflow ¶
func (*Ring) EnableRings ¶
func (*Ring) ForEachCQE ¶
func (ring *Ring) ForEachCQE(callback func(cqe *CompletionQueueEvent))
func (*Ring) FreeBufRing ¶
func (ring *Ring) FreeBufRing(br *BufferAndRing, entries uint32, bgid uint16) (err error)
func (*Ring) GetSQE ¶
func (ring *Ring) GetSQE() *SubmissionQueueEntry
func (*Ring) PeekBatchCQE ¶
func (ring *Ring) PeekBatchCQE(cqes []*CompletionQueueEvent) uint32
func (*Ring) PeekCQE ¶
func (ring *Ring) PeekCQE() (*CompletionQueueEvent, error)
func (*Ring) RegisterBuffers ¶
func (*Ring) RegisterBuffersSparse ¶
func (*Ring) RegisterBuffersTags ¶
func (*Ring) RegisterBuffersUpdateTag ¶
func (*Ring) RegisterFileAllocRange ¶
func (*Ring) RegisterFilesTags ¶
func (*Ring) RegisterFilesUpdate ¶
func (*Ring) RegisterFilesUpdateTag ¶
func (*Ring) RegisterIOWQAff ¶
func (*Ring) RegisterIOWQMaxWorkers ¶
func (*Ring) RegisterPersonality ¶
func (*Ring) RegisterRestrictions ¶
func (ring *Ring) RegisterRestrictions(res []Restriction) (uint, error)
func (*Ring) RegisterRingFd ¶
func (*Ring) RegisterSyncCancel ¶
func (ring *Ring) RegisterSyncCancel(reg *SyncCancelReg) (uint, error)
func (*Ring) SQNeedWakeup ¶
func (*Ring) SQRingWait ¶
func (*Ring) SQSpaceLeft ¶
func (*Ring) SetupBufRing ¶
func (*Ring) SubmitAndGetEvents ¶
func (*Ring) SubmitAndWaitMinTimeout ¶
func (*Ring) SubmitAndWaitTimeout ¶
func (*Ring) UnregisterBufferRing ¶
func (*Ring) UnregisterBuffers ¶
func (*Ring) UnregisterFiles ¶
func (*Ring) UnregisterIOWQAff ¶
func (*Ring) UnregisterPersonality ¶
func (*Ring) UnregisterRingFd ¶
func (*Ring) WaitCQE ¶
func (ring *Ring) WaitCQE() (*CompletionQueueEvent, error)
func (*Ring) WaitCQETimeout ¶
func (ring *Ring) WaitCQETimeout(ts *syscall.Timespec) (*CompletionQueueEvent, error)
func (*Ring) WaitCQEsMinTimeout ¶
func (*Ring) WakeupSQPoll ¶
type RsrcRegister ¶
type RsrcUpdate ¶
type RsrcUpdate2 ¶
type SQRingOffsets ¶
type SQRingOffsets struct {
// contains filtered or unexported fields
}
type SubmissionQueue ¶
type SubmissionQueue struct {
// contains filtered or unexported fields
}
type SubmissionQueueEntry ¶
type SubmissionQueueEntry struct {
OpCode uint8
Flags uint8
IoPrio uint16
Fd int32
Off uint64
Addr uint64
Len uint32
OpcodeFlags uint32
UserData uint64
BufIG uint16
Personality uint16
SpliceFdIn int32
Addr3 uint64
// contains filtered or unexported fields
}
func (*SubmissionQueueEntry) PrepareAccept ¶
func (entry *SubmissionQueueEntry) PrepareAccept(fd int, addr *syscall.RawSockaddrAny, addrLen uint64, flags int)
func (*SubmissionQueueEntry) PrepareAcceptDirect ¶
func (entry *SubmissionQueueEntry) PrepareAcceptDirect(fd int, addr *syscall.RawSockaddrAny, addrLen uint64, flags int, fileIndex uint32)
func (*SubmissionQueueEntry) PrepareAcceptDirectAlloc ¶
func (entry *SubmissionQueueEntry) PrepareAcceptDirectAlloc(fd int, addr *syscall.RawSockaddrAny, addrLen uint64, flags int)
func (*SubmissionQueueEntry) PrepareAcceptMultishot ¶
func (entry *SubmissionQueueEntry) PrepareAcceptMultishot(fd int, addr *syscall.RawSockaddrAny, addrLen uint64, flags int)
func (*SubmissionQueueEntry) PrepareAcceptMultishotDirect ¶
func (entry *SubmissionQueueEntry) PrepareAcceptMultishotDirect(fd int, addr *syscall.RawSockaddrAny, addrLen uint64, flags int)
func (*SubmissionQueueEntry) PrepareBind ¶
func (entry *SubmissionQueueEntry) PrepareBind(fd int, addr *syscall.RawSockaddrAny, addrLen uint64)
func (*SubmissionQueueEntry) PrepareCancel ¶
func (entry *SubmissionQueueEntry) PrepareCancel(userdata uintptr, flags uint32)
func (*SubmissionQueueEntry) PrepareCancel64 ¶
func (entry *SubmissionQueueEntry) PrepareCancel64(userdata uint64, flags uint32)
func (*SubmissionQueueEntry) PrepareCancelALL ¶
func (entry *SubmissionQueueEntry) PrepareCancelALL()
func (*SubmissionQueueEntry) PrepareCancelFd ¶
func (entry *SubmissionQueueEntry) PrepareCancelFd(fd int, flags uint32)
func (*SubmissionQueueEntry) PrepareCancelFdFixed ¶
func (entry *SubmissionQueueEntry) PrepareCancelFdFixed(fileIndex uint32, flags uint32)
func (*SubmissionQueueEntry) PrepareClose ¶
func (entry *SubmissionQueueEntry) PrepareClose(fd int)
func (*SubmissionQueueEntry) PrepareCloseDirect ¶
func (entry *SubmissionQueueEntry) PrepareCloseDirect(fileIndex uint32)
func (*SubmissionQueueEntry) PrepareConnect ¶
func (entry *SubmissionQueueEntry) PrepareConnect(fd int, addr *syscall.RawSockaddrAny, addrLen uint64)
func (*SubmissionQueueEntry) PrepareEPollWait ¶
func (entry *SubmissionQueueEntry) PrepareEPollWait(fd int, events []syscall.EpollEvent, flags uint32)
func (*SubmissionQueueEntry) PrepareFadvise ¶
func (entry *SubmissionQueueEntry) PrepareFadvise(fd int, offset uint64, length int, advise uint32)
func (*SubmissionQueueEntry) PrepareFallocate ¶
func (entry *SubmissionQueueEntry) PrepareFallocate(fd int, mode int, offset, length uint64)
func (*SubmissionQueueEntry) PrepareFgetxattr ¶
func (entry *SubmissionQueueEntry) PrepareFgetxattr(fd int, name, value []byte)
func (*SubmissionQueueEntry) PrepareFilesUpdate ¶
func (entry *SubmissionQueueEntry) PrepareFilesUpdate(fds []int, offset int)
func (*SubmissionQueueEntry) PrepareFixedFdInstall ¶
func (entry *SubmissionQueueEntry) PrepareFixedFdInstall(fd int, flags uint32)
func (*SubmissionQueueEntry) PrepareFsetxattr ¶
func (entry *SubmissionQueueEntry) PrepareFsetxattr(fd int, name, value []byte, flags int)
func (*SubmissionQueueEntry) PrepareFsync ¶
func (entry *SubmissionQueueEntry) PrepareFsync(fd int, flags uint32)
func (*SubmissionQueueEntry) PrepareGetsockopt ¶
func (*SubmissionQueueEntry) PrepareGetsockoptInt ¶
func (entry *SubmissionQueueEntry) PrepareGetsockoptInt(fd int, level int, optName int, optValue *int)
func (*SubmissionQueueEntry) PrepareGetxattr ¶
func (entry *SubmissionQueueEntry) PrepareGetxattr(name, value, path []byte)
func (*SubmissionQueueEntry) PrepareLink ¶
func (entry *SubmissionQueueEntry) PrepareLink(oldPath, newPath []byte, flags int)
func (*SubmissionQueueEntry) PrepareLinkTimeout ¶
func (entry *SubmissionQueueEntry) PrepareLinkTimeout(spec *syscall.Timespec, flags uint32)
func (*SubmissionQueueEntry) PrepareLinkTimeoutUpdate ¶ added in v1.6.7
func (entry *SubmissionQueueEntry) PrepareLinkTimeoutUpdate(spec *syscall.Timespec, userdata unsafe.Pointer)
func (*SubmissionQueueEntry) PrepareLinkat ¶
func (*SubmissionQueueEntry) PrepareListen ¶
func (entry *SubmissionQueueEntry) PrepareListen(fd int, backlog uint32)
func (*SubmissionQueueEntry) PrepareMadvise ¶
func (entry *SubmissionQueueEntry) PrepareMadvise(addr uintptr, length uint, advice int)
func (*SubmissionQueueEntry) PrepareMkdir ¶
func (entry *SubmissionQueueEntry) PrepareMkdir(path []byte, mode uint32)
func (*SubmissionQueueEntry) PrepareMkdirat ¶
func (entry *SubmissionQueueEntry) PrepareMkdirat(dfd int, path []byte, mode uint32)
func (*SubmissionQueueEntry) PrepareMsgRing ¶
func (*SubmissionQueueEntry) PrepareMsgRingCQEFlags ¶
func (*SubmissionQueueEntry) PrepareMsgRingFd ¶
func (*SubmissionQueueEntry) PrepareMsgRingFdAlloc ¶
func (*SubmissionQueueEntry) PrepareNop ¶
func (entry *SubmissionQueueEntry) PrepareNop()
func (*SubmissionQueueEntry) PrepareOpenat ¶
func (entry *SubmissionQueueEntry) PrepareOpenat(dfd int, path []byte, flags int, mode uint32)
func (*SubmissionQueueEntry) PrepareOpenat2 ¶
func (entry *SubmissionQueueEntry) PrepareOpenat2(dfd int, path []byte, openHow *unix.OpenHow)
func (*SubmissionQueueEntry) PrepareOpenat2Direct ¶
func (*SubmissionQueueEntry) PrepareOpenatDirect ¶
func (*SubmissionQueueEntry) PreparePollAdd ¶
func (entry *SubmissionQueueEntry) PreparePollAdd(fd int, pollMask uint32)
func (*SubmissionQueueEntry) PreparePollMultishot ¶
func (entry *SubmissionQueueEntry) PreparePollMultishot(fd int, pollMask uint32)
func (*SubmissionQueueEntry) PreparePollRemove ¶
func (entry *SubmissionQueueEntry) PreparePollRemove(userData uint64)
func (*SubmissionQueueEntry) PreparePollUpdate ¶
func (entry *SubmissionQueueEntry) PreparePollUpdate(oldUserData, newUserData uint64, pollMask, flags uint32)
func (*SubmissionQueueEntry) PrepareProvideBuffers ¶
func (entry *SubmissionQueueEntry) PrepareProvideBuffers(addr uintptr, addrLength uint32, nr, bgid, bid int)
func (*SubmissionQueueEntry) PrepareRead ¶
func (entry *SubmissionQueueEntry) PrepareRead(fd int, buf uintptr, nbytes uint32, offset uint64)
func (*SubmissionQueueEntry) PrepareReadFixed ¶
func (*SubmissionQueueEntry) PrepareReadv ¶
func (entry *SubmissionQueueEntry) PrepareReadv(fd int, iovecs uintptr, nrVecs uint32, offset uint64)
func (*SubmissionQueueEntry) PrepareReadv2 ¶
func (*SubmissionQueueEntry) PrepareRecv ¶
func (entry *SubmissionQueueEntry) PrepareRecv(fd int, buf uintptr, length uint32, flags int)
func (*SubmissionQueueEntry) PrepareRecvMsg ¶
func (entry *SubmissionQueueEntry) PrepareRecvMsg(fd int, msg *syscall.Msghdr, flags uint32)
func (*SubmissionQueueEntry) PrepareRecvMsgMultishot ¶
func (entry *SubmissionQueueEntry) PrepareRecvMsgMultishot(fd int, msg *syscall.Msghdr, flags uint32)
func (*SubmissionQueueEntry) PrepareRecvMultishot ¶
func (entry *SubmissionQueueEntry) PrepareRecvMultishot(fd int, addr uintptr, length uint32, flags int)
func (*SubmissionQueueEntry) PrepareRemoveBuffers ¶
func (entry *SubmissionQueueEntry) PrepareRemoveBuffers(nr int, bgid int)
func (*SubmissionQueueEntry) PrepareRename ¶
func (entry *SubmissionQueueEntry) PrepareRename(oldPath, netPath []byte)
func (*SubmissionQueueEntry) PrepareRenameat ¶
func (*SubmissionQueueEntry) PrepareSend ¶
func (entry *SubmissionQueueEntry) PrepareSend(fd int, addr uintptr, length uint32, flags int)
func (*SubmissionQueueEntry) PrepareSendBundle ¶ added in v1.6.5
func (entry *SubmissionQueueEntry) PrepareSendBundle(fd int, length uint32, flags int)
func (*SubmissionQueueEntry) PrepareSendMsg ¶
func (entry *SubmissionQueueEntry) PrepareSendMsg(fd int, msg *syscall.Msghdr, flags int)
func (*SubmissionQueueEntry) PrepareSendZC ¶
func (*SubmissionQueueEntry) PrepareSendZCFixed ¶
func (*SubmissionQueueEntry) PrepareSendmsgZC ¶
func (entry *SubmissionQueueEntry) PrepareSendmsgZC(fd int, msg *syscall.Msghdr, flags int)
func (*SubmissionQueueEntry) PrepareSetsockopt ¶
func (*SubmissionQueueEntry) PrepareSetsockoptInt ¶
func (entry *SubmissionQueueEntry) PrepareSetsockoptInt(fd int, level int, optName int, optValue *int)
func (*SubmissionQueueEntry) PrepareSetxattr ¶
func (entry *SubmissionQueueEntry) PrepareSetxattr(name, value, path []byte, flags int, length uint32)
func (*SubmissionQueueEntry) PrepareShutdown ¶
func (entry *SubmissionQueueEntry) PrepareShutdown(fd, how int)
func (*SubmissionQueueEntry) PrepareSocket ¶
func (entry *SubmissionQueueEntry) PrepareSocket(domain, socketType, protocol int, flags uint32)
func (*SubmissionQueueEntry) PrepareSocketDirect ¶
func (entry *SubmissionQueueEntry) PrepareSocketDirect(domain, socketType, protocol int, fileIndex, flags uint32)
func (*SubmissionQueueEntry) PrepareSocketDirectAlloc ¶
func (entry *SubmissionQueueEntry) PrepareSocketDirectAlloc(domain, socketType, protocol int, flags uint32)
func (*SubmissionQueueEntry) PrepareSplice ¶
func (*SubmissionQueueEntry) PrepareStatx ¶
func (*SubmissionQueueEntry) PrepareSymlink ¶
func (entry *SubmissionQueueEntry) PrepareSymlink(target, linkpath []byte)
func (*SubmissionQueueEntry) PrepareSymlinkat ¶
func (entry *SubmissionQueueEntry) PrepareSymlinkat(target []byte, newdirfd int, linkpath []byte)
func (*SubmissionQueueEntry) PrepareSyncFileRange ¶
func (entry *SubmissionQueueEntry) PrepareSyncFileRange(fd int, length uint32, offset uint64, flags int)
func (*SubmissionQueueEntry) PrepareTee ¶
func (entry *SubmissionQueueEntry) PrepareTee(fdIn, fdOut int, nbytes, spliceFlags uint32)
func (*SubmissionQueueEntry) PrepareTimeout ¶
func (entry *SubmissionQueueEntry) PrepareTimeout(spec *syscall.Timespec, count, flags uint32)
func (*SubmissionQueueEntry) PrepareTimeoutRemove ¶
func (entry *SubmissionQueueEntry) PrepareTimeoutRemove(userdata unsafe.Pointer, flags uint32)
func (*SubmissionQueueEntry) PrepareTimeoutUpdate ¶
func (*SubmissionQueueEntry) PrepareUnlink ¶
func (entry *SubmissionQueueEntry) PrepareUnlink(path uintptr, flags int)
func (*SubmissionQueueEntry) PrepareUnlinkat ¶
func (entry *SubmissionQueueEntry) PrepareUnlinkat(dfd int, path uintptr, flags int)
func (*SubmissionQueueEntry) PrepareWrite ¶
func (entry *SubmissionQueueEntry) PrepareWrite(fd int, buf uintptr, nbytes uint32, offset uint64)
func (*SubmissionQueueEntry) PrepareWriteFixed ¶
func (*SubmissionQueueEntry) PrepareWritev ¶
func (entry *SubmissionQueueEntry) PrepareWritev( fd int, iovecs uintptr, nrVecs uint32, offset uint64)
func (*SubmissionQueueEntry) PrepareWritev2 ¶
func (*SubmissionQueueEntry) SetBufferGroup ¶
func (entry *SubmissionQueueEntry) SetBufferGroup(bgid uint16)
func (*SubmissionQueueEntry) SetBufferIndex ¶
func (entry *SubmissionQueueEntry) SetBufferIndex(bid uint16)
func (*SubmissionQueueEntry) SetData ¶
func (entry *SubmissionQueueEntry) SetData(data unsafe.Pointer)
func (*SubmissionQueueEntry) SetData64 ¶
func (entry *SubmissionQueueEntry) SetData64(data uint64)
func (*SubmissionQueueEntry) SetFlags ¶
func (entry *SubmissionQueueEntry) SetFlags(flags uint8)
func (*SubmissionQueueEntry) SetIoPrio ¶
func (entry *SubmissionQueueEntry) SetIoPrio(flags uint16)
func (*SubmissionQueueEntry) SetPersonality ¶
func (entry *SubmissionQueueEntry) SetPersonality(personality uint16)
type SyncCancelReg ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.