#include "io_uring.h"
#include "napi.h"
#ifdef CONFIG_NET_RX_BUSY_POLL
#define NAPI_TIMEOUT …
struct io_napi_entry { … };
static struct io_napi_entry *io_napi_hash_find(struct hlist_head *hash_list,
unsigned int napi_id)
{ … }
static inline ktime_t net_to_ktime(unsigned long t)
{ … }
void __io_napi_add(struct io_ring_ctx *ctx, struct socket *sock)
{ … }
static void __io_napi_remove_stale(struct io_ring_ctx *ctx)
{ … }
static inline void io_napi_remove_stale(struct io_ring_ctx *ctx, bool is_stale)
{ … }
static inline bool io_napi_busy_loop_timeout(ktime_t start_time,
ktime_t bp)
{ … }
static bool io_napi_busy_loop_should_end(void *data,
unsigned long start_time)
{ … }
static bool __io_napi_do_busy_loop(struct io_ring_ctx *ctx,
void *loop_end_arg)
{ … }
static void io_napi_blocking_busy_loop(struct io_ring_ctx *ctx,
struct io_wait_queue *iowq)
{ … }
void io_napi_init(struct io_ring_ctx *ctx)
{ … }
void io_napi_free(struct io_ring_ctx *ctx)
{ … }
int io_register_napi(struct io_ring_ctx *ctx, void __user *arg)
{ … }
int io_unregister_napi(struct io_ring_ctx *ctx, void __user *arg)
{ … }
void __io_napi_busy_loop(struct io_ring_ctx *ctx, struct io_wait_queue *iowq)
{ … }
int io_napi_sqpoll_busy_poll(struct io_ring_ctx *ctx)
{ … }
#endif