io_ring_ctx
const struct io_ring_ctx *last;
struct io_ring_ctx *ctx;
TP_PROTO(struct io_ring_ctx *ctx, void *req, struct io_uring_cqe *cqe),
static int io_install_bpf(struct io_ring_ctx *ctx, struct io_uring_bpf_ops *ops)
struct io_ring_ctx *ctx;
struct io_ring_ctx *ctx = io_loop_demangle_ctx(loop_ctx);
static void io_eject_bpf(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx;
void io_unregister_bpf_ops(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = io_loop_demangle_ctx(loop_ctx);
void io_unregister_bpf_ops(struct io_ring_ctx *ctx);
static inline void io_unregister_bpf_ops(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = cd->ctx;
struct io_ring_ctx *ctx = cd->ctx;
struct io_ring_ctx *ctx = cd->ctx;
int io_sync_cancel(struct io_ring_ctx *ctx, void __user *arg)
bool io_cancel_remove_all(struct io_ring_ctx *ctx, struct io_uring_task *tctx,
int io_cancel_remove(struct io_ring_ctx *ctx, struct io_cancel_data *cd,
struct io_ring_ctx *ctx = head->ctx;
static __cold bool io_cancel_defer_files(struct io_ring_ctx *ctx,
static __cold bool io_uring_try_cancel_iowq(struct io_ring_ctx *ctx)
__cold bool io_uring_try_cancel_requests(struct io_ring_ctx *ctx,
struct io_ring_ctx *ctx;
int io_sync_cancel(struct io_ring_ctx *ctx, void __user *arg);
bool io_cancel_remove_all(struct io_ring_ctx *ctx, struct io_uring_task *tctx,
int io_cancel_remove(struct io_ring_ctx *ctx, struct io_cancel_data *cd,
__cold bool io_uring_try_cancel_requests(struct io_ring_ctx *ctx,
struct io_ring_ctx *ctx;
int io_eventfd_register(struct io_ring_ctx *ctx, void __user *arg,
int io_eventfd_unregister(struct io_ring_ctx *ctx)
void io_eventfd_signal(struct io_ring_ctx *ctx, bool cqe_event)
struct io_ring_ctx;
int io_eventfd_register(struct io_ring_ctx *ctx, void __user *arg,
int io_eventfd_unregister(struct io_ring_ctx *ctx);
void io_eventfd_signal(struct io_ring_ctx *ctx, bool cqe_event);
static __cold void common_tracking_show_fdinfo(struct io_ring_ctx *ctx,
struct io_ring_ctx *ctx = file->private_data;
static __cold void napi_show_fdinfo(struct io_ring_ctx *ctx,
static inline void napi_show_fdinfo(struct io_ring_ctx *ctx,
static void __io_uring_show_fdinfo(struct io_ring_ctx *ctx, struct seq_file *m)
struct io_ring_ctx *ctx = req->ctx;
int io_fixed_fd_remove(struct io_ring_ctx *ctx, unsigned int offset)
int io_register_file_alloc_range(struct io_ring_ctx *ctx,
static int io_file_bitmap_get(struct io_ring_ctx *ctx)
bool io_alloc_file_tables(struct io_ring_ctx *ctx, struct io_file_table *table,
void io_free_file_tables(struct io_ring_ctx *ctx, struct io_file_table *table)
static int io_install_fixed_file(struct io_ring_ctx *ctx, struct file *file,
int __io_fixed_fd_install(struct io_ring_ctx *ctx, struct file *file,
int __io_fixed_fd_install(struct io_ring_ctx *ctx, struct file *file,
int io_fixed_fd_remove(struct io_ring_ctx *ctx, unsigned int offset);
int io_register_file_alloc_range(struct io_ring_ctx *ctx,
static inline void io_file_table_set_alloc_range(struct io_ring_ctx *ctx,
bool io_alloc_file_tables(struct io_ring_ctx *ctx, struct io_file_table *table, unsigned nr_files);
void io_free_file_tables(struct io_ring_ctx *ctx, struct io_file_table *table);
int io_futex_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd,
bool io_futex_remove_all(struct io_ring_ctx *ctx, struct io_uring_task *tctx,
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
bool io_futex_cache_init(struct io_ring_ctx *ctx)
void io_futex_cache_free(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = req->ctx;
int io_futex_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd,
bool io_futex_remove_all(struct io_ring_ctx *ctx, struct io_uring_task *tctx,
bool io_futex_cache_init(struct io_ring_ctx *ctx);
void io_futex_cache_free(struct io_ring_ctx *ctx);
static inline int io_futex_cancel(struct io_ring_ctx *ctx,
static inline bool io_futex_remove_all(struct io_ring_ctx *ctx,
static inline bool io_futex_cache_init(struct io_ring_ctx *ctx)
static inline void io_futex_cache_free(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
static void io_free_batch_list(struct io_ring_ctx *ctx,
void __io_submit_flush_completions(struct io_ring_ctx *ctx)
__cold void io_iopoll_try_reap_events(struct io_ring_ctx *ctx)
static int io_iopoll_check(struct io_ring_ctx *ctx, unsigned int min_events)
static void __io_req_caches_free(struct io_ring_ctx *ctx);
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
static inline bool io_check_restriction(struct io_ring_ctx *ctx,
static void io_init_drain(struct io_ring_ctx *ctx)
static int io_init_req(struct io_ring_ctx *ctx, struct io_kiocb *req,
static inline void io_req_add_to_cache(struct io_kiocb *req, struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = container_of(ref, struct io_ring_ctx, refs);
static inline int io_submit_sqe(struct io_ring_ctx *ctx, struct io_kiocb *req,
static void io_submit_state_end(struct io_ring_ctx *ctx)
static void io_commit_sqring(struct io_ring_ctx *ctx)
static bool io_get_sqe(struct io_ring_ctx *ctx, const struct io_uring_sqe **sqe)
int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr)
static void io_rings_free(struct io_ring_ctx *ctx)
static __cold void __io_req_caches_free(struct io_ring_ctx *ctx)
static void io_free_alloc_caches(struct io_ring_ctx *ctx)
static __cold void io_req_caches_free(struct io_ring_ctx *ctx)
static __cold void io_ring_ctx_free(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = container_of(cb, struct io_ring_ctx,
__cold void io_activate_pollwq(struct io_ring_ctx *ctx)
static __cold struct io_ring_ctx *io_ring_ctx_alloc(struct io_uring_params *p)
struct io_ring_ctx *ctx = file->private_data;
struct io_ring_ctx *ctx;
struct io_ring_ctx *ctx;
struct io_ring_ctx *ctx = container_of(work, struct io_ring_ctx, exit_work);
static __cold void io_ring_ctx_wait_and_kill(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = file->private_data;
static struct io_uring_reg_wait *io_get_ext_arg_reg(struct io_ring_ctx *ctx,
static int io_validate_ext_arg(struct io_ring_ctx *ctx, unsigned flags,
static int io_get_ext_arg(struct io_ring_ctx *ctx, unsigned flags,
struct io_ring_ctx *ctx;
static __cold int io_allocate_scq_urings(struct io_ring_ctx *ctx,
static struct file *io_uring_get_file(struct io_ring_ctx *ctx)
static void io_ctx_restriction_clone(struct io_ring_ctx *ctx,
struct io_ring_ctx *ctx;
struct io_ring_ctx *ctx = req->ctx;
static __cold noinline void io_queue_deferred(struct io_ring_ctx *ctx)
void __io_commit_cqring_flush(struct io_ring_ctx *ctx)
static inline void __io_cq_lock(struct io_ring_ctx *ctx)
static inline void io_cq_lock(struct io_ring_ctx *ctx)
static inline void __io_cq_unlock_post(struct io_ring_ctx *ctx)
static void io_cq_unlock_post(struct io_ring_ctx *ctx)
static void __io_cqring_overflow_flush(struct io_ring_ctx *ctx, bool dying)
static void io_cqring_overflow_kill(struct io_ring_ctx *ctx)
void io_cqring_do_overflow_flush(struct io_ring_ctx *ctx)
void io_cqring_overflow_flush_locked(struct io_ring_ctx *ctx)
static __cold bool io_cqring_add_overflow(struct io_ring_ctx *ctx,
static struct io_overflow_cqe *io_alloc_ocqe(struct io_ring_ctx *ctx,
static unsigned int io_cqring_queued(struct io_ring_ctx *ctx)
static bool io_fill_nop_cqe(struct io_ring_ctx *ctx, unsigned int off)
bool io_cqe_cache_refill(struct io_ring_ctx *ctx, bool overflow, bool cqe32)
static bool io_fill_cqe_aux32(struct io_ring_ctx *ctx,
static bool io_fill_cqe_aux(struct io_ring_ctx *ctx, u64 user_data, s32 res,
static __cold void io_cqe_overflow(struct io_ring_ctx *ctx, struct io_cqe *cqe,
static __cold bool io_cqe_overflow_locked(struct io_ring_ctx *ctx,
bool io_post_aux_cqe(struct io_ring_ctx *ctx, u64 user_data, s32 res, u32 cflags)
void io_add_aux_cqe(struct io_ring_ctx *ctx, u64 user_data, s32 res, u32 cflags)
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
__cold bool __io_alloc_req_refill(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx;
static inline struct io_rings *io_get_rings(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = iowq->ctx;
bool io_cqe_cache_refill(struct io_ring_ctx *ctx, bool overflow, bool cqe32);
bool io_post_aux_cqe(struct io_ring_ctx *ctx, u64 user_data, s32 res, u32 cflags);
void io_add_aux_cqe(struct io_ring_ctx *ctx, u64 user_data, s32 res, u32 cflags);
void __io_commit_cqring_flush(struct io_ring_ctx *ctx);
int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr);
int io_do_iopoll(struct io_ring_ctx *ctx, bool force_nonspin);
__cold void io_iopoll_try_reap_events(struct io_ring_ctx *ctx);
void __io_submit_flush_completions(struct io_ring_ctx *ctx);
bool __io_alloc_req_refill(struct io_ring_ctx *ctx);
void io_activate_pollwq(struct io_ring_ctx *ctx);
static inline void io_lockdep_assert_cq_locked(struct io_ring_ctx *ctx)
static inline bool io_is_compat(struct io_ring_ctx *ctx)
static inline void io_submit_flush_completions(struct io_ring_ctx *ctx)
static inline bool io_get_cqe_overflow(struct io_ring_ctx *ctx,
static inline bool io_get_cqe(struct io_ring_ctx *ctx, struct io_uring_cqe **ret,
static inline bool io_defer_get_uncommited_cqe(struct io_ring_ctx *ctx,
static __always_inline bool io_fill_cqe_req(struct io_ring_ctx *ctx,
static inline u32 ctx_cqe32_flags(struct io_ring_ctx *ctx)
static inline void io_ring_submit_unlock(struct io_ring_ctx *ctx,
static inline void io_ring_submit_lock(struct io_ring_ctx *ctx,
static inline void io_commit_cqring(struct io_ring_ctx *ctx)
static inline void io_poll_wq_wake(struct io_ring_ctx *ctx)
static inline void io_cqring_wake(struct io_ring_ctx *ctx)
static inline bool __io_sqring_full(struct io_ring_ctx *ctx)
static inline bool io_sqring_full(struct io_ring_ctx *ctx)
static inline unsigned int __io_sqring_entries(struct io_ring_ctx *ctx)
static inline unsigned int io_sqring_entries(struct io_ring_ctx *ctx)
static inline void io_commit_cqring_flush(struct io_ring_ctx *ctx)
static inline bool io_req_cache_empty(struct io_ring_ctx *ctx)
static inline struct io_kiocb *io_extract_req(struct io_ring_ctx *ctx)
static inline bool io_alloc_req(struct io_ring_ctx *ctx, struct io_kiocb **req)
static inline ktime_t io_get_time(struct io_ring_ctx *ctx)
static inline bool io_has_work(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
static int io_remove_buffers_legacy(struct io_ring_ctx *ctx,
static void io_put_bl(struct io_ring_ctx *ctx, struct io_buffer_list *bl)
void io_destroy_buffers(struct io_ring_ctx *ctx)
static void io_destroy_bl(struct io_ring_ctx *ctx, struct io_buffer_list *bl)
static int io_add_buffers(struct io_ring_ctx *ctx, struct io_provide_buf *pbuf,
struct io_ring_ctx *ctx = req->ctx;
int io_register_pbuf_ring(struct io_ring_ctx *ctx, void __user *arg)
int io_unregister_pbuf_ring(struct io_ring_ctx *ctx, void __user *arg)
int io_register_pbuf_status(struct io_ring_ctx *ctx, void __user *arg)
struct io_mapped_region *io_pbuf_get_region(struct io_ring_ctx *ctx,
static inline struct io_buffer_list *io_buffer_get_list(struct io_ring_ctx *ctx,
static int io_buffer_add_list(struct io_ring_ctx *ctx,
void io_destroy_buffers(struct io_ring_ctx *ctx);
int io_register_pbuf_ring(struct io_ring_ctx *ctx, void __user *arg);
int io_unregister_pbuf_ring(struct io_ring_ctx *ctx, void __user *arg);
int io_register_pbuf_status(struct io_ring_ctx *ctx, void __user *arg);
struct io_mapped_region *io_pbuf_get_region(struct io_ring_ctx *ctx,
static inline void io_loop_wait_start(struct io_ring_ctx *ctx, unsigned nr_wait)
static inline void io_loop_wait_finish(struct io_ring_ctx *ctx)
static void io_loop_wait(struct io_ring_ctx *ctx, struct iou_loop_params *lp,
static int __io_run_loop(struct io_ring_ctx *ctx)
static inline int io_loop_nr_cqes(const struct io_ring_ctx *ctx,
int io_run_loop(struct io_ring_ctx *ctx)
static inline bool io_has_loop_ops(struct io_ring_ctx *ctx)
int io_run_loop(struct io_ring_ctx *ctx);
static inline struct iou_ctx *io_loop_mangle_ctx(struct io_ring_ctx *ctx)
static inline struct io_ring_ctx *io_loop_demangle_ctx(struct iou_ctx *ctx)
return (struct io_ring_ctx *)ctx;
int io_create_region(struct io_ring_ctx *ctx, struct io_mapped_region *mr,
static struct io_mapped_region *io_mmap_get_region(struct io_ring_ctx *ctx,
static void *io_region_validate_mmap(struct io_ring_ctx *ctx,
struct io_ring_ctx *ctx = file->private_data;
static int io_region_mmap(struct io_ring_ctx *ctx,
struct io_ring_ctx *ctx = file->private_data;
struct io_ring_ctx *ctx = filp->private_data;
struct io_ring_ctx *ctx = file->private_data;
struct io_ring_ctx *ctx = file->private_data;
int io_create_region(struct io_ring_ctx *ctx, struct io_mapped_region *mr,
static inline void io_region_publish(struct io_ring_ctx *ctx,
static int io_msg_data_remote(struct io_ring_ctx *target_ctx,
static int __io_msg_ring_data(struct io_ring_ctx *target_ctx,
struct io_ring_ctx *target_ctx = req->file->private_data;
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *target_ctx = req->file->private_data;
struct io_ring_ctx *ctx = req->file->private_data;
struct io_ring_ctx *target_ctx = req->file->private_data;
struct io_ring_ctx *ctx = req->ctx;
static void io_double_unlock_ctx(struct io_ring_ctx *octx)
static int io_lock_external_ctx(struct io_ring_ctx *octx,
static inline bool io_msg_need_remote(struct io_ring_ctx *target_ctx)
struct io_ring_ctx *ctx = req->ctx;
static void io_msg_remote_post(struct io_ring_ctx *ctx, struct io_kiocb *req,
static int io_msg_ring_cqe_flags(struct io_ring_ctx *target_ctx,
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 bool static_tracking_do_busy_loop(struct io_ring_ctx *ctx,
dynamic_tracking_do_busy_loop(struct io_ring_ctx *ctx,
__io_napi_do_busy_loop(struct io_ring_ctx *ctx,
static void io_napi_blocking_busy_loop(struct io_ring_ctx *ctx,
void io_napi_init(struct io_ring_ctx *ctx)
void io_napi_free(struct io_ring_ctx *ctx)
static int io_napi_register_napi(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)
int __io_napi_add_id(struct io_ring_ctx *ctx, unsigned int napi_id,
static int __io_napi_del_id(struct io_ring_ctx *ctx, unsigned int napi_id)
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);
int __io_napi_add_id(struct io_ring_ctx *ctx, unsigned int napi_id,
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);
static inline bool io_napi(struct io_ring_ctx *ctx)
static inline void io_napi_busy_loop(struct io_ring_ctx *ctx,
struct io_ring_ctx *ctx = req->ctx;
static inline void io_napi_init(struct io_ring_ctx *ctx)
static inline void io_napi_free(struct io_ring_ctx *ctx)
static inline int io_register_napi(struct io_ring_ctx *ctx, void __user *arg)
static inline int io_unregister_napi(struct io_ring_ctx *ctx, void __user *arg)
static inline bool io_napi(struct io_ring_ctx *ctx)
static inline void io_napi_busy_loop(struct io_ring_ctx *ctx,
static inline int io_napi_sqpoll_busy_poll(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
struct io_kiocb *io_alloc_notif(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = notif->ctx;
struct io_kiocb *io_alloc_notif(struct io_ring_ctx *ctx);
struct io_ring_ctx *ctx = notif->ctx;
int __io_close_fixed(struct io_ring_ctx *ctx, unsigned int issue_flags,
struct io_ring_ctx *ctx = req->ctx;
int __io_close_fixed(struct io_ring_ctx *ctx, unsigned int issue_flags,
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
__cold bool io_poll_remove_all(struct io_ring_ctx *ctx, struct io_uring_task *tctx,
static struct io_kiocb *io_poll_find(struct io_ring_ctx *ctx, bool poll_only,
static struct io_kiocb *io_poll_file_find(struct io_ring_ctx *ctx,
static int __io_poll_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd)
int io_poll_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd,
struct io_ring_ctx *ctx = req->ctx;
int io_poll_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd,
bool io_poll_remove_all(struct io_ring_ctx *ctx, struct io_uring_task *tctx,
struct io_ring_ctx *ctx;
static __cold int io_register_restrictions(struct io_ring_ctx *ctx,
static int io_register_enable_rings(struct io_ring_ctx *ctx)
static __cold int __io_register_iowq_aff(struct io_ring_ctx *ctx,
static __cold int io_register_iowq_aff(struct io_ring_ctx *ctx,
static __cold int io_unregister_iowq_aff(struct io_ring_ctx *ctx)
static __cold int io_register_iowq_max_workers(struct io_ring_ctx *ctx,
static __cold int io_probe(struct io_ring_ctx *ctx, void __user *arg,
static int io_register_clock(struct io_ring_ctx *ctx,
static void io_register_free_rings(struct io_ring_ctx *ctx,
static int io_register_resize_rings(struct io_ring_ctx *ctx, void __user *arg)
static int io_register_mem_region(struct io_ring_ctx *ctx, void __user *uarg)
static int __io_uring_register(struct io_ring_ctx *ctx, unsigned opcode,
int io_unregister_personality(struct io_ring_ctx *ctx, unsigned id)
static int io_register_personality(struct io_ring_ctx *ctx)
int io_eventfd_unregister(struct io_ring_ctx *ctx);
int io_unregister_personality(struct io_ring_ctx *ctx, unsigned id);
struct io_ring_ctx *ctx = cmd_to_io_kiocb(cmd)->ctx;
struct io_ring_ctx *ctx = cmd_to_io_kiocb(cmd)->ctx;
struct io_ring_ctx *ctx = req->ctx;
static int io_buffer_acct_cloned_hpages(struct io_ring_ctx *ctx,
static void lock_two_rings(struct io_ring_ctx *ctx1, struct io_ring_ctx *ctx2)
static int io_clone_buffers(struct io_ring_ctx *ctx, struct io_ring_ctx *src_ctx,
int io_register_clone_buffers(struct io_ring_ctx *ctx, void __user *arg)
struct io_ring_ctx *src_ctx;
static struct io_mapped_ubuf *io_alloc_imu(struct io_ring_ctx *ctx,
static void io_free_imu(struct io_ring_ctx *ctx, struct io_mapped_ubuf *imu)
static unsigned long io_buffer_unaccount_pages(struct io_ring_ctx *ctx,
static void io_buffer_unmap(struct io_ring_ctx *ctx, struct io_mapped_ubuf *imu)
struct io_rsrc_node *io_rsrc_node_alloc(struct io_ring_ctx *ctx, int type)
bool io_rsrc_cache_init(struct io_ring_ctx *ctx)
void io_rsrc_cache_free(struct io_ring_ctx *ctx)
__cold void io_rsrc_data_free(struct io_ring_ctx *ctx,
static int __io_sqe_files_update(struct io_ring_ctx *ctx,
static struct io_rsrc_node *io_sqe_buffer_register(struct io_ring_ctx *ctx,
static int hpage_acct_ref(struct io_ring_ctx *ctx, struct page *hpage,
static int __io_sqe_buffers_update(struct io_ring_ctx *ctx,
static int __io_register_rsrc_update(struct io_ring_ctx *ctx, unsigned type,
int io_register_files_update(struct io_ring_ctx *ctx, void __user *arg,
int io_register_rsrc_update(struct io_ring_ctx *ctx, void __user *arg,
__cold int io_register_rsrc(struct io_ring_ctx *ctx, void __user *arg,
struct io_ring_ctx *ctx = req->ctx;
static bool hpage_acct_unref(struct io_ring_ctx *ctx, struct page *hpage)
void io_free_rsrc_node(struct io_ring_ctx *ctx, struct io_rsrc_node *node)
int io_sqe_files_unregister(struct io_ring_ctx *ctx)
int io_sqe_files_register(struct io_ring_ctx *ctx, void __user *arg,
int io_sqe_buffers_unregister(struct io_ring_ctx *ctx)
static void io_buffer_unaccount_hpages(struct io_ring_ctx *ctx,
static int io_buffer_account_pin(struct io_ring_ctx *ctx, struct page **pages,
static struct io_rsrc_node *io_sqe_buffer_register(struct io_ring_ctx *ctx,
int io_sqe_buffers_register(struct io_ring_ctx *ctx, void __user *arg,
static inline void io_put_rsrc_node(struct io_ring_ctx *ctx, struct io_rsrc_node *node)
static inline bool io_reset_rsrc_node(struct io_ring_ctx *ctx,
bool io_rsrc_cache_init(struct io_ring_ctx *ctx);
void io_rsrc_cache_free(struct io_ring_ctx *ctx);
struct io_rsrc_node *io_rsrc_node_alloc(struct io_ring_ctx *ctx, int type);
void io_free_rsrc_node(struct io_ring_ctx *ctx, struct io_rsrc_node *node);
void io_rsrc_data_free(struct io_ring_ctx *ctx, struct io_rsrc_data *data);
int io_register_clone_buffers(struct io_ring_ctx *ctx, void __user *arg);
int io_sqe_buffers_unregister(struct io_ring_ctx *ctx);
int io_sqe_buffers_register(struct io_ring_ctx *ctx, void __user *arg,
int io_sqe_files_unregister(struct io_ring_ctx *ctx);
int io_sqe_files_register(struct io_ring_ctx *ctx, void __user *arg,
int io_register_files_update(struct io_ring_ctx *ctx, void __user *arg,
int io_register_rsrc_update(struct io_ring_ctx *ctx, void __user *arg,
int io_register_rsrc(struct io_ring_ctx *ctx, void __user *arg,
static u64 io_hybrid_iopoll_delay(struct io_ring_ctx *ctx, struct io_kiocb *req)
struct io_ring_ctx *ctx = req->ctx;
int io_do_iopoll(struct io_ring_ctx *ctx, bool force_nonspin)
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
void io_sq_thread_finish(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx_attach;
static int __io_sq_thread(struct io_ring_ctx *ctx, struct io_sq_data *sqd,
struct io_ring_ctx *ctx;
void io_sqpoll_wait_sq(struct io_ring_ctx *ctx)
__cold int io_sq_offload_create(struct io_ring_ctx *ctx,
__cold int io_sqpoll_wq_cpu_affinity(struct io_ring_ctx *ctx,
struct io_ring_ctx *ctx;
int io_sq_offload_create(struct io_ring_ctx *ctx, struct io_uring_params *p);
void io_sq_thread_finish(struct io_ring_ctx *ctx);
void io_sqpoll_wait_sq(struct io_ring_ctx *ctx);
int io_sqpoll_wq_cpu_affinity(struct io_ring_ctx *ctx, cpumask_var_t mask);
static int io_tctx_install_node(struct io_ring_ctx *ctx,
int __io_uring_add_tctx_node(struct io_ring_ctx *ctx)
static struct io_wq *io_init_wq_offload(struct io_ring_ctx *ctx,
int __io_uring_add_tctx_node_from_submit(struct io_ring_ctx *ctx)
int io_ringfd_register(struct io_ring_ctx *ctx, void __user *__arg,
int io_ringfd_unregister(struct io_ring_ctx *ctx, void __user *__arg,
struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx);
int __io_uring_add_tctx_node(struct io_ring_ctx *ctx);
int __io_uring_add_tctx_node_from_submit(struct io_ring_ctx *ctx);
int io_ringfd_register(struct io_ring_ctx *ctx, void __user *__arg,
int io_ringfd_unregister(struct io_ring_ctx *ctx, void __user *__arg,
static inline int io_uring_add_tctx_node(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx;
struct io_ring_ctx *ctx = req->ctx;
__cold void io_flush_timeouts(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
static struct io_kiocb *io_timeout_extract(struct io_ring_ctx *ctx,
int io_timeout_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd)
struct io_ring_ctx *ctx = req->ctx;
static int io_linked_timeout_update(struct io_ring_ctx *ctx, __u64 user_data,
static int io_timeout_update(struct io_ring_ctx *ctx, __u64 user_data,
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
__cold bool io_kill_timeouts(struct io_ring_ctx *ctx, struct io_uring_task *tctx,
__cold void io_flush_timeouts(struct io_ring_ctx *ctx);
int io_timeout_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd);
__cold bool io_kill_timeouts(struct io_ring_ctx *ctx, struct io_uring_task *tctx,
static void io_ctx_mark_taskrun(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = req->ctx;
static void ctx_flush_and_put(struct io_ring_ctx *ctx, io_tw_token_t tw)
struct io_ring_ctx *ctx = req->ctx;
void __cold io_cancel_local_task_work(struct io_ring_ctx *ctx)
static bool io_run_local_work_continue(struct io_ring_ctx *ctx, int events,
static int __io_run_local_work_loop(struct io_ring_ctx *ctx,
static int __io_run_local_work(struct io_ring_ctx *ctx, io_tw_token_t tw,
int io_run_local_work_locked(struct io_ring_ctx *ctx, int min_events)
int io_run_local_work(struct io_ring_ctx *ctx, int min_events, int max_events)
struct io_ring_ctx *ctx = NULL;
static inline void io_tw_lock(struct io_ring_ctx *ctx, io_tw_token_t tw)
static inline bool io_allowed_defer_tw_run(struct io_ring_ctx *ctx)
static inline bool io_allowed_run_tw(struct io_ring_ctx *ctx)
static inline bool io_should_terminate_tw(struct io_ring_ctx *ctx)
int io_run_local_work(struct io_ring_ctx *ctx, int min_events, int max_events);
int io_run_task_work_sig(struct io_ring_ctx *ctx);
__cold void io_cancel_local_task_work(struct io_ring_ctx *ctx);
int io_run_local_work_locked(struct io_ring_ctx *ctx, int min_events);
static inline bool io_local_work_pending(struct io_ring_ctx *ctx)
static inline bool io_task_work_pending(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
bool io_uring_try_cancel_uring_cmd(struct io_ring_ctx *ctx,
struct io_ring_ctx *ctx = req->ctx;
bool io_uring_try_cancel_uring_cmd(struct io_ring_ctx *ctx,
static int __io_cqring_wait_schedule(struct io_ring_ctx *ctx,
static inline int io_cqring_wait_schedule(struct io_ring_ctx *ctx,
int io_cqring_wait(struct io_ring_ctx *ctx, int min_events, u32 flags,
int io_run_task_work_sig(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = iowq->ctx;
int io_cqring_wait(struct io_ring_ctx *ctx, int min_events, u32 flags,
int io_run_task_work_sig(struct io_ring_ctx *ctx);
void io_cqring_do_overflow_flush(struct io_ring_ctx *ctx);
void io_cqring_overflow_flush_locked(struct io_ring_ctx *ctx);
static inline unsigned int __io_cqring_events(struct io_ring_ctx *ctx)
static inline unsigned int __io_cqring_events_user(struct io_ring_ctx *ctx)
static inline unsigned io_cqring_events(struct io_ring_ctx *ctx)
int io_waitid_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd,
bool io_waitid_remove_all(struct io_ring_ctx *ctx, struct io_uring_task *tctx,
struct io_ring_ctx *ctx = req->ctx;
struct io_ring_ctx *ctx = req->ctx;
int io_waitid_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd,
bool io_waitid_remove_all(struct io_ring_ctx *ctx, struct io_uring_task *tctx,
static inline bool is_zcrx_entry_marked(struct io_ring_ctx *ctx, unsigned long id)
static inline void set_zcrx_entry_mark(struct io_ring_ctx *ctx, unsigned long id)
void io_terminate_zcrx(struct io_ring_ctx *ctx)
void io_unregister_zcrx(struct io_ring_ctx *ctx)
struct io_ring_ctx *ctx = req->ctx;
static int zcrx_flush_rq(struct io_ring_ctx *ctx, struct io_zcrx_ifq *zcrx,
static int zcrx_arm_notif(struct io_ring_ctx *ctx, struct io_zcrx_ifq *zcrx,
int io_zcrx_ctrl(struct io_ring_ctx *ctx, void __user *arg, unsigned nr_args)
struct io_ring_ctx *ctx = req->ctx;
static int io_allocate_rbuf_ring(struct io_ring_ctx *ctx,
struct io_ring_ctx *ctx)
static struct io_zcrx_ifq *io_zcrx_ifq_alloc(struct io_ring_ctx *ctx)
static void zcrx_unregister_user(struct io_zcrx_ifq *ifq, struct io_ring_ctx *ctx)
static void zcrx_unregister(struct io_zcrx_ifq *ifq, struct io_ring_ctx *ctx)
struct io_mapped_region *io_zcrx_get_region(struct io_ring_ctx *ctx,
static int zcrx_export(struct io_ring_ctx *ctx, struct io_zcrx_ifq *ifq,
static int import_zcrx(struct io_ring_ctx *ctx,
int io_register_zcrx(struct io_ring_ctx *ctx,
static inline void io_unregister_zcrx(struct io_ring_ctx *ctx)
static inline void io_terminate_zcrx(struct io_ring_ctx *ctx)
static inline struct io_mapped_region *io_zcrx_get_region(struct io_ring_ctx *ctx,
static inline int io_zcrx_ctrl(struct io_ring_ctx *ctx,
struct io_ring_ctx *master_ctx;
int io_zcrx_ctrl(struct io_ring_ctx *ctx, void __user *arg, unsigned nr_arg);
int io_register_zcrx(struct io_ring_ctx *ctx,
void io_unregister_zcrx(struct io_ring_ctx *ctx);
void io_terminate_zcrx(struct io_ring_ctx *ctx);
struct io_mapped_region *io_zcrx_get_region(struct io_ring_ctx *ctx,
static inline int io_register_zcrx(struct io_ring_ctx *ctx,