1#ifndef NDNDPDK_CORE_URING_H
2#define NDNDPDK_CORE_URING_H
24__attribute__((nonnull))
bool
28__attribute__((nonnull))
bool
32__attribute__((nonnull))
static __rte_always_inline
struct io_uring_sqe*
33Uring_GetSqe(
Uring* ur) {
34 struct io_uring_sqe* sqe = io_uring_get_sqe(&ur->
uring);
35 if (unlikely(sqe == NULL)) {
43__attribute__((nonnull))
void
51__attribute__((nonnull))
static __rte_always_inline
void
52Uring_Submit(
Uring* ur, uint32_t waitLBound, uint32_t cqeBurst) {
59__attribute__((nonnull))
static inline uint32_t
60Uring_PeekCqes(
Uring* ur,
struct io_uring_cqe* cqes[],
size_t count) {
65 uint32_t n = io_uring_peek_batch_cqe(&ur->
uring, cqes, count);
71__attribute__((nonnull))
static __rte_always_inline
void
72Uring_SeenCqes(
Uring* ur, uint32_t n) {
73 io_uring_cq_advance(&ur->
uring, n);
io_uring and related counters.
Definition uring.h:11
uint32_t nPending
currently submitted but uncompleted
Definition uring.h:20
uint64_t nAllocErrs
SQE allocation errors.
Definition uring.h:14
uint64_t nSubmitted
submitted SQEs
Definition uring.h:15
uint32_t nQueued
currently queued but unsubmitted
Definition uring.h:19
uint64_t nSubmitNonBlock
non-blocking submission batches
Definition uring.h:16
struct io_uring uring
Definition uring.h:12
uint64_t nSubmitWait
waiting submission batches
Definition uring.h:17
bool Uring_Free(Uring *ur)
Delete io_uring.
Definition uring.c:21
void Uring_Submit_(Uring *ur, uint32_t waitLBound, uint32_t cqeBurst)
Definition uring.c:31
bool Uring_Init(Uring *ur, uint32_t capacity)
Initialize io_uring.
Definition uring.c:7