giouring

package module
v0.0.0-...-69588b8 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2023 License: MIT Imports: 10 Imported by: 4

README

giouring - about the project

giouring is a Go port of the liburing library. It is written entirely in Go. No cgo.

Almost all functions and structures from liburing was implemented.

The giouring API is very similar to the liburing API, so anyone familiar with liburing will find it easier when writing code. Significant changes include:

  • Method and structure names have been aligned with the naming conventions of the Go language.
  • The prefix io_uring has been removed from method and structure names. After importing the package, methods and types will be preceded by the library name: giouring.
  • SQE and CQE types have been given full names: SubmissionQueueEntry and CompletionQueueEvent.
  • Additionally, if a method primarily pertains to a specific structure, for example, all methods prefixed with io_uring_prep that are related to the SubmissionQueueEntry structure (in liburing: io_uring_sqe), the pointer that was passed in C as a method argument has been moved to the method receiver.
Important notice
  • giouring was tested on kernel version 6.2.0-27-generic. Keep in mind that when running unit tests on older kernel versions, some tests may fail because the older kernel may not support some functionality. This will be fixed in the future.
  • Test coverage is currently low, but it will be systematically expanded.
Documentation

Go Reference

(back to top)

Used by

(back to top)

Prerequisites

Gain requires Go 1.20+

(back to top)

Implemented structs

liburing name Golang liburing port name Notes Implemented
io_uring_sq SubmissionQueue
io_uring_cq CompletionQueue
io_uring Ring
io_uring_sqe SubmissionQueueEntry
io_uring_cqe CompletionQueueEvent
io_sqring_offsets SQRingOffsets
io_cqring_offsets CQRingOffsets
io_uring_params Params
io_uring_files_update FilesUpdate
io_uring_rsrc_register RsrcRegister
io_uring_rsrc_update RsrcUpdate
io_uring_rsrc_update2 RsrcUpdate2
io_uring_probe_op ProbeOp
io_uring_probe Probe
io_uring_restriction Restriction
io_uring_buf BufAndRing
io_uring_buf_ring BufAndRing
io_uring_buf_reg BufReg
io_uring_getevents_arg GetEventsArg
io_uring_sync_cancel_reg SyncCancelReg
io_uring_file_index_range FileIndexRange
io_uring_recvmsg_out RecvmsgOut

(back to top)

Implemented methods

liburing name Receiver type Golang liburing port name Notes Implemented
IO_URING_CHECK_VERSION
IO_URING_VERSION_MAJOR
IO_URING_VERSION_MINOR
io_uring_buf_ring_add BufAndRing BufRingAdd
io_uring_buf_ring_advance BufAndRing BufRingAdvance
io_uring_buf_ring_cq_advance Ring BufRingCQAdvance
io_uring_buf_ring_init BufAndRing BufRingInit
io_uring_buf_ring_mask BufRingMask
io_uring_check_version CheckVersion
io_uring_close_ring_fd Ring CloseRingFd
io_uring_cq_advance Ring CQAdvance
io_uring_cq_has_overflow Ring CQHasOverflow
io_uring_cq_ready Ring CQReady
io_uring_cqe_get_data CompletionQueueEvent GetData
io_uring_cqe_get_data64 CompletionQueueEvent GetData64
io_uring_cqe_seen Ring CQESeen
io_uring_enter Ring Enter
io_uring_enter2 Ring Enter2
io_uring_for_each_cqe Ring ForEachCQE
io_uring_free_buf_ring Ring FreeBufRing
io_uring_free_probe ❗unnecessary
io_uring_get_events Ring GetEvents
io_uring_get_probe GetProbe
io_uring_get_probe_ring Ring GetProbeRing
io_uring_get_sqe Ring GetSQE
io_uring_major_version MajorVersion
io_uring_minor_version MinorVersion
io_uring_opcode_supported Probe IsSupported
io_uring_peek_cqe Ring PeekCQE
io_uring_prep_accept SubmissionQueueEntry PrepareAccept
io_uring_prep_accept_direct SubmissionQueueEntry PrepareAcceptDirect
io_uring_prep_cancel SubmissionQueueEntry PrepareCancel
io_uring_prep_cancel64 SubmissionQueueEntry PrepareCancel64
io_uring_prep_close SubmissionQueueEntry PrepareClose
io_uring_prep_close_direct SubmissionQueueEntry PrepareCloseDirect
io_uring_prep_connect SubmissionQueueEntry PrepareConnect
io_uring_prep_fadvise SubmissionQueueEntry PrepareFadvise
io_uring_prep_fallocate SubmissionQueueEntry PrepareFallocate
io_uring_prep_fgetxattr SubmissionQueueEntry PrepareFgetxattr
io_uring_prep_files_update SubmissionQueueEntry PrepareFilesUpdate
io_uring_prep_fsetxattr SubmissionQueueEntry PrepareFsetxattr
io_uring_prep_fsync SubmissionQueueEntry PrepareFsync
io_uring_prep_getxattr SubmissionQueueEntry PrepareGetxattr
io_uring_prep_link SubmissionQueueEntry PrepareLink
io_uring_prep_link_timeout SubmissionQueueEntry PrepareLinkTimeout
io_uring_prep_linkat SubmissionQueueEntry PrepareLinkat
io_uring_prep_madvise SubmissionQueueEntry PrepareMadvise
io_uring_prep_mkdir SubmissionQueueEntry PrepareMkdir
io_uring_prep_mkdirat SubmissionQueueEntry PrepareMkdirat
io_uring_prep_msg_ring SubmissionQueueEntry PrepareMsgRing
io_uring_prep_msg_ring_cqe_flags SubmissionQueueEntry PrepareMsgRingCqeFlags
io_uring_prep_msg_ring_fd SubmissionQueueEntry PrepareMsgRingFd
io_uring_prep_msg_ring_fd_alloc SubmissionQueueEntry PrepareMsgRingFdAlloc
io_uring_prep_multishot_accept SubmissionQueueEntry PrepareMultishotAccept
io_uring_prep_multishot_accept_direct SubmissionQueueEntry PrepareMultishotAcceptDirect
io_uring_prep_nop SubmissionQueueEntry PrepareNop
io_uring_prep_openat SubmissionQueueEntry PrepareOpenat
io_uring_prep_openat2 SubmissionQueueEntry PrepareOpenat2
io_uring_prep_openat2_direct SubmissionQueueEntry PrepareOpenat2Direct
io_uring_prep_openat_direct SubmissionQueueEntry PrepareOpenatDirect
io_uring_prep_poll_add SubmissionQueueEntry PreparePollAdd
io_uring_prep_poll_multishot SubmissionQueueEntry PreparePollMultishot
io_uring_prep_poll_remove SubmissionQueueEntry PreparePollRemove
io_uring_prep_poll_update SubmissionQueueEntry PreparePollUpdate
io_uring_prep_provide_buffers SubmissionQueueEntry PrepareProvideBuffers
io_uring_prep_read SubmissionQueueEntry PrepareRead
io_uring_prep_read_fixed SubmissionQueueEntry PrepareReadFixed
io_uring_prep_readv SubmissionQueueEntry PrepareReadv
io_uring_prep_readv2 SubmissionQueueEntry PrepareReadv2
io_uring_prep_recv SubmissionQueueEntry PrepareRecv
io_uring_prep_recv_multishot SubmissionQueueEntry PrepareRecvMultishot
io_uring_prep_recvmsg SubmissionQueueEntry PrepareRecvMsg
io_uring_prep_recvmsg_multishot SubmissionQueueEntry PrepareRecvMsgMultishot
io_uring_prep_remove_buffers SubmissionQueueEntry PrepareRemoveBuffers
io_uring_prep_rename SubmissionQueueEntry PrepareRename
io_uring_prep_renameat SubmissionQueueEntry PrepareRenameat
io_uring_prep_send SubmissionQueueEntry PrepareSend
io_uring_prep_send_set_addr SubmissionQueueEntry PrepareSendSetAddr
io_uring_prep_send_zc SubmissionQueueEntry PrepareSendZC
io_uring_prep_send_zc_fixed SubmissionQueueEntry PrepareSendZCFixed
io_uring_prep_sendmsg SubmissionQueueEntry PrepareSendMsg
io_uring_prep_sendmsg_zc SubmissionQueueEntry PrepareSendmsgZC
io_uring_prep_sendto SubmissionQueueEntry PrepareSendto
io_uring_prep_setxattr SubmissionQueueEntry PrepareSetxattr
io_uring_prep_shutdown SubmissionQueueEntry PrepareShutdown
io_uring_prep_socket SubmissionQueueEntry PrepareSocket
io_uring_prep_socket_direct SubmissionQueueEntry PrepareSocketDirect
io_uring_prep_socket_direct_alloc SubmissionQueueEntry PrepareSocketDirectAlloc
io_uring_prep_splice SubmissionQueueEntry PrepareSplice
io_uring_prep_statx SubmissionQueueEntry PrepareStatx
io_uring_prep_symlink SubmissionQueueEntry PrepareSymlink
io_uring_prep_symlinkat SubmissionQueueEntry PrepareSymlinkat
io_uring_prep_sync_file_range SubmissionQueueEntry PrepareSyncFileRange
io_uring_prep_tee SubmissionQueueEntry PrepareTee
io_uring_prep_timeout SubmissionQueueEntry PrepareTimeout
io_uring_prep_timeout_remove SubmissionQueueEntry PrepareTimeoutRemove
io_uring_prep_timeout_update SubmissionQueueEntry PrepareTimeoutUpdate
io_uring_prep_unlink SubmissionQueueEntry PrepareUnlink
io_uring_prep_unlinkat SubmissionQueueEntry PrepareUnlinkat
io_uring_prep_write SubmissionQueueEntry PrepareWrite
io_uring_prep_write_fixed SubmissionQueueEntry PrepareWriteFixed
io_uring_prep_writev SubmissionQueueEntry PrepareWritev
io_uring_prep_writev2 SubmissionQueueEntry PrepareWritev2
io_uring_queue_exit Ring QueueExit
io_uring_queue_init Ring QueueInit
io_uring_queue_init_params Ring QueueInitParams
io_uring_recvmsg_cmsg_firsthdr RecvmsgOut CmsgFirsthdr
io_uring_recvmsg_cmsg_nexthdr RecvmsgOut CmsgNexthdr
io_uring_recvmsg_name RecvmsgOut Name
io_uring_recvmsg_payload RecvmsgOut Payload
io_uring_recvmsg_payload_length RecvmsgOut PayloadLength
io_uring_recvmsg_validate RecvmsgOut RecvmsgValidate
io_uring_register Ring Register
io_uring_register_buf_ring Ring RegisterBufferRing
io_uring_register_buffers Ring RegisterBuffers
io_uring_register_buffers_sparse Ring RegisterBuffersSparse
io_uring_register_buffers_tags Ring RegisterBuffersTags
io_uring_register_buffers_update_tag Ring RegisterBuffersUpdateTag
io_uring_register_eventfd Ring RegisterEventFd
io_uring_register_eventfd_async Ring RegisterEventFdAsync
io_uring_register_file_alloc_range Ring RegisterFileAllocRange
io_uring_register_files Ring RegisterFiles
io_uring_register_files_sparse Ring RegisterFilesSparse
io_uring_register_files_tags Ring RegisterFilesTags
io_uring_register_files_update Ring RegisterFilesUpdate
io_uring_register_files_update_tag Ring RegisterFilesUpdateTag
io_uring_register_iowq_aff Ring RegisterIOWQAff
io_uring_register_iowq_max_workers Ring RegisterIOWQMaxWorkers
io_uring_register_ring_fd Ring RegisterRingFd
io_uring_register_sync_cancel Ring RegisterSyncCancel
io_uring_setup Setup
io_uring_setup_buf_ring Ring SetupBufRing
io_uring_sq_ready Ring SQReady
io_uring_sq_space_left Ring SQSpaceLeft
io_uring_sqe_set_data SubmissionQueueEntry SetData
io_uring_sqe_set_data64 SubmissionQueueEntry SetData64
io_uring_sqe_set_flags SubmissionQueueEntry SetFlags
io_uring_sqring_wait Ring SQRingWait
io_uring_submit Ring Submit
io_uring_submit_and_get_events Ring SubmitAndGetEvents
io_uring_submit_and_wait Ring SubmitAndWait
io_uring_submit_and_wait_timeout Ring SubmitAndWaitTimeout
io_uring_unregister_buf_ring Ring UnregisterBufferRing
io_uring_unregister_buffers Ring UnregisterBuffers
io_uring_unregister_eventfd Ring UnregisterEventFd
io_uring_unregister_files Ring UnregisterFiles
io_uring_unregister_iowq_aff Ring UnregisterIOWQAff
io_uring_unregister_ring_fd Ring UnregisterRingFd
io_uring_wait_cqe Ring WaitCQE
io_uring_wait_cqe_nr Ring WaitCQENr
io_uring_wait_cqe_timeout Ring WaitCQETimeout
io_uring_wait_cqes Ring WaitCQEs

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Paweł Gaczyński - LinkedIn

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Documentation

Index

Constants

View Source
const (
	SqeFixedFile uint8 = 1 << iota
	SqeIODrain
	SqeIOLink
	SqeIOHardlink
	SqeAsync
	SqeBufferSelect
	SqeCQESkipSuccess
)
View Source
const (
	SetupIOPoll uint32 = 1 << iota
	SetupSQPoll
	SetupSQAff
	SetupCQSize
	SetupClamp
	SetupAttachWQ
	SetupRDisabled
	SetupSubmitAll
	SetupCoopTaskrun
	SetupTaskrunFlag
	SetupSQE128
	SetupCQE32
	SetupSingleIssuer
	SetupDeferTaskrun
	SetupNoMmap
	SetupRegisteredFdOnly
)
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 (
	TimeoutAbs uint32 = 1 << iota
	TimeoutUpdate
	TimeoutBoottime
	TimeoutRealtime
	LinkTimeoutUpdate
	TimeoutETimeSuccess
	TimeoutMultishot
	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
	SendZCReportUsage
)
View Source
const (
	MsgData uint32 = iota
	MsgSendFd
)
View Source
const (
	MsgRingCQESkip uint32 = 1 << iota
	MsgRingFlagsPass
)
View Source
const (
	CQEFBuffer uint32 = 1 << iota
	CQEFMore
	CQEFSockNonempty
	CQEFNotif
)
View Source
const (
	SQNeedWakeup uint32 = 1 << iota
	SQCQOverflow
	SQTaskrun
)
View Source
const (
	EnterGetEvents uint32 = 1 << iota
	EnterSQWakeup
	EnterSQWait
	EnterExtArg
	EnterRegisteredRing
)
View Source
const (
	FeatSingleMMap uint32 = 1 << iota
	FeatNoDrop
	FeatSubmitStable
	FeatRWCurPos
	FeatCurPersonality
	FeatFastPoll
	FeatPoll32Bits
	FeatSQPollNonfixed
	FeatExtArg
	FeatNativeWorkers
	FeatRcrcTags
	FeatCQESkip
	FeatLinkedFile
	FeatRegRegRing
)
View Source
const (
	RegisterBuffers uint32 = iota
	UnregisterBuffers

	RegisterFiles
	UnregisterFiles

	RegisterEventFD
	UnregisterEventFD

	RegisterFilesUpdate
	RegisterEventFDAsync
	RegisterProbe

	RegisterPersonality
	UnregisterPersonality

	RegisterRestrictions
	RegisterEnableRings

	RegisterFiles2
	RegisterFilesUpdate2
	RegisterBuffers2
	RegisterBuffersUpdate

	RegisterIOWQAff
	UnregisterIOWQAff

	RegisterIOWQMaxWorkers

	RegisterRingFDs
	UnregisterRingFDs

	RegisterPbufRing
	UnregisterPbufRing

	RegisterSyncCancel

	RegisterFileAllocRange

	RegisterLast

	RegisterUseRegisteredRing = 1 << 31
)
View Source
const (
	IOWQBound uint = iota
	IOWQUnbound
)
View Source
const (
	RestrictionRegisterOp uint32 = iota
	RestrictionSQEOp
	RestrictionSQEFlagsAllowed
	RestrictionSQEFlagsRequired

	RestrictionLast
)
View Source
const (
	SocketUringOpSiocinq = iota
	SocketUringOpSiocoutq
)
View Source
const (
	IntFlagRegRing    uint8 = 1
	IntFlagRegRegRing uint8 = 2
	IntFlagAppMem     uint8 = 4
)
View Source
const (
	LibraryVersionMajor = 2
	LibraryVersionMinor = 5
)
View Source
const (
	AcceptMultishot uint16 = 1 << iota
)
View Source
const CQEBufferShift uint32 = 16
View Source
const CQEventFdDisabled uint32 = 1 << 0
View Source
const FileIndexAlloc uint32 = 4294967295
View Source
const FsyncDatasync uint32 = 1 << 0
View Source
const NotifUsageZCCopied uint32 = 1 << 31
View Source
const PbufRingMMap = 1
View Source
const RegisterFilesSkip int = -2
View Source
const (
	RsrcRegisterSparse uint32 = 1 << iota
)
View Source
const SpliceFFdInFixed uint32 = 1 << 31
View Source
const UringCmdFixed uint32 = 1 << 0

Variables

View Source
var RingBufStructSize = uint16(unsafe.Sizeof(BufAndRing{}))

Functions

func BufRingMask

func BufRingMask(entries uint32) int

liburing: io_uring_buf_ring_mask - https://manpages.debian.org/unstable/liburing-dev/io_uring_buf_ring_mask.3.en.html

func CheckKernelVersion

func CheckKernelVersion(k, major, minor int) (bool, error)

func CheckVersion

func CheckVersion(major, minor int) bool

liburing: io_uring_check_version - https://manpages.debian.org/unstable/liburing-dev/io_uring_check_version.3.en.html

func CompareKernelVersion

func CompareKernelVersion(a, b KernelVersion) int

func MlockSize

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

liburing: io_uring_mlock_size

func MlockSizeParams

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

liburing: io_uring_mlock_size_params

func Mmap

func Mmap(fd int, p *Params, sq *SubmissionQueue, cq *CompletionQueue) error

liburing: io_uring_mmap

func SetupRingPointers

func SetupRingPointers(p *Params, sq *SubmissionQueue, cq *CompletionQueue)

liburing: io_uring_setup_ring_pointers

func UnmapRings

func UnmapRings(sq *SubmissionQueue, cq *CompletionQueue)

liburing: io_uring_unmap_rings

Types

type BufAndRing

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

liburing: io_uring_buf liburing: io_uring_buf_ring

func (*BufAndRing) BufRingAdd

func (br *BufAndRing) BufRingAdd(addr uintptr, length uint32, bid uint16, mask, bufOffset int)

liburing: io_uring_buf_ring_add - https://manpages.debian.org/unstable/liburing-dev/io_uring_buf_ring_add.3.en.html

func (*BufAndRing) BufRingAdvance

func (br *BufAndRing) BufRingAdvance(count int)

liburing: io_uring_buf_ring_advance - https://manpages.debian.org/unstable/liburing-dev/io_uring_buf_ring_advance.3.en.html

func (*BufAndRing) BufRingInit

func (br *BufAndRing) BufRingInit()

liburing: io_uring_buf_ring_init - https://manpages.debian.org/unstable/liburing-dev/io_uring_buf_ring_init.3.en.html

type BufReg

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

liburing: io_uring_buf_reg

type CQRingOffsets

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

liburing: io_cqring_offsets

type CompletionQueue

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

liburing: io_uring_cq

type CompletionQueueEvent

type CompletionQueueEvent struct {
	UserData uint64
	Res      int32
	Flags    uint32
}

liburing: io_uring_cqe

func (*CompletionQueueEvent) GetData

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

liburing: io_uring_cqe_get_data - https://manpages.debian.org/unstable/liburing-dev/io_uring_cqe_get_data.3.en.html

func (*CompletionQueueEvent) GetData64

func (c *CompletionQueueEvent) GetData64() uint64

liburing: io_uring_cqe_get_data64 - https://manpages.debian.org/unstable/liburing-dev/io_uring_cqe_get_data64.3.en.html

type FileIndexRange

type FileIndexRange struct {
	Off  uint32
	Len  uint32
	Resv uint64
}

liburing: io_uring_file_index_range

type FilesUpdate

type FilesUpdate struct {
	Offset uint32
	Resv   uint32
	Fds    uint64
}

liburing: io_uring_files_update

type GetEventsArg

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

liburing: io_uring_getevents_arg

type KernelVersion

type KernelVersion struct {
	Kernel int
	Major  int
	Minor  int
	Flavor string
}

func GetKernelVersion

func GetKernelVersion() (*KernelVersion, error)

type Params

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

liburing: io_uring_params

type Probe

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

liburing: io_uring_probe

func (Probe) IsSupported

func (p Probe) IsSupported(op uint8) bool

liburing: io_uring_opcode_supported - https://manpages.debian.org/unstable/liburing-dev/io_uring_opcode_supported.3.en.html

type ProbeOp

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

liburing: io_uring_probe_op

type RecvmsgOut

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

liburing: io_uring_recvmsg_out

func RecvmsgValidate

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

liburing: io_uring_recvmsg_validate - https://manpages.debian.org/unstable/liburing-dev/io_uring_recvmsg_validate.3.en.html

func (*RecvmsgOut) CmsgFirsthdr

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

liburing: io_uring_recvmsg_cmsg_firsthdr - https://manpages.debian.org/unstable/liburing-dev/io_uring_recvmsg_cmsg_firsthdr.3.en.html

func (*RecvmsgOut) CmsgNexthdr

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

liburing: io_uring_recvmsg_cmsg_nexthdr - https://manpages.debian.org/unstable/liburing-dev/io_uring_recvmsg_cmsg_nexthdr.3.en.html

func (*RecvmsgOut) Name

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

liburing: io_uring_recvmsg_name - https://manpages.debian.org/unstable/liburing-dev/io_uring_recvmsg_name.3.en.html

func (*RecvmsgOut) Payload

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

liburing: io_uring_recvmsg_payload - https://manpages.debian.org/unstable/liburing-dev/io_uring_recvmsg_payload.3.en.html

func (*RecvmsgOut) PayloadLength

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

liburing: io_uring_recvmsg_payload_length - https://manpages.debian.org/unstable/liburing-dev/io_uring_recvmsg_payload_length.3.en.html

type Restriction

type Restriction struct {
	OpCode uint16
	// union {
	// 	__u8 register_op; /* IORING_RESTRICTION_REGISTER_OP */
	// 	__u8 sqe_op;      /* IORING_RESTRICTION_SQE_OP */
	// 	__u8 sqe_flags;   /* IORING_RESTRICTION_SQE_FLAGS_* */
	// };
	OpFlags uint8
	Resv    uint8
	Resv2   [3]uint32
}

liburing: io_uring_restriction

type Ring

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

liburing: io_uring

func CreateRing

func CreateRing(entries uint32) (*Ring, error)

func NewRing

func NewRing() *Ring

func (*Ring) BufRingCQAdvance

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

liburing: io_uring_buf_ring_cq_advance - https://manpages.debian.org/unstable/liburing-dev/io_uring_buf_ring_cq_advance.3.en.html

func (*Ring) CQAdvance

func (ring *Ring) CQAdvance(numberOfCQEs uint32)

liburing: io_uring_cq_advance - https://manpages.debian.org/unstable/liburing-dev/io_uring_cq_advance.3.en.html

func (*Ring) CQESeen

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

liburing: io_uring_cqe_seen - https://manpages.debian.org/unstable/liburing-dev/io_uring_cqe_seen.3.en.html

func (*Ring) CQEventfdEnabled

func (ring *Ring) CQEventfdEnabled() bool

liburing: io_uring_cq_eventfd_enabled

func (*Ring) CQHasOverflow

func (ring *Ring) CQHasOverflow() bool

liburing: io_uring_cq_has_overflow - https://manpages.debian.org/unstable/liburing-dev/io_uring_cq_has_overflow.3.en.html

func (*Ring) CQReady

func (ring *Ring) CQReady() uint32

liburing: io_uring_cq_ready - https://manpages.debian.org/unstable/liburing-dev/io_uring_cq_ready.3.en.html

func (*Ring) CloseRingFd

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

liburing: io_uring_close_ring_fd - https://manpages.debian.org/unstable/liburing-dev/io_uring_close_ring_fd.3.en.html

func (*Ring) CqEventfdToggle

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

liburing: io_uring_cq_eventfd_toggle

func (*Ring) EnableRings

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

liburing: io_uring_enable_rings

func (*Ring) Enter

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

* io_uring_enter - https://manpages.debian.org/unstable/liburing-dev/io_uring_enter.2.en.html

func (*Ring) Enter2

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

* io_uring_enter2 - https://manpages.debian.org/unstable/liburing-dev/io_uring_enter.2.en.html

func (*Ring) ForEachCQE

func (ring *Ring) ForEachCQE(callback func(cqe *CompletionQueueEvent))

liburing: io_uring_for_each_cqe - https://manpages.debian.org/unstable/liburing-dev/io_uring_for_each_cqe.3.en.html

func (*Ring) FreeBufRing

func (ring *Ring) FreeBufRing(bgid int) error

liburing: io_uring_free_buf_ring - https://manpages.debian.org/unstable/liburing-dev/io_uring_free_buf_ring.3.en.html

func (*Ring) GetEvents

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

liburing: io_uring_get_events - https://manpages.debian.org/unstable/liburing-dev/io_uring_get_events.3.en.html

func (*Ring) GetProbeRing

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

liburing: io_uring_get_probe_ring

func (*Ring) PeekBatchCQE

func (ring *Ring) PeekBatchCQE(cqes []*CompletionQueueEvent) uint32

liburing: io_uring_peek_batch_cqe

func (*Ring) PeekCQE

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

liburing: io_uring_peek_cqe - https://manpages.debian.org/unstable/liburing-dev/io_uring_peek_cqe.3.en.html

func (*Ring) QueueExit

func (ring *Ring) QueueExit()

liburing: io_uring_queue_exit - https://manpages.debian.org/unstable/liburing-dev/io_uring_queue_exit.3.en.html

func (*Ring) QueueInit

func (ring *Ring) QueueInit(entries uint32, flags uint32) error

liburing: io_uring_queue_init - https://manpages.debian.org/unstable/liburing-dev/io_uring_queue_init.3.en.html

func (*Ring) QueueInitMem

func (ring *Ring) QueueInitMem(entries uint32, p *Params, buf unsafe.Pointer, bufSize uint64) error

liburing: io_uring_queue_init_mem

func (*Ring) QueueInitParams

func (ring *Ring) QueueInitParams(entries uint32, p *Params) error

liburing: io_uring_queue_init_params - https://manpages.debian.org/unstable/liburing-dev/io_uring_queue_init_params.3.en.html

func (*Ring) QueueMmap

func (ring *Ring) QueueMmap(fd int, p *Params) error

liburing: io_uring_queue_mmap

func (*Ring) Register

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

liburing: io_uring_register - https://manpages.debian.org/unstable/liburing-dev/io_uring_register.2.en.html

func (*Ring) RegisterBufferRing

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

liburing: io_uring_register_buf_ring - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_buf_ring.3.en.html

func (*Ring) RegisterBuffers

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

liburing: io_uring_register_buffers - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_buffers.3.en.html

func (*Ring) RegisterBuffersSparse

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

liburing: io_uring_register_buffers_sparse - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_buffers_sparse.3.en.html

func (*Ring) RegisterBuffersTags

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

liburing: io_uring_register_buffers_tags - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_buffers_tags.3.en.html

func (*Ring) RegisterBuffersUpdateTag

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

liburing: io_uring_register_buffers_update_tag - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_buffers_update_tag.3.en.html

func (*Ring) RegisterEventFd

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

liburing: io_uring_register_eventfd - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_eventfd.3.en.html

func (*Ring) RegisterEventFdAsync

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

liburing: io_uring_register_eventfd_async - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_eventfd_async.3.en.html

func (*Ring) RegisterFileAllocRange

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

liburing: io_uring_register_file_alloc_range - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_file_alloc_range.3.en.html

func (*Ring) RegisterFiles

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

liburing: io_uring_register_files - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_files.3.en.html

func (*Ring) RegisterFilesSparse

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

liburing: io_uring_register_files_sparse - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_files_sparse.3.en.html

func (*Ring) RegisterFilesTags

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

liburing: io_uring_register_files_tags - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_files_tags.3.en.html

func (*Ring) RegisterFilesUpdate

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

liburing: io_uring_register_files_update - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_files_update.3.en.html

func (*Ring) RegisterFilesUpdateTag

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

liburing: io_uring_register_files_update_tag - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_files_update_tag.3.en.html

func (*Ring) RegisterIOWQAff

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

liburing: io_uring_register_iowq_aff - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_iowq_aff.3.en.html

func (*Ring) RegisterIOWQMaxWorkers

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

liburing: io_uring_register_iowq_max_workers - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_iowq_max_workers.3.en.html

func (*Ring) RegisterPersonality

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

liburing: io_uring_register_personality

func (*Ring) RegisterProbe

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

liburing: io_uring_register_probe

func (*Ring) RegisterRestrictions

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

liburing: io_uring_register_restrictions

func (*Ring) RegisterRingFd

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

liburing: io_uring_register_ring_fd - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_ring_fd.3.en.html

func (*Ring) RegisterSyncCancel

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

liburing: io_uring_register_sync_cancel - https://manpages.debian.org/unstable/liburing-dev/io_uring_register_sync_cancel.3.en.html

func (*Ring) RingDontFork

func (ring *Ring) RingDontFork() error

liburing: io_uring_ring_dontfork

func (*Ring) RingFd

func (ring *Ring) RingFd() int

func (*Ring) SQReady

func (ring *Ring) SQReady() uint32

liburing: io_uring_sq_ready - https://manpages.debian.org/unstable/liburing-dev/io_uring_sq_ready.3.en.html

func (*Ring) SQRingWait

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

liburing: io_uring_sqring_wait - https://manpages.debian.org/unstable/liburing-dev/io_uring_sqring_wait.3.en.html

func (*Ring) SQSpaceLeft

func (ring *Ring) SQSpaceLeft() uint32

liburing: io_uring_sq_space_left - https://manpages.debian.org/unstable/liburing-dev/io_uring_sq_space_left.3.en.html

func (*Ring) SetupBufRing

func (ring *Ring) SetupBufRing(nentries uint32, bgid int, flags uint32) (*BufAndRing, error)

liburing: io_uring_setup_buf_ring - https://manpages.debian.org/unstable/liburing-dev/io_uring_setup_buf_ring.3.en.html

func (*Ring) Submit

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

liburing: io_uring_submit - https://manpages.debian.org/unstable/liburing-dev/io_uring_submit.3.en.html

func (*Ring) SubmitAndGetEvents

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

liburing: io_uring_submit_and_get_events - https://manpages.debian.org/unstable/liburing-dev/io_uring_submit_and_get_events.3.en.html

func (*Ring) SubmitAndWait

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

liburing: io_uring_submit_and_wait - https://manpages.debian.org/unstable/liburing-dev/io_uring_submit_and_wait.3.en.html

func (*Ring) SubmitAndWaitTimeout

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

liburing: io_uring_submit_and_wait_timeout - https://manpages.debian.org/unstable/liburing-dev/io_uring_submit_and_wait_timeout.3.en.html

func (*Ring) UnregisterBufferRing

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

liburing: io_uring_unregister_buf_ring - https://manpages.debian.org/unstable/liburing-dev/io_uring_unregister_buf_ring.3.en.html

func (*Ring) UnregisterBuffers

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

liburing: io_uring_unregister_buffers - https://manpages.debian.org/unstable/liburing-dev/io_uring_unregister_buffers.3.en.html

func (*Ring) UnregisterEventFd

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

liburing: io_uring_unregister_eventfd - https://manpages.debian.org/unstable/liburing-dev/io_uring_unregister_eventfd.3.en.html

func (*Ring) UnregisterFiles

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

liburing: io_uring_unregister_files - https://manpages.debian.org/unstable/liburing-dev/io_uring_unregister_files.3.en.html

func (*Ring) UnregisterIOWQAff

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

liburing: io_uring_unregister_iowq_aff - https://manpages.debian.org/unstable/liburing-dev/io_uring_unregister_iowq_aff.3.en.html

func (*Ring) UnregisterPersonality

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

liburing: io_uring_unregister_personality

func (*Ring) UnregisterRingFd

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

liburing: io_uring_unregister_ring_fd - https://manpages.debian.org/unstable/liburing-dev/io_uring_unregister_ring_fd.3.en.html

func (*Ring) WaitCQE

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

liburing: io_uring_wait_cqe - https://manpages.debian.org/unstable/liburing-dev/io_uring_wait_cqe.3.en.html

func (*Ring) WaitCQENr

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

liburing: io_uring_wait_cqe_nr - https://manpages.debian.org/unstable/liburing-dev/io_uring_wait_cqe_nr.3.en.html

func (*Ring) WaitCQETimeout

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

liburing: io_uring_wait_cqe_timeout - https://manpages.debian.org/unstable/liburing-dev/io_uring_wait_cqe_timeout.3.en.html

func (*Ring) WaitCQEs

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

liburing: io_uring_wait_cqes - https://manpages.debian.org/unstable/liburing-dev/io_uring_wait_cqes.3.en.html

func (*Ring) WaitCQEsNew

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

liburing: io_uring_wait_cqes_new

type RsrcRegister

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

liburing: io_uring_rsrc_register

type RsrcUpdate

type RsrcUpdate struct {
	Offset uint32
	Resv   uint32
	Data   uint64
}

liburing: io_uring_rsrc_update

type RsrcUpdate2

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

liburing: io_uring_rsrc_update2

type SQRingOffsets

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

liburing: io_sqring_offsets

type SubmissionQueue

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

liburing: io_uring_sq

type SubmissionQueueEntry

type SubmissionQueueEntry struct {
	OpCode uint8
	Flags  uint8
	IoPrio uint16
	Fd     int32
	// union {
	// 	__u64	off;	/* offset into file */
	// 	__u64	addr2;
	// 	struct {
	// 		__u32	cmd_op;
	// 		__u32	__pad1;
	// 	};
	// };
	Off uint64
	// union {
	// 	__u64	addr;	/* pointer to buffer or iovecs */
	// 	__u64	splice_off_in;
	// };
	Addr uint64
	Len  uint32
	// union {
	// 	__kernel_rwf_t	rw_flags;
	// 	__u32		fsync_flags;
	// 	__u16		poll_events;	/* compatibility */
	// 	__u32		poll32_events;	/* word-reversed for BE */
	// 	__u32		sync_range_flags;
	// 	__u32		msg_flags;
	// 	__u32		timeout_flags;
	// 	__u32		accept_flags;
	// 	__u32		cancel_flags;
	// 	__u32		open_flags;
	// 	__u32		statx_flags;
	// 	__u32		fadvise_advice;
	// 	__u32		splice_flags;
	// 	__u32		rename_flags;
	// 	__u32		unlink_flags;
	// 	__u32		hardlink_flags;
	// 	__u32		xattr_flags;
	// 	__u32		msg_ring_flags;
	// 	__u32		uring_cmd_flags;
	// };
	OpcodeFlags uint32
	UserData    uint64
	// union {
	// 	/* index into fixed buffers, if used */
	// 	__u16	buf_index;
	// 	/* for grouped buffer selection */
	// 	__u16	buf_group;
	// } __attribute__((packed));
	BufIG       uint16
	Personality uint16
	// union {
	// 	__s32	splice_fd_in;
	// 	__u32	file_index;
	// 	struct {
	// 		__u16	addr_len;
	// 		__u16	__pad3[1];
	// 	};
	// };
	SpliceFdIn int32
	Addr3      uint64
	// contains filtered or unexported fields
}

liburing: io_uring_sqe

func (*SubmissionQueueEntry) PrepareAccept

func (entry *SubmissionQueueEntry) PrepareAccept(fd int, addr uintptr, addrLen uint64, flags uint32)

liburing: io_uring_prep_accept - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_accept.3.en.html

func (*SubmissionQueueEntry) PrepareAcceptDirect

func (entry *SubmissionQueueEntry) PrepareAcceptDirect(
	fd int, addr uintptr, addrLen uint64, flags uint32, fileIndex uint32,
)

liburing: io_uring_prep_accept_direct - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_accept_direct.3.en.html

func (*SubmissionQueueEntry) PrepareCancel

func (entry *SubmissionQueueEntry) PrepareCancel(userData uintptr, flags int)

liburing: io_uring_prep_cancel - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_cancel.3.en.html

func (*SubmissionQueueEntry) PrepareCancel64

func (entry *SubmissionQueueEntry) PrepareCancel64(userData uint64, flags int)

liburing: io_uring_prep_cancel64 - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_cancel64.3.en.html

func (*SubmissionQueueEntry) PrepareCancelFd

func (entry *SubmissionQueueEntry) PrepareCancelFd(fd int, flags uint32)

liburing: io_uring_prep_cancel_fd

func (*SubmissionQueueEntry) PrepareClose

func (entry *SubmissionQueueEntry) PrepareClose(fd int)

liburing: io_uring_prep_close - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_close.3.en.html

func (*SubmissionQueueEntry) PrepareCloseDirect

func (entry *SubmissionQueueEntry) PrepareCloseDirect(fileIndex uint32)

liburing: io_uring_prep_close_direct - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_close_direct.3.en.html

func (*SubmissionQueueEntry) PrepareCmdSock

func (entry *SubmissionQueueEntry) PrepareCmdSock(
	cmdOp int, fd int, _ int, _ int, _ unsafe.Pointer, _ int,
)

liburing: io_uring_prep_cmd_sock

func (*SubmissionQueueEntry) PrepareConnect

func (entry *SubmissionQueueEntry) PrepareConnect(fd int, addr *syscall.Sockaddr, addrLen uint64)

liburing: io_uring_prep_connect - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_connect.3.en.html

func (*SubmissionQueueEntry) PrepareFadvise

func (entry *SubmissionQueueEntry) PrepareFadvise(fd int, offset uint64, length int, advise uint32)

io_uring_prep_fadvise - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_fadvise.3.en.html

func (*SubmissionQueueEntry) PrepareFallocate

func (entry *SubmissionQueueEntry) PrepareFallocate(fd int, mode int, offset, length uint64)

liburing: io_uring_prep_fallocate - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_fallocate.3.en.html

func (*SubmissionQueueEntry) PrepareFgetxattr

func (entry *SubmissionQueueEntry) PrepareFgetxattr(fd int, name, value []byte)

liburing: io_uring_prep_fgetxattr - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_fgetxattr.3.en.html

func (*SubmissionQueueEntry) PrepareFilesUpdate

func (entry *SubmissionQueueEntry) PrepareFilesUpdate(fds []int, offset int)

liburing: io_uring_prep_files_update - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_files_update.3.en.html

func (*SubmissionQueueEntry) PrepareFsetxattr

func (entry *SubmissionQueueEntry) PrepareFsetxattr(fd int, name, value []byte, flags int)

liburing: io_uring_prep_fsetxattr - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_fsetxattr.3.en.html

func (*SubmissionQueueEntry) PrepareFsync

func (entry *SubmissionQueueEntry) PrepareFsync(fd int, flags uint32)

liburing: io_uring_prep_fsync - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_fsync.3.en.html

func (*SubmissionQueueEntry) PrepareGetxattr

func (entry *SubmissionQueueEntry) PrepareGetxattr(name, value, path []byte)

liburing: io_uring_prep_getxattr - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_getxattr.3.en.html

func (entry *SubmissionQueueEntry) PrepareLink(oldPath, newPath []byte, flags int)

liburing: io_uring_prep_link - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_link.3.en.html

func (*SubmissionQueueEntry) PrepareLinkTimeout

func (entry *SubmissionQueueEntry) PrepareLinkTimeout(duration time.Duration, flags uint32)

liburing: io_uring_prep_link_timeout - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_link_timeout.3.en.html

func (*SubmissionQueueEntry) PrepareLinkat

func (entry *SubmissionQueueEntry) PrepareLinkat(oldFd int, oldPath []byte, newFd int, newPath []byte, flags int)

liburing: io_uring_prep_linkat - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_linkat.3.en.html

func (*SubmissionQueueEntry) PrepareMadvise

func (entry *SubmissionQueueEntry) PrepareMadvise(addr uintptr, length uint, advice int)

liburing: io_uring_prep_madvise - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_madvise.3.en.html

func (*SubmissionQueueEntry) PrepareMkdir

func (entry *SubmissionQueueEntry) PrepareMkdir(path []byte, mode uint32)

liburing: io_uring_prep_mkdir - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_mkdir.3.en.html

func (*SubmissionQueueEntry) PrepareMkdirat

func (entry *SubmissionQueueEntry) PrepareMkdirat(dfd int, path []byte, mode uint32)

liburing: io_uring_prep_mkdirat - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_mkdirat.3.en.html

func (*SubmissionQueueEntry) PrepareMsgRing

func (entry *SubmissionQueueEntry) PrepareMsgRing(fd int, length uint32, data uint64, flags uint32)

liburing: io_uring_prep_msg_ring - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_msg_ring.3.en.html

func (*SubmissionQueueEntry) PrepareMsgRingCqeFlags

func (entry *SubmissionQueueEntry) PrepareMsgRingCqeFlags(fd int, length uint32, data uint64, flags, cqeFlags uint32)

liburing: io_uring_prep_msg_ring_cqe_flags - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_msg_ring_cqe_flags.3.en.html

func (*SubmissionQueueEntry) PrepareMsgRingFd

func (entry *SubmissionQueueEntry) PrepareMsgRingFd(fd int, sourceFd int, targetFd int, data uint64, flags uint32)

liburing: io_uring_prep_msg_ring_fd - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_msg_ring_fd.3.en.html

func (*SubmissionQueueEntry) PrepareMsgRingFdAlloc

func (entry *SubmissionQueueEntry) PrepareMsgRingFdAlloc(fd int, sourceFd int, data uint64, flags uint32)

liburing: io_uring_prep_msg_ring_fd_alloc - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_msg_ring_fd_alloc.3.en.html

func (*SubmissionQueueEntry) PrepareMultishotAccept

func (entry *SubmissionQueueEntry) PrepareMultishotAccept(fd int, addr uintptr, addrLen uint64, flags int)

liburing: io_uring_prep_multishot_accept - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_multishot_accept.3.en.html

func (*SubmissionQueueEntry) PrepareMultishotAcceptDirect

func (entry *SubmissionQueueEntry) PrepareMultishotAcceptDirect(fd int, addr uintptr, addrLen uint64, flags int)

liburing: io_uring_prep_multishot_accept_direct - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_multishot_accept_direct.3.en.html

func (*SubmissionQueueEntry) PrepareNop

func (entry *SubmissionQueueEntry) PrepareNop()

liburing: io_uring_prep_nop - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_nop.3.en.html

func (*SubmissionQueueEntry) PrepareOpenat

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

liburing: io_uring_prep_openat - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_openat.3.en.html

func (*SubmissionQueueEntry) PrepareOpenat2

func (entry *SubmissionQueueEntry) PrepareOpenat2(dfd int, path []byte, openHow *unix.OpenHow)

liburing: io_uring_prep_openat2 - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_openat2.3.en.html

func (*SubmissionQueueEntry) PrepareOpenat2Direct

func (entry *SubmissionQueueEntry) PrepareOpenat2Direct(dfd int, path []byte, openHow *unix.OpenHow, fileIndex uint32)

liburing: io_uring_prep_openat2_direct - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_openat2_direct.3.en.html

func (*SubmissionQueueEntry) PrepareOpenatDirect

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

liburing: io_uring_prep_openat_direct - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_openat_direct.3.en.html

func (*SubmissionQueueEntry) PreparePollAdd

func (entry *SubmissionQueueEntry) PreparePollAdd(fd int, pollMask uint32)

liburing: io_uring_prep_poll_add - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_poll_add.3.en.html

func (*SubmissionQueueEntry) PreparePollMultishot

func (entry *SubmissionQueueEntry) PreparePollMultishot(fd int, pollMask uint32)

liburing: io_uring_prep_poll_multishot - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_poll_multishot.3.en.html

func (*SubmissionQueueEntry) PreparePollRemove

func (entry *SubmissionQueueEntry) PreparePollRemove(userData uint64)

liburing: io_uring_prep_poll_remove - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_poll_remove.3.en.html

func (*SubmissionQueueEntry) PreparePollUpdate

func (entry *SubmissionQueueEntry) PreparePollUpdate(oldUserData, newUserData uint64, pollMask, flags uint32)

liburing: io_uring_prep_poll_update - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_poll_update.3.en.html

func (*SubmissionQueueEntry) PrepareProvideBuffers

func (entry *SubmissionQueueEntry) PrepareProvideBuffers(addr uintptr, length, nr, bgid, bid int)

liburing: io_uring_prep_provide_buffers - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_provide_buffers.3.en.html

func (*SubmissionQueueEntry) PrepareRead

func (entry *SubmissionQueueEntry) PrepareRead(fd int, buf uintptr, nbytes uint32, offset uint64)

liburing: io_uring_prep_read - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_read.3.en.html

func (*SubmissionQueueEntry) PrepareReadFixed

func (entry *SubmissionQueueEntry) PrepareReadFixed(
	fd int,
	buf uintptr,
	nbytes uint32,
	offset uint64,
	bufIndex int,
)

liburing: io_uring_prep_read_fixed - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_read_fixed.3.en.html

func (*SubmissionQueueEntry) PrepareReadv

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

liburing: io_uring_prep_readv - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_readv.3.en.html

func (*SubmissionQueueEntry) PrepareReadv2

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

liburing: io_uring_prep_readv2 - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_readv2.3.en.html

func (*SubmissionQueueEntry) PrepareRecv

func (entry *SubmissionQueueEntry) PrepareRecv(
	fd int,
	buf uintptr,
	length uint32,
	flags int,
)

liburing: io_uring_prep_recv - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_recv.3.en.html

func (*SubmissionQueueEntry) PrepareRecvMsg

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

liburing: io_uring_prep_recvmsg - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_recvmsg.3.en.html

func (*SubmissionQueueEntry) PrepareRecvMsgMultishot

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

liburing: io_uring_prep_recvmsg_multishot - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_recvmsg_multishot.3.en.html

func (*SubmissionQueueEntry) PrepareRecvMultishot

func (entry *SubmissionQueueEntry) PrepareRecvMultishot(
	fd int,
	addr uintptr,
	length uint32,
	flags int,
)

liburing: io_uring_prep_recv_multishot - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_recv_multishot.3.en.html

func (*SubmissionQueueEntry) PrepareRemoveBuffers

func (entry *SubmissionQueueEntry) PrepareRemoveBuffers(nr int, bgid int)

liburing: io_uring_prep_remove_buffers - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_remove_buffers.3.en.html

func (*SubmissionQueueEntry) PrepareRename

func (entry *SubmissionQueueEntry) PrepareRename(oldPath, netPath []byte)

liburing: io_uring_prep_rename - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_rename.3.en.html

func (*SubmissionQueueEntry) PrepareRenameat

func (entry *SubmissionQueueEntry) PrepareRenameat(
	oldFd int, oldPath []byte, newFd int, newPath []byte, flags uint32,
)

liburing: io_uring_prep_renameat - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_renameat.3.en.html

func (*SubmissionQueueEntry) PrepareSend

func (entry *SubmissionQueueEntry) PrepareSend(
	fd int,
	addr uintptr,
	length uint32,
	flags int,
)

liburing: io_uring_prep_send - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_send.3.en.html

func (*SubmissionQueueEntry) PrepareSendMsg

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

liburing: io_uring_prep_sendmsg - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_sendmsg.3.en.html

func (*SubmissionQueueEntry) PrepareSendSetAddr

func (entry *SubmissionQueueEntry) PrepareSendSetAddr(destAddr *syscall.Sockaddr, addrLen uint16)

liburing: io_uring_prep_send_set_addr - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_send_set_addr.3.en.html

func (*SubmissionQueueEntry) PrepareSendZC

func (entry *SubmissionQueueEntry) PrepareSendZC(sockFd int, buf []byte, flags int, zcFlags uint32)

liburing: io_uring_prep_send_zc - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_send_zc.3.en.html

func (*SubmissionQueueEntry) PrepareSendZCFixed

func (entry *SubmissionQueueEntry) PrepareSendZCFixed(sockFd int, buf []byte, flags int, zcFlags, bufIndex uint32)

liburing: io_uring_prep_send_zc_fixed - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_send_zc_fixed.3.en.html

func (*SubmissionQueueEntry) PrepareSendmsgZC

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

liburing: io_uring_prep_sendmsg_zc - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_sendmsg_zc.3.en.html

func (*SubmissionQueueEntry) PrepareSendto

func (entry *SubmissionQueueEntry) PrepareSendto(
	sockFd int, buf []byte, flags int, addr *syscall.Sockaddr, addrLen uint32,
)

liburing: io_uring_prep_sendto - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_sendto.3.en.html

func (*SubmissionQueueEntry) PrepareSetxattr

func (entry *SubmissionQueueEntry) PrepareSetxattr(name, value, path []byte, flags int, length uint32)

liburing: io_uring_prep_setxattr - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_setxattr.3.en.html

func (*SubmissionQueueEntry) PrepareShutdown

func (entry *SubmissionQueueEntry) PrepareShutdown(fd, how int)

liburing: io_uring_prep_shutdown - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_shutdown.3.en.html

func (*SubmissionQueueEntry) PrepareSocket

func (entry *SubmissionQueueEntry) PrepareSocket(domain, socketType, protocol int, flags uint32)

liburing: io_uring_prep_socket - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_socket.3.en.html

func (*SubmissionQueueEntry) PrepareSocketDirect

func (entry *SubmissionQueueEntry) PrepareSocketDirect(domain, socketType, protocol int, fileIndex, flags uint32)

liburing: io_uring_prep_socket_direct - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_socket_direct.3.en.html

func (*SubmissionQueueEntry) PrepareSocketDirectAlloc

func (entry *SubmissionQueueEntry) PrepareSocketDirectAlloc(domain, socketType, protocol int, flags uint32)

liburing: io_uring_prep_socket_direct_alloc - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_socket_direct_alloc.3.en.html

func (*SubmissionQueueEntry) PrepareSplice

func (entry *SubmissionQueueEntry) PrepareSplice(
	fdIn int, offIn int64, fdOut int, offOut int64, nbytes, spliceFlags uint32,
)

liburing: io_uring_prep_splice - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_splice.3.en.html

func (*SubmissionQueueEntry) PrepareStatx

func (entry *SubmissionQueueEntry) PrepareStatx(dfd int, path []byte, flags int, mask uint32, statx *unix.Statx_t)

liburing: io_uring_prep_statx - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_statx.3.en.html

func (entry *SubmissionQueueEntry) PrepareSymlink(target, linkpath []byte)

liburing: io_uring_prep_symlink - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_symlink.3.en.html

func (*SubmissionQueueEntry) PrepareSymlinkat

func (entry *SubmissionQueueEntry) PrepareSymlinkat(target []byte, newdirfd int, linkpath []byte)

liburing: io_uring_prep_symlinkat - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_symlinkat.3.en.html

func (*SubmissionQueueEntry) PrepareSyncFileRange

func (entry *SubmissionQueueEntry) PrepareSyncFileRange(fd int, length uint32, offset uint64, flags int)

liburing: io_uring_prep_sync_file_range - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_sync_file_range.3.en.html

func (*SubmissionQueueEntry) PrepareTee

func (entry *SubmissionQueueEntry) PrepareTee(fdIn, fdOut int, nbytes, spliceFlags uint32)

liburing: io_uring_prep_tee - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_tee.3.en.html

func (*SubmissionQueueEntry) PrepareTimeout

func (entry *SubmissionQueueEntry) PrepareTimeout(spec *syscall.Timespec, count, flags uint32)

liburing: io_uring_prep_timeout - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_timeout.3.en.html

func (*SubmissionQueueEntry) PrepareTimeoutRemove

func (entry *SubmissionQueueEntry) PrepareTimeoutRemove(duration time.Duration, count uint64, flags uint32)

liburing: io_uring_prep_timeout_remove - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_timeout_remove.3.en.html

func (*SubmissionQueueEntry) PrepareTimeoutUpdate

func (entry *SubmissionQueueEntry) PrepareTimeoutUpdate(duration time.Duration, count uint64, flags uint32)

liburing: io_uring_prep_timeout_update - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_timeout_update.3.en.html

func (entry *SubmissionQueueEntry) PrepareUnlink(path uintptr, flags int)

liburing: io_uring_prep_unlink - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_unlink.3.en.html

func (*SubmissionQueueEntry) PrepareUnlinkat

func (entry *SubmissionQueueEntry) PrepareUnlinkat(dfd int, path uintptr, flags int)

liburing: io_uring_prep_unlinkat - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_unlinkat.3.en.html

func (*SubmissionQueueEntry) PrepareWrite

func (entry *SubmissionQueueEntry) PrepareWrite(fd int, buf uintptr, nbytes uint32, offset uint64)

liburing: io_uring_prep_write - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_write.3.en.html

func (*SubmissionQueueEntry) PrepareWriteFixed

func (entry *SubmissionQueueEntry) PrepareWriteFixed(
	fd int,
	vectors uintptr,
	length uint32,
	offset uint64,
	index int,
)

liburing: io_uring_prep_write_fixed - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_write_fixed.3.en.html

func (*SubmissionQueueEntry) PrepareWritev

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

liburing: io_uring_prep_writev - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_writev.3.en.html

func (*SubmissionQueueEntry) PrepareWritev2

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

liburing: io_uring_prep_writev2 - https://manpages.debian.org/unstable/liburing-dev/io_uring_prep_writev2.3.en.html

func (*SubmissionQueueEntry) SetData

func (entry *SubmissionQueueEntry) SetData(data unsafe.Pointer)

liburing: io_uring_sqe_set_data - https://manpages.debian.org/unstable/liburing-dev/io_uring_sqe_set_data.3.en.html

func (*SubmissionQueueEntry) SetData64

func (entry *SubmissionQueueEntry) SetData64(data uint64)

liburing: io_uring_sqe_set_data64 - https://manpages.debian.org/unstable/liburing-dev/io_uring_sqe_set_data64.3.en.html

func (*SubmissionQueueEntry) SetFlags

func (entry *SubmissionQueueEntry) SetFlags(flags uint32)

liburing: io_uring_sqe_set_flags - https://manpages.debian.org/unstable/liburing-dev/io_uring_sqe_set_flags.3.en.html

type SyncCancelReg

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

liburing: io_uring_sync_cancel_reg

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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