1 #ifndef NDNDPDK_CORE_URING_H
2 #define NDNDPDK_CORE_URING_H
12 struct io_uring
uring;
24 __attribute__((nonnull))
bool
28 __attribute__((nonnull))
bool
32 __attribute__((nonnull))
static __rte_always_inline
struct io_uring_sqe*
33 Uring_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
52 Uring_Submit(
Uring* ur, uint32_t waitLBound, uint32_t cqeBurst) {
59 __attribute__((nonnull))
static inline uint32_t
60 Uring_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
72 Uring_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
struct Uring Uring
io_uring and related counters.
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