Class Native


  • final class Native
    extends java.lang.Object
    • Field Detail

      • SOCK_NONBLOCK

        static final int SOCK_NONBLOCK
      • SOCK_CLOEXEC

        static final int SOCK_CLOEXEC
      • AF_INET

        static final short AF_INET
      • AF_INET6

        static final short AF_INET6
      • AF_UNIX

        static final short AF_UNIX
      • SIZEOF_SOCKADDR_STORAGE

        static final int SIZEOF_SOCKADDR_STORAGE
      • SIZEOF_SOCKADDR_UN

        static final int SIZEOF_SOCKADDR_UN
      • SOCKADDR_UN_OFFSETOF_SUN_FAMILY

        static final int SOCKADDR_UN_OFFSETOF_SUN_FAMILY
      • SOCKADDR_UN_OFFSETOF_SUN_PATH

        static final int SOCKADDR_UN_OFFSETOF_SUN_PATH
      • MAX_SUN_PATH_LEN

        static final int MAX_SUN_PATH_LEN
      • SIZEOF_SOCKADDR_IN

        static final int SIZEOF_SOCKADDR_IN
      • SIZEOF_SOCKADDR_IN6

        static final int SIZEOF_SOCKADDR_IN6
      • SOCKADDR_IN_OFFSETOF_SIN_FAMILY

        static final int SOCKADDR_IN_OFFSETOF_SIN_FAMILY
      • SOCKADDR_IN_OFFSETOF_SIN_PORT

        static final int SOCKADDR_IN_OFFSETOF_SIN_PORT
      • SOCKADDR_IN_OFFSETOF_SIN_ADDR

        static final int SOCKADDR_IN_OFFSETOF_SIN_ADDR
      • IN_ADDRESS_OFFSETOF_S_ADDR

        static final int IN_ADDRESS_OFFSETOF_S_ADDR
      • SOCKADDR_IN6_OFFSETOF_SIN6_FAMILY

        static final int SOCKADDR_IN6_OFFSETOF_SIN6_FAMILY
      • SOCKADDR_IN6_OFFSETOF_SIN6_PORT

        static final int SOCKADDR_IN6_OFFSETOF_SIN6_PORT
      • SOCKADDR_IN6_OFFSETOF_SIN6_FLOWINFO

        static final int SOCKADDR_IN6_OFFSETOF_SIN6_FLOWINFO
      • SOCKADDR_IN6_OFFSETOF_SIN6_ADDR

        static final int SOCKADDR_IN6_OFFSETOF_SIN6_ADDR
      • SOCKADDR_IN6_OFFSETOF_SIN6_SCOPE_ID

        static final int SOCKADDR_IN6_OFFSETOF_SIN6_SCOPE_ID
      • IN6_ADDRESS_OFFSETOF_S6_ADDR

        static final int IN6_ADDRESS_OFFSETOF_S6_ADDR
      • SIZEOF_SIZE_T

        static final int SIZEOF_SIZE_T
      • SIZEOF_IOVEC

        static final int SIZEOF_IOVEC
      • CMSG_SPACE

        static final int CMSG_SPACE
      • CMSG_SPACE_FOR_FD

        static final int CMSG_SPACE_FOR_FD
      • CMSG_LEN

        static final int CMSG_LEN
      • CMSG_LEN_FOR_FD

        static final int CMSG_LEN_FOR_FD
      • MSG_CONTROL_LEN_FOR_FD

        static final int MSG_CONTROL_LEN_FOR_FD
      • CMSG_OFFSETOF_CMSG_LEN

        static final int CMSG_OFFSETOF_CMSG_LEN
      • CMSG_OFFSETOF_CMSG_LEVEL

        static final int CMSG_OFFSETOF_CMSG_LEVEL
      • CMSG_OFFSETOF_CMSG_TYPE

        static final int CMSG_OFFSETOF_CMSG_TYPE
      • IO_URING_BUFFER_RING_TAIL

        static final int IO_URING_BUFFER_RING_TAIL
      • IOVEC_OFFSETOF_IOV_BASE

        static final int IOVEC_OFFSETOF_IOV_BASE
      • IOVEC_OFFSETOF_IOV_LEN

        static final int IOVEC_OFFSETOF_IOV_LEN
      • SIZEOF_MSGHDR

        static final int SIZEOF_MSGHDR
      • MSGHDR_OFFSETOF_MSG_NAME

        static final int MSGHDR_OFFSETOF_MSG_NAME
      • MSGHDR_OFFSETOF_MSG_NAMELEN

        static final int MSGHDR_OFFSETOF_MSG_NAMELEN
      • MSGHDR_OFFSETOF_MSG_IOV

        static final int MSGHDR_OFFSETOF_MSG_IOV
      • MSGHDR_OFFSETOF_MSG_IOVLEN

        static final int MSGHDR_OFFSETOF_MSG_IOVLEN
      • MSGHDR_OFFSETOF_MSG_CONTROL

        static final int MSGHDR_OFFSETOF_MSG_CONTROL
      • MSGHDR_OFFSETOF_MSG_CONTROLLEN

        static final int MSGHDR_OFFSETOF_MSG_CONTROLLEN
      • MSGHDR_OFFSETOF_MSG_FLAGS

        static final int MSGHDR_OFFSETOF_MSG_FLAGS
      • POLLIN

        static final int POLLIN
      • POLLOUT

        static final int POLLOUT
      • POLLRDHUP

        static final int POLLRDHUP
      • ERRNO_ECANCELED_NEGATIVE

        static final int ERRNO_ECANCELED_NEGATIVE
      • ERRNO_ETIME_NEGATIVE

        static final int ERRNO_ETIME_NEGATIVE
      • ERRNO_NOBUFS_NEGATIVE

        static final int ERRNO_NOBUFS_NEGATIVE
      • PAGE_SIZE

        static final int PAGE_SIZE
      • MAX_SKB_FRAGS

        static final int MAX_SKB_FRAGS
      • SIZEOF_IOURING_BUF

        static final int SIZEOF_IOURING_BUF
      • IOURING_BUFFER_OFFSETOF_ADDR

        static final int IOURING_BUFFER_OFFSETOF_ADDR
      • IOURING_BUFFER_OFFSETOF_LEN

        static final int IOURING_BUFFER_OFFSETOF_LEN
      • IOURING_BUFFER_OFFSETOF_BID

        static final int IOURING_BUFFER_OFFSETOF_BID
      • IORING_OP_FIXED_FD_INSTALL

        static final byte IORING_OP_FIXED_FD_INSTALL
        See Also:
        Constant Field Values
      • IORING_CQE_F_SOCK_NONEMPTY

        static final int IORING_CQE_F_SOCK_NONEMPTY
        See Also:
        Constant Field Values
      • IORING_SETUP_SINGLE_ISSUER

        static final int IORING_SETUP_SINGLE_ISSUER
        See Also:
        Constant Field Values
      • IORING_SETUP_DEFER_TASKRUN

        static final int IORING_SETUP_DEFER_TASKRUN
        See Also:
        Constant Field Values
      • IORING_RECVSEND_POLL_FIRST

        static final short IORING_RECVSEND_POLL_FIRST
        See Also:
        Constant Field Values
      • IORING_SEND_ZC_REPORT_USAGE

        static final short IORING_SEND_ZC_REPORT_USAGE
        See Also:
        Constant Field Values
      • IORING_NOTIF_USAGE_ZC_COPIED

        static final int IORING_NOTIF_USAGE_ZC_COPIED
        See Also:
        Constant Field Values
      • IORING_FEAT_RECVSEND_BUNDLE

        static final int IORING_FEAT_RECVSEND_BUNDLE
        See Also:
        Constant Field Values
      • IORING_ENTER_GETEVENTS

        static final int IORING_ENTER_GETEVENTS
      • IORING_ENTER_REGISTERED_RING

        static final int IORING_ENTER_REGISTERED_RING
        See Also:
        Constant Field Values
      • IOSQE_ASYNC

        static final int IOSQE_ASYNC
      • IOSQE_LINK

        static final int IOSQE_LINK
      • IOSQE_HARDLINK

        static final int IOSQE_HARDLINK
      • IOSQE_IO_DRAIN

        static final int IOSQE_IO_DRAIN
      • IOSQE_BUFFER_SELECT

        static final int IOSQE_BUFFER_SELECT
      • MSG_DONTWAIT

        static final int MSG_DONTWAIT
      • MSG_FASTOPEN

        static final int MSG_FASTOPEN
      • SOL_UDP

        static final int SOL_UDP
      • SOL_SOCKET

        static final int SOL_SOCKET
      • UDP_SEGMENT

        static final int UDP_SEGMENT
      • SCM_RIGHTS

        static final int SCM_RIGHTS
      • TFO_ENABLED_CLIENT_MASK

        private static final int TFO_ENABLED_CLIENT_MASK
        See Also:
        Constant Field Values
      • TFO_ENABLED_SERVER_MASK

        private static final int TFO_ENABLED_SERVER_MASK
        See Also:
        Constant Field Values
      • TCP_FASTOPEN_MODE

        private static final int TCP_FASTOPEN_MODE
      • IS_SUPPORTING_TCP_FASTOPEN_CLIENT

        static final boolean IS_SUPPORTING_TCP_FASTOPEN_CLIENT
        tcp_fastopen client mode enabled state.
      • IS_SUPPORTING_TCP_FASTOPEN_SERVER

        static final boolean IS_SUPPORTING_TCP_FASTOPEN_SERVER
        tcp_fastopen server mode enabled state.
      • REQUIRED_IORING_OPS

        private static final int[] REQUIRED_IORING_OPS
    • Constructor Detail

      • Native

        private Native()
    • Method Detail

      • opToStr

        static java.lang.String opToStr​(byte op)
      • setupFlags

        static int setupFlags​(boolean useSingleIssuer)
      • createRingBuffer

        static RingBuffer createRingBuffer​(int ringSize,
                                           int setupFlags)
      • createRingBuffer

        static RingBuffer createRingBuffer​(int ringSize,
                                           int cqeSize,
                                           int setupFlags)
      • isRecvMultishotSupported

        static boolean isRecvMultishotSupported()
      • isAcceptMultishotSupported

        static boolean isAcceptMultishotSupported​(Native.IoUringProbe probe)
      • isCqeFSockNonEmptySupported

        static boolean isCqeFSockNonEmptySupported​(Native.IoUringProbe probe)
      • isPollAddMultiShotSupported

        static boolean isPollAddMultiShotSupported​(Native.IoUringProbe probe)
      • isRegisterIoWqWorkerSupported

        static boolean isRegisterIoWqWorkerSupported​(int ringFd)
        check current kernel version whether support io_uring_register_io_wq_worker Available since 5.15.
        Returns:
        true if support io_uring_register_io_wq_worker
      • isRegisterBufferRingSupported

        static boolean isRegisterBufferRingSupported​(int ringFd,
                                                     int flags)
      • checkKernelVersion

        static void checkKernelVersion​(java.lang.String kernelVersion)
      • checkKernelVersion

        private static boolean checkKernelVersion​(java.lang.String kernelVersion,
                                                  int major,
                                                  int minor)
      • ioUringSetupSupportsFlags

        static boolean ioUringSetupSupportsFlags​(int setupFlags)
      • isUnixDomainSocketInqSupported

        static boolean isUnixDomainSocketInqSupported()
      • ioUringSetup

        private static long[] ioUringSetup​(int entries,
                                           int cqeSize,
                                           int setupFlags)
      • ioUringProbe0

        private static int[] ioUringProbe0​(int ringFd)
      • ioUringRegisterIoWqMaxWorkers

        static int ioUringRegisterIoWqMaxWorkers​(int ringFd,
                                                 int maxBoundedValue,
                                                 int maxUnboundedValue)
      • ioUringRegisterEnableRings

        static int ioUringRegisterEnableRings​(int ringFd)
      • ioUringRegisterRingFds

        static int ioUringRegisterRingFds​(int ringFds)
      • ioUringRegisterBufRing

        static long ioUringRegisterBufRing​(int ringFd,
                                           int entries,
                                           short bufferGroup,
                                           int flags)
      • ioUringUnRegisterBufRing

        static int ioUringUnRegisterBufRing​(int ringFd,
                                            long ioUringBufRingAddr,
                                            int entries,
                                            short bufferGroupId)
      • ioUringBufRingSize

        static int ioUringBufRingSize​(int entries)
      • ioUringEnter

        static int ioUringEnter​(int ringFd,
                                int toSubmit,
                                int minComplete,
                                int flags)
      • eventFdWrite

        static void eventFdWrite​(int fd,
                                 long value)
      • getFd0

        private static int getFd0​(java.lang.Object fileChannel)
      • ioUringExit

        static void ioUringExit​(long submissionQueueArrayAddress,
                                int submissionQueueRingEntries,
                                long submissionQueueRingAddress,
                                int submissionQueueRingSize,
                                long completionQueueRingAddress,
                                int completionQueueRingSize,
                                int ringFd,
                                int enterRingFd)
      • blockingEventFd

        private static int blockingEventFd()
      • createFile

        static int createFile​(java.lang.String name)
      • registerUnix

        private static int registerUnix()
      • cmsghdrData

        static long cmsghdrData​(long hdrAddr)
      • kernelVersion

        static java.lang.String kernelVersion()
      • loadNativeLibrary

        private static void loadNativeLibrary()