Documentation
¶
Index ¶
- Constants
- Variables
- func CheckAvailableFeatures() (string, error)
- func ErrorSQEOverflow(overflowValue uint32) error
- func IsOpSupported(opCode uint8) (bool, error)
- type CQRingOffsets
- type CompletionQueue
- type CompletionQueueEvent
- type FilesUpdate
- type Params
- type Probe
- type Ring
- func (ring *Ring) CQAdvance(numberOfCQEs uint32)
- func (ring *Ring) CQESeen(event *CompletionQueueEvent)
- func (ring *Ring) Fd() int
- func (ring *Ring) FlushSQ() uint32
- func (ring *Ring) GetSQE() (*SubmissionQueueEntry, error)
- func (ring *Ring) PeekBatchCQE(cqes []*CompletionQueueEvent) int
- func (ring *Ring) QueueExit() error
- func (ring *Ring) QueueInit(entries uint, flags uint32) error
- func (ring *Ring) QueueInitParams(entries uint) error
- func (ring *Ring) Register(op uint, arg unsafe.Pointer, nrArgs int) (uintptr, uintptr, error)
- func (ring *Ring) RegisterProbe() (*Probe, error)
- func (ring *Ring) Submit() (uint, error)
- func (ring *Ring) SubmitAndWaitInternal(waitNr uint64) (uint, error)
- func (ring *Ring) SubmitAndWaitTimeout(waitNr uint32, timeSpec *syscall.Timespec) (*CompletionQueueEvent, error)
- func (ring *Ring) SubmitInternal(submitted uint32, waitNr uint64) (uint, error)
- func (ring *Ring) UnmapRings()
- func (ring *Ring) WaitCQE() (*CompletionQueueEvent, error)
- func (ring *Ring) WaitCQENr(waitNr uint32) (*CompletionQueueEvent, error)
- type RsrcRegister
- type RsrcUpdate
- type RsrcUpdate2
- type SQRingOffsets
- type SubmissionQueue
- type SubmissionQueueEntry
- 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 uint)
- func (entry *SubmissionQueueEntry) PrepareClose(fd int)
- func (entry *SubmissionQueueEntry) PrepareCloseDirect(fileIndex uint)
- func (entry *SubmissionQueueEntry) PrepareMsgRing(fd int, length uint32, data uint64, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareNop()
- func (entry *SubmissionQueueEntry) PrepareProvideBuffers(addr uintptr, length uint32, fileDescriptor int, bgid uint64, off uint64)
- func (entry *SubmissionQueueEntry) PrepareReadFixed(fileDescriptor int, vectors uintptr, length uint32, offset uint64, index 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 uint32)
- func (entry *SubmissionQueueEntry) PrepareRecv(fileDescriptor int, addr uintptr, length uint32, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareRecvMsg(fileDescriptor int, msg *syscall.Msghdr, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareRecvMultishot(fileDescriptor int, addr uintptr, length uint32, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareRemoveTimeout2(ts *syscall.Timespec, count uint64, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareSend(fileDescriptor int, addr uintptr, length uint32, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareSendMsg(fileDescriptor int, msg *syscall.Msghdr, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareTimeout(duration time.Duration, count uint64, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareTimeout2(ts *syscall.Timespec, count uint64, 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) PrepareUpdateTimeout2(ts *syscall.Timespec, count uint64, flags uint32)
- func (entry *SubmissionQueueEntry) PrepareWriteFixed(fileDescriptor 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 uint32)
Constants ¶
View Source
const ( CQEFBuffer uint32 = 1 << iota CQEFMore CQEFSockNonempty CQEFNotif )
View Source
const ( EnterGetEvents uint32 = 1 << iota EnterSQWakeup EnterSQWait EnterExtArg EnterRegisteredRing )
View Source
const ( OpNop uint8 = iota OpReadv OpWritev OpFsync OpReadFixed OpWriteFixed OpPollAdd OpPollRemove OpSyncFileRange OpSendmsg OpRecvmsg OpTimeout OpTimeoutRemove OpAccept OpAsyncCancel OpLinkTimeout OpConnect OpFallocate OpOpenat OpClose OpFilesUpdate OpStatx OpRead OpWrite OpFadvise OpMadvise OpSend OpRecv OpOpenat2 OpEpollCtl OpSplice OpProvideBuffers OpRemoveBuffers OpTee OpShutdown OpRenameat OpUnlinkat OpMkdirat OpSymlinkat OpLinkat OpMsgRing OpFsetxattr OpSetxattr OpFgetxattr OpGetxattr OpSocket OpUringCmd OpSendZC OpSendMsgZC OpLast )
View Source
const ( RestrictionRegisterOp uint32 = iota RestrictionSQEOp RestrictionSQEFlagsAllowed RestrictionSQEFlagsRequired RestrictionLast )
View Source
const ( RegisterBuffers uint = iota UnregisterBuffers RegisterFiles UnregisterFiles RegisterEventFD UnregisterEventFD RegisterFilesUpdate RegisterEventFDAsync RegisterProbe RegisterPersonality UnregisterPersonality RegisterRestrictions UnregisterEnableRings RegisterFiles2 RegisterFilesUpdate2 RegisterBuffers2 RegisterBuffersUpdate RegisterIOWQAff UnregisterIOWQAff RegisterIOWQMaxWorkers RegisterRingFDs UnregisterRingFDs RegisterPbufRing UnregisterPbufRing RegisterSyncCancel RegisterFileAllocRange RegisterLast )
View Source
const ( IOWQBound uint = iota IOWQUnbound )
View Source
const ( SQNeedWakeup uint32 = 1 << iota SQCQOverflow SQTaskrun )
View Source
const ( SetupIOPoll uint32 = 1 << iota SetupSQPoll SetupSQAff SetupSQSize SetupClamp SetupAttachWQ SetupRDisabled SetupSubmitAll SetupCoopTaskrun SetupTaskrunFlag SetupSQE128 SetupSQE32 SetupSingleIssuer SetupDeferTaskrun )
View Source
const ( FeatSingleMMap uint32 = 1 << iota FeatNoDrop FeatSubmitStable FeatRWCurPos FeatCurPersonality FeatFastPoll FeatPoll32Bits FeatSQPollNonfixed FeatExtArg FeatNativeWorkers FeatRcrcTags FeatCQESkip FeatLinkedFile )
View Source
const ( SqeFixedFile uint8 = 1 << iota SqeIODrain SqeIOLink SqeIOHardlink SqeAsync SqeBufferSelect SqeCQESkipSuccess )
View Source
const ( TimeoutAbs uint32 = 1 << iota TimeoutUpdate TimeoutBoottime TimeoutRealtime LinkTimeoutUpdate TimeoutETimeSuccess TimeoutClockMask = TimeoutBoottime | TimeoutRealtime TimeoutUpdateMask = TimeoutUpdate | LinkTimeoutUpdate )
View Source
const ( PollAddMulti uint32 = 1 << iota PollUpdateEvents PollUpdateUserData PollAddLevel )
View Source
const ( AsyncCancelAll uint32 = 1 << iota AsyncCancelFd AsyncCancelAny AsyncCancelFdFixed )
View Source
const ( RecvsendPollFirst uint16 = 1 << iota RecvMultishot RecvsendFixedBuf )
View Source
const ( MsgData uint32 = iota MsgSendFd )
View Source
const (
AcceptMultishot uint16 = 1 << iota
)
View Source
const CQEBufferShift uint32 = 16
View Source
const CQEventFdDisabled uint32 = 1 << 0
View Source
const FileIndexAlloc uint = 4294967295
View Source
const FsyncDatasync uint32 = 1 << 0
View Source
const (
IntFlagRegRing uint8 = 1
)
View Source
const (
MsgRingCQESkip uint32 = 1 << iota
)
View Source
const RegisterFilesSkip int = -2
View Source
const (
RsrcRegisterSparse uint32 = 1 << iota
)
View Source
const SpliceFFdInFixed uint32 = 1 << 31
Variables ¶
Functions ¶
func CheckAvailableFeatures ¶
func ErrorSQEOverflow ¶
func IsOpSupported ¶
Types ¶
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 {
// contains filtered or unexported fields
}
func (*CompletionQueueEvent) Flags ¶
func (c *CompletionQueueEvent) Flags() uint32
func (*CompletionQueueEvent) FlagsString ¶
func (c *CompletionQueueEvent) FlagsString() string
func (*CompletionQueueEvent) Res ¶
func (c *CompletionQueueEvent) Res() int32
func (*CompletionQueueEvent) UserData ¶
func (c *CompletionQueueEvent) UserData() uint64
type FilesUpdate ¶
type Probe ¶
func (Probe) IsSupported ¶
type Ring ¶
type Ring struct {
// contains filtered or unexported fields
}
func CreateRing ¶
func (*Ring) CQESeen ¶
func (ring *Ring) CQESeen(event *CompletionQueueEvent)
func (*Ring) GetSQE ¶
func (ring *Ring) GetSQE() (*SubmissionQueueEntry, error)
func (*Ring) PeekBatchCQE ¶
func (ring *Ring) PeekBatchCQE(cqes []*CompletionQueueEvent) int
func (*Ring) QueueInitParams ¶
func (*Ring) RegisterProbe ¶
func (*Ring) SubmitAndWaitInternal ¶
func (*Ring) SubmitAndWaitTimeout ¶
func (*Ring) SubmitInternal ¶
func (*Ring) UnmapRings ¶
func (ring *Ring) UnmapRings()
func (*Ring) WaitCQE ¶
func (ring *Ring) WaitCQE() (*CompletionQueueEvent, error)
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 // contains filtered or unexported fields }
func (*SubmissionQueueEntry) PrepareAccept ¶
func (entry *SubmissionQueueEntry) PrepareAccept(fd int, addr uintptr, addrLen uint64, flags uint32)
func (*SubmissionQueueEntry) PrepareAcceptDirect ¶
func (*SubmissionQueueEntry) PrepareClose ¶
func (entry *SubmissionQueueEntry) PrepareClose(fd int)
func (*SubmissionQueueEntry) PrepareCloseDirect ¶
func (entry *SubmissionQueueEntry) PrepareCloseDirect(fileIndex uint)
func (*SubmissionQueueEntry) PrepareMsgRing ¶
func (entry *SubmissionQueueEntry) PrepareMsgRing(fd int, length uint32, data uint64, flags uint32)
func (*SubmissionQueueEntry) PrepareNop ¶
func (entry *SubmissionQueueEntry) PrepareNop()
func (*SubmissionQueueEntry) PrepareProvideBuffers ¶
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( fileDescriptor int, addr uintptr, length uint32, flags uint32, )
func (*SubmissionQueueEntry) PrepareRecvMsg ¶
func (entry *SubmissionQueueEntry) PrepareRecvMsg( fileDescriptor int, msg *syscall.Msghdr, flags uint32, )
func (*SubmissionQueueEntry) PrepareRecvMultishot ¶
func (entry *SubmissionQueueEntry) PrepareRecvMultishot( fileDescriptor int, addr uintptr, length uint32, flags uint32, )
func (*SubmissionQueueEntry) PrepareRemoveTimeout2 ¶
func (entry *SubmissionQueueEntry) PrepareRemoveTimeout2(ts *syscall.Timespec, count uint64, flags uint32)
func (*SubmissionQueueEntry) PrepareSend ¶
func (entry *SubmissionQueueEntry) PrepareSend( fileDescriptor int, addr uintptr, length uint32, flags uint32, )
func (*SubmissionQueueEntry) PrepareSendMsg ¶
func (entry *SubmissionQueueEntry) PrepareSendMsg( fileDescriptor int, msg *syscall.Msghdr, flags uint32, )
func (*SubmissionQueueEntry) PrepareTimeout ¶
func (entry *SubmissionQueueEntry) PrepareTimeout(duration time.Duration, count uint64, flags uint32)
func (*SubmissionQueueEntry) PrepareTimeout2 ¶
func (entry *SubmissionQueueEntry) PrepareTimeout2(ts *syscall.Timespec, count uint64, flags uint32)
func (*SubmissionQueueEntry) PrepareTimeoutRemove ¶
func (entry *SubmissionQueueEntry) PrepareTimeoutRemove(duration time.Duration, count uint64, flags uint32)
func (*SubmissionQueueEntry) PrepareTimeoutUpdate ¶
func (entry *SubmissionQueueEntry) PrepareTimeoutUpdate(duration time.Duration, count uint64, flags uint32)
func (*SubmissionQueueEntry) PrepareUpdateTimeout2 ¶
func (entry *SubmissionQueueEntry) PrepareUpdateTimeout2(ts *syscall.Timespec, count uint64, flags uint32)
func (*SubmissionQueueEntry) PrepareWriteFixed ¶
func (*SubmissionQueueEntry) PrepareWritev ¶
func (entry *SubmissionQueueEntry) PrepareWritev( fd int, iovecs uintptr, nrVecs uint32, offset uint64, )
func (*SubmissionQueueEntry) PrepareWritev2 ¶
Click to show internal directories.
Click to hide internal directories.