liburing

package
v1.6.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 1, 2025 License: LGPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

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 BufferRingMask(entries uint32) uint32

func FloorPow2

func FloorPow2(n uint32) uint32

func MLockSize

func MLockSize(entries, flags uint32) (uint64, error)

func MLockSizeParams

func MLockSizeParams(entries uint32, p *Params) (uint64, error)

func ParseSetupFlags

func ParseSetupFlags(s string) uint32

func RoundupPow2

func RoundupPow2(n uint32) uint32

func VersionEnable

func VersionEnable(major, minor, patch int) bool

func VersionMatchFlavor

func VersionMatchFlavor(flavors []string) bool

Types

type BufReg

type BufReg struct {
	RingAddr    uint64
	RingEntries uint32
	Bgid        uint16
	Flags       uint16
	Resv        [3]uint64
}

type BufferAndRing

type BufferAndRing struct {
	Addr uint64
	Len  uint32
	Bid  uint16
	Tail uint16
}

func (*BufferAndRing) BufRingAdd

func (br *BufferAndRing) BufRingAdd(addr unsafe.Pointer, length uint32, bid uint16, mask, bufOffset uint16)

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

type CompletionQueueEvent struct {
	UserData uint64
	Res      int32
	Flags    uint32
}

func (*CompletionQueueEvent) GetData

func (c *CompletionQueueEvent) GetData() unsafe.Pointer

func (*CompletionQueueEvent) IsInternalUpdateTimeoutUserdata

func (c *CompletionQueueEvent) IsInternalUpdateTimeoutUserdata() bool

type FileIndexRange

type FileIndexRange struct {
	Off  uint32
	Len  uint32
	Resv uint64
}

type FilesUpdate

type FilesUpdate struct {
	Offset uint32
	Resv   uint32
	Fds    uint64
}

type GetEventsArg

type GetEventsArg struct {
	// contains filtered or unexported fields
}

type NAPI

type NAPI struct {
	BusyPollTo     uint32
	PreferBusyPoll uint8

	Resv uint64
	// contains filtered or unexported fields
}

type Option

type Option func(*Options) error

func WithAttachWQFd

func WithAttachWQFd(fd uint32) Option

func WithEntries

func WithEntries(entries uint32) Option

func WithMemoryBuffer

func WithMemoryBuffer(memoryBuffer []byte) Option

func WithSQThreadCPU

func WithSQThreadCPU(cpuId uint32) Option

func WithSQThreadIdle

func WithSQThreadIdle(n uint32) Option

type Options

type Options struct {
	Entries      uint32
	Flags        uint32
	SQThreadCPU  uint32
	SQThreadIdle uint32
	WQFd         uint32
	MemoryBuffer []byte
}

type Params

type Params struct {
	// contains filtered or unexported fields
}

func (*Params) Validate

func (params *Params) Validate() error

type Probe

type Probe struct {
	LastOp uint8
	OpsLen uint8
	Res    uint16
	Res2   [3]uint32
	Ops    [probeOpsSize]ProbeOp
}

func GetProbe

func GetProbe() (*Probe, error)

func (*Probe) IsSupported

func (p *Probe) IsSupported(op uint8) bool

type ProbeOp

type ProbeOp struct {
	Op    uint8
	Res   uint8
	Flags uint16
	Res2  uint32
}

type RecvmsgOut

type RecvmsgOut struct {
	Namelen    uint32
	ControlLen uint32
	PayloadLen uint32
	Flags      uint32
}

func RecvmsgValidate

func RecvmsgValidate(buf unsafe.Pointer, bufLen int, msgh *syscall.Msghdr) *RecvmsgOut

func (*RecvmsgOut) CmsgFirsthdr

func (o *RecvmsgOut) CmsgFirsthdr(msgh *syscall.Msghdr) *syscall.Cmsghdr

func (*RecvmsgOut) CmsgNexthdr

func (o *RecvmsgOut) CmsgNexthdr(msgh *syscall.Msghdr, cmsg *syscall.Cmsghdr) *syscall.Cmsghdr

func (*RecvmsgOut) Name

func (o *RecvmsgOut) Name() unsafe.Pointer

func (*RecvmsgOut) Payload

func (o *RecvmsgOut) Payload(msgh *syscall.Msghdr) unsafe.Pointer

func (*RecvmsgOut) PayloadLength

func (o *RecvmsgOut) PayloadLength(bufLen int, msgh *syscall.Msghdr) uint32

type Restriction

type Restriction struct {
	OpCode  uint16
	OpFlags uint8
	Resv    uint8
	Resv2   [3]uint32
}

type Ring

type Ring struct {
	// contains filtered or unexported fields
}

func New

func New(options ...Option) (ring *Ring, err error)

func (*Ring) BufRingCQAdvance

func (ring *Ring) BufRingCQAdvance(br *BufferAndRing, count int)

func (*Ring) CQAdvance

func (ring *Ring) CQAdvance(numberOfCQEs uint32)

func (*Ring) CQESeen

func (ring *Ring) CQESeen(event *CompletionQueueEvent)

func (*Ring) CQEntries

func (ring *Ring) CQEntries() uint32

func (*Ring) CQEventFdEnabled

func (ring *Ring) CQEventFdEnabled() bool

func (*Ring) CQEventFdToggle

func (ring *Ring) CQEventFdToggle(enabled bool) error

func (*Ring) CQHasOverflow

func (ring *Ring) CQHasOverflow() bool

func (*Ring) CQReady

func (ring *Ring) CQReady() uint32

func (*Ring) Close

func (ring *Ring) Close() (err error)

func (*Ring) CloseFd

func (ring *Ring) CloseFd() error

func (*Ring) DontFork

func (ring *Ring) DontFork() error

func (*Ring) EnableRings

func (ring *Ring) EnableRings() (uint, error)

func (*Ring) Enter

func (ring *Ring) Enter(submitted uint32, waitNr uint32, flags uint32, sig unsafe.Pointer) (uint, error)

func (*Ring) Enter2

func (ring *Ring) Enter2(submitted uint32, waitNr uint32, flags uint32, sig unsafe.Pointer, size int) (uint, error)

func (*Ring) Fd

func (ring *Ring) Fd() int

func (*Ring) Features

func (ring *Ring) Features() uint32

func (*Ring) Flags

func (ring *Ring) Flags() uint32

func (*Ring) FlushSQ

func (ring *Ring) FlushSQ() bool

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) GetEvents

func (ring *Ring) GetEvents() (uint, 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) Probe

func (ring *Ring) Probe() (*Probe, error)

func (*Ring) Register

func (ring *Ring) Register(fd int, opcode uint32, arg unsafe.Pointer, nrArgs uint32) (uint, syscall.Errno)

func (*Ring) RegisterBufferRing

func (ring *Ring) RegisterBufferRing(reg *BufReg) (uint, error)

func (*Ring) RegisterBuffers

func (ring *Ring) RegisterBuffers(iovecs []syscall.Iovec) (uint, error)

func (*Ring) RegisterBuffersSparse

func (ring *Ring) RegisterBuffersSparse(nr uint32) (uint, error)

func (*Ring) RegisterBuffersTags

func (ring *Ring) RegisterBuffersTags(iovecs []syscall.Iovec, tags []uint64) (uint, error)

func (*Ring) RegisterBuffersUpdateTag

func (ring *Ring) RegisterBuffersUpdateTag(off uint32, iovecs []syscall.Iovec, tags *uint64, nr uint32) (uint, error)

func (*Ring) RegisterEventFd

func (ring *Ring) RegisterEventFd(fd int) (uint, error)

func (*Ring) RegisterEventFdAsync

func (ring *Ring) RegisterEventFdAsync(fd int) (uint, error)

func (*Ring) RegisterFileAllocRange

func (ring *Ring) RegisterFileAllocRange(off, length uint32) (uint, error)

func (*Ring) RegisterFiles

func (ring *Ring) RegisterFiles(files []int) (uint, error)

func (*Ring) RegisterFilesSparse

func (ring *Ring) RegisterFilesSparse(nr uint32) (uint, error)

func (*Ring) RegisterFilesTags

func (ring *Ring) RegisterFilesTags(files []int, tags []uint64) (uint, error)

func (*Ring) RegisterFilesUpdate

func (ring *Ring) RegisterFilesUpdate(off uint, files []int) (uint, error)

func (*Ring) RegisterFilesUpdateTag

func (ring *Ring) RegisterFilesUpdateTag(off uint, files []int, tags []uint64) (uint, error)

func (*Ring) RegisterIOWQAff

func (ring *Ring) RegisterIOWQAff(cpusz uint64, mask *unix.CPUSet) error

func (*Ring) RegisterIOWQMaxWorkers

func (ring *Ring) RegisterIOWQMaxWorkers(val []uint) (uint, error)

func (*Ring) RegisterNAPI

func (ring *Ring) RegisterNAPI(napi *NAPI) (uint, error)

func (*Ring) RegisterPersonality

func (ring *Ring) RegisterPersonality() (uint, error)

func (*Ring) RegisterProbe

func (ring *Ring) RegisterProbe(probe *Probe, nrOps int) (uint, error)

func (*Ring) RegisterRestrictions

func (ring *Ring) RegisterRestrictions(res []Restriction) (uint, error)

func (*Ring) RegisterRingFd

func (ring *Ring) RegisterRingFd() (uint, error)

func (*Ring) RegisterSyncCancel

func (ring *Ring) RegisterSyncCancel(reg *SyncCancelReg) (uint, error)

func (*Ring) SQEntries

func (ring *Ring) SQEntries() uint32

func (*Ring) SQNeedWakeup

func (ring *Ring) SQNeedWakeup() bool

func (*Ring) SQReady

func (ring *Ring) SQReady() uint32

func (*Ring) SQRingWait

func (ring *Ring) SQRingWait() (uint, error)

func (*Ring) SQSpaceLeft

func (ring *Ring) SQSpaceLeft() uint32

func (*Ring) SetupBufRing

func (ring *Ring) SetupBufRing(entries uint32, bgid uint16, flags uint32) (*BufferAndRing, error)

func (*Ring) Submit

func (ring *Ring) Submit() (uint, error)

func (*Ring) SubmitAndGetEvents

func (ring *Ring) SubmitAndGetEvents() (uint, error)

func (*Ring) SubmitAndWait

func (ring *Ring) SubmitAndWait(waitNr uint32) (uint, error)

func (*Ring) SubmitAndWaitMinTimeout

func (ring *Ring) SubmitAndWaitMinTimeout(waitNr uint32, ts *syscall.Timespec, minTimeout time.Duration, sigmask *unix.Sigset_t) (*CompletionQueueEvent, error)

func (*Ring) SubmitAndWaitTimeout

func (ring *Ring) SubmitAndWaitTimeout(waitNr uint32, ts *syscall.Timespec, sigmask *unix.Sigset_t) (*CompletionQueueEvent, error)

func (*Ring) UnregisterBufferRing

func (ring *Ring) UnregisterBufferRing(bgid uint16) (uint, error)

func (*Ring) UnregisterBuffers

func (ring *Ring) UnregisterBuffers() (uint, error)

func (*Ring) UnregisterEventFd

func (ring *Ring) UnregisterEventFd(fd int) (uint, error)

func (*Ring) UnregisterFiles

func (ring *Ring) UnregisterFiles() (uint, error)

func (*Ring) UnregisterIOWQAff

func (ring *Ring) UnregisterIOWQAff() (uint, error)

func (*Ring) UnregisterNAPI

func (ring *Ring) UnregisterNAPI(napi *NAPI) (uint, error)

func (*Ring) UnregisterPersonality

func (ring *Ring) UnregisterPersonality() (uint, error)

func (*Ring) UnregisterRingFd

func (ring *Ring) UnregisterRingFd() (uint, error)

func (*Ring) WaitCQE

func (ring *Ring) WaitCQE() (*CompletionQueueEvent, error)

func (*Ring) WaitCQENr

func (ring *Ring) WaitCQENr(waitNr uint32) (*CompletionQueueEvent, error)

func (*Ring) WaitCQETimeout

func (ring *Ring) WaitCQETimeout(ts *syscall.Timespec) (*CompletionQueueEvent, error)

func (*Ring) WaitCQEs

func (ring *Ring) WaitCQEs(waitNr uint32, ts *syscall.Timespec, sigmask *unix.Sigset_t) (*CompletionQueueEvent, error)

func (*Ring) WaitCQEsMinTimeout

func (ring *Ring) WaitCQEsMinTimeout(waitNr uint32, ts *syscall.Timespec, minTimeout time.Duration, sigmask *unix.Sigset_t) (*CompletionQueueEvent, error)

func (*Ring) WakeupSQPoll

func (ring *Ring) WakeupSQPoll() (uint, error)

type RsrcRegister

type RsrcRegister struct {
	Nr    uint32
	Flags uint32
	Resv2 uint64
	Data  uint64
	Tags  uint64
}

type RsrcUpdate

type RsrcUpdate struct {
	Offset uint32
	Resv   uint32
	Data   uint64
}

type RsrcUpdate2

type RsrcUpdate2 struct {
	Offset uint32
	Resv   uint32
	Data   uint64
	Tags   uint64
	Nr     uint32
	Resv2  uint32
}

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 (entry *SubmissionQueueEntry) PrepareGetsockopt(fd int, level int, optName int, optValue unsafe.Pointer, optValueLen *int32)

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 (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 (entry *SubmissionQueueEntry) PrepareLinkat(oldFd int, oldPath []byte, newFd int, newPath []byte, flags int)

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 (entry *SubmissionQueueEntry) PrepareMsgRing(fd int, length uint32, userdata unsafe.Pointer, flags uint32)

func (*SubmissionQueueEntry) PrepareMsgRingCQEFlags

func (entry *SubmissionQueueEntry) PrepareMsgRingCQEFlags(fd int, length uint32, userdata unsafe.Pointer, flags, cqeFlags uint32)

func (*SubmissionQueueEntry) PrepareMsgRingFd

func (entry *SubmissionQueueEntry) PrepareMsgRingFd(fd int, sourceFd int, targetFd int, userdata unsafe.Pointer, flags uint32)

func (*SubmissionQueueEntry) PrepareMsgRingFdAlloc

func (entry *SubmissionQueueEntry) PrepareMsgRingFdAlloc(fd int, sourceFd int, userdata unsafe.Pointer, flags uint32)

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 (entry *SubmissionQueueEntry) PrepareOpenat2Direct(dfd int, path []byte, openHow *unix.OpenHow, fileIndex uint32)

func (*SubmissionQueueEntry) PrepareOpenatDirect

func (entry *SubmissionQueueEntry) PrepareOpenatDirect(dfd int, path []byte, flags int, mode uint32, fileIndex uint32)

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 (entry *SubmissionQueueEntry) PrepareReadFixed(fd int, buf uintptr, nbytes uint32, offset uint64, bufIndex int)

func (*SubmissionQueueEntry) PrepareReadv

func (entry *SubmissionQueueEntry) PrepareReadv(fd int, iovecs uintptr, nrVecs uint32, offset uint64)

func (*SubmissionQueueEntry) PrepareReadv2

func (entry *SubmissionQueueEntry) PrepareReadv2(fd int, iovecs uintptr, nrVecs uint32, offset uint64, flags int)

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 (entry *SubmissionQueueEntry) PrepareRenameat(oldFd int, oldPath []byte, newFd int, newPath []byte, flags uint32)

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 (entry *SubmissionQueueEntry) PrepareSendZC(sockFd int, addr uintptr, length uint32, flags int, zcFlags uint32)

func (*SubmissionQueueEntry) PrepareSendZCFixed

func (entry *SubmissionQueueEntry) PrepareSendZCFixed(sockFd int, addr uintptr, length uint32, flags int, zcFlags, bufIndex uint32)

func (*SubmissionQueueEntry) PrepareSendmsgZC

func (entry *SubmissionQueueEntry) PrepareSendmsgZC(fd int, msg *syscall.Msghdr, flags int)

func (*SubmissionQueueEntry) PrepareSetsockopt

func (entry *SubmissionQueueEntry) PrepareSetsockopt(fd int, level int, optName int, optValue unsafe.Pointer, optValueLen int32)

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 (entry *SubmissionQueueEntry) PrepareSplice(fdIn int, offIn int64, fdOut int, offOut int64, nbytes, spliceFlags uint32)

func (*SubmissionQueueEntry) PrepareStatx

func (entry *SubmissionQueueEntry) PrepareStatx(dfd int, path []byte, flags int, mask uint32, statx *unix.Statx_t)
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 (entry *SubmissionQueueEntry) PrepareTimeoutUpdate(spec *syscall.Timespec, userdata unsafe.Pointer, flags uint32)
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 (entry *SubmissionQueueEntry) PrepareWriteFixed(
	fd int, vectors uintptr, length uint32, offset uint64, index int)

func (*SubmissionQueueEntry) PrepareWritev

func (entry *SubmissionQueueEntry) PrepareWritev(
	fd int, iovecs uintptr, nrVecs uint32, offset uint64)

func (*SubmissionQueueEntry) PrepareWritev2

func (entry *SubmissionQueueEntry) PrepareWritev2(
	fd int, iovecs uintptr, nrVecs uint32, offset uint64, flags int)

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

type SyncCancelReg struct {
	Addr    uint64
	Fd      int32
	Flags   uint32
	Timeout syscall.Timespec
	Pad     [4]uint64
}

type Version

type Version struct {
	Major  int
	Minor  int
	Patch  int
	Flavor string
	// contains filtered or unexported fields
}

func GetVersion

func GetVersion() Version

func (Version) Compare

func (v Version) Compare(o Version) int

func (Version) GTE

func (v Version) GTE(major, minor, patch int) bool

func (Version) Invalidate

func (v Version) Invalidate() bool

func (Version) IsGeneric

func (v Version) IsGeneric() bool

func (Version) LT

func (v Version) LT(major, minor, patch int) bool

func (Version) String

func (v Version) String() string

func (Version) Validate

func (v Version) Validate() bool

Directories

Path Synopsis
aio
sys

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL