enqueueSqe() — netty Function Reference
Architecture documentation for the enqueueSqe() function in SubmissionQueue.java from the netty codebase.
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
Source
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