Home / Function/ enqueueSqe() — netty Function Reference

enqueueSqe() — netty Function Reference

Architecture documentation for the enqueueSqe() function in SubmissionQueue.java from the netty codebase.

Function java Buffer Telemetry calls 3 called by 5

Entity Profile

Dependency Diagram

graph TD
  c9f3c0e1_0223_d8cb_573c_0a6b4f825ed0["enqueueSqe()"]
  1d316f16_48b4_d00e_edf3_3c8fd55f9a6a["SubmissionQueue"]
  c9f3c0e1_0223_d8cb_573c_0a6b4f825ed0 -->|defined in| 1d316f16_48b4_d00e_edf3_3c8fd55f9a6a
  26367a12_3ac1_e713_ab97_2b365bd944b4["addNop()"]
  26367a12_3ac1_e713_ab97_2b365bd944b4 -->|calls| c9f3c0e1_0223_d8cb_573c_0a6b4f825ed0
  bff6157b_1db2_edb9_7d14_27e3e3c7170e["addTimeout()"]
  bff6157b_1db2_edb9_7d14_27e3e3c7170e -->|calls| c9f3c0e1_0223_d8cb_573c_0a6b4f825ed0
  dfaab29f_05f1_7a3a_45ed_9a79fde3cf68["addLinkTimeout()"]
  dfaab29f_05f1_7a3a_45ed_9a79fde3cf68 -->|calls| c9f3c0e1_0223_d8cb_573c_0a6b4f825ed0
  eb97bc21_6427_82df_7e85_c6277a87c8fe["addEventFdRead()"]
  eb97bc21_6427_82df_7e85_c6277a87c8fe -->|calls| c9f3c0e1_0223_d8cb_573c_0a6b4f825ed0
  b64f15e0_a005_3efa_fdd3_fb2ec2054c4c["addCancel()"]
  b64f15e0_a005_3efa_fdd3_fb2ec2054c4c -->|calls| c9f3c0e1_0223_d8cb_573c_0a6b4f825ed0
  8a51d74d_fd76_09f6_f454_5a079f4faf11["checkClosed()"]
  c9f3c0e1_0223_d8cb_573c_0a6b4f825ed0 -->|calls| 8a51d74d_fd76_09f6_f454_5a079f4faf11
  d8afc313_5c22_a638_a799_a59e3af69b92["submit()"]
  c9f3c0e1_0223_d8cb_573c_0a6b4f825ed0 -->|calls| d8afc313_5c22_a638_a799_a59e3af69b92
  a22a12c8_9766_9c14_7ec7_ae33971f0404["sqeIndex()"]
  c9f3c0e1_0223_d8cb_573c_0a6b4f825ed0 -->|calls| a22a12c8_9766_9c14_7ec7_ae33971f0404
  style c9f3c0e1_0223_d8cb_573c_0a6b4f825ed0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport-classes-io_uring/src/main/java/io/netty/channel/uring/SubmissionQueue.java lines 130–169

    long enqueueSqe(byte opcode, byte flags, short ioPrio, int fd, long union1, long union2, int len,
                             int union3, long udata, short union4, short personality, int union5, long union6) {
        checkClosed();
        int pending = tail - head;
        if (pending == ringEntries) {
            int submitted = submit();
            if (submitted == 0) {
                // We have a problem, could not submit to make more room in the ring
                throw new RuntimeException("SQ ring full and no submissions accepted");
            }
        }
        int sqe = sqeIndex(tail++, ringMask);

        //set sqe(submission queue) properties
        submissionQueueArray.put(sqe + SQE_OP_CODE_FIELD, opcode);
        submissionQueueArray.put(sqe + SQE_FLAGS_FIELD, flags);
        // This constant is set up-front
        submissionQueueArray.putShort(sqe + SQE_IOPRIO_FIELD, ioPrio);
        submissionQueueArray.putInt(sqe + SQE_FD_FIELD, fd);
        submissionQueueArray.putLong(sqe + SQE_UNION1_FIELD, union1);
        submissionQueueArray.putLong(sqe + SQE_UNION2_FIELD, union2);
        submissionQueueArray.putInt(sqe + SQE_LEN_FIELD, len);
        submissionQueueArray.putInt(sqe + SQE_UNION3_FIELD, union3);
        submissionQueueArray.putLong(sqe + SQE_USER_DATA_FIELD, udata);
        submissionQueueArray.putShort(sqe + SQE_UNION4_FIELD, union4);
        submissionQueueArray.putShort(sqe + SQE_PERSONALITY_FIELD, personality);
        submissionQueueArray.putInt(sqe + SQE_UNION5_FIELD, union5);
        submissionQueueArray.putLong(sqe + SQE_UNION6_FIELD, union6);

        if (logger.isTraceEnabled()) {
            if (opcode == Native.IORING_OP_WRITEV || opcode == Native.IORING_OP_READV) {
                logger.trace("add(ring={}, enterRing:{} ): {}(fd={}, len={}, off={}, data={})",
                        ringFd, enterRingFd, Native.opToStr(opcode), fd, len, union1, udata);
            } else {
                logger.trace("add(ring={}, enterRing:{}): {}(fd={}, len={}, off={}, data={})",
                        ringFd, enterRingFd, Native.opToStr(opcode), fd, len, union1, udata);
            }
        }
        return udata;
    }

Domain

Subdomains

Frequently Asked Questions

What does enqueueSqe() do?
enqueueSqe() is a function in the netty codebase, defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/SubmissionQueue.java.
Where is enqueueSqe() defined?
enqueueSqe() is defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/SubmissionQueue.java at line 130.
What does enqueueSqe() call?
enqueueSqe() calls 3 function(s): checkClosed, sqeIndex, submit.
What calls enqueueSqe()?
enqueueSqe() is called by 5 function(s): addCancel, addEventFdRead, addLinkTimeout, addNop, addTimeout.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free