linux/io_uring/futex.c

// SPDX-License-Identifier: GPL-2.0
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/file.h>
#include <linux/io_uring.h>

#include <uapi/linux/io_uring.h>

#include "../kernel/futex/futex.h"
#include "io_uring.h"
#include "alloc_cache.h"
#include "futex.h"

struct io_futex {};

struct io_futex_data {};

#define IO_FUTEX_ALLOC_CACHE_MAX

bool io_futex_cache_init(struct io_ring_ctx *ctx)
{}

void io_futex_cache_free(struct io_ring_ctx *ctx)
{}

static void __io_futex_complete(struct io_kiocb *req, struct io_tw_state *ts)
{}

static void io_futex_complete(struct io_kiocb *req, struct io_tw_state *ts)
{}

static void io_futexv_complete(struct io_kiocb *req, struct io_tw_state *ts)
{}

static bool io_futexv_claim(struct io_futex *iof)
{}

static bool __io_futex_cancel(struct io_ring_ctx *ctx, struct io_kiocb *req)
{}

int io_futex_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd,
		    unsigned int issue_flags)
{}

bool io_futex_remove_all(struct io_ring_ctx *ctx, struct task_struct *task,
			 bool cancel_all)
{}

int io_futex_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{}

static void io_futex_wakev_fn(struct wake_q_head *wake_q, struct futex_q *q)
{}

int io_futexv_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{}

static void io_futex_wake_fn(struct wake_q_head *wake_q, struct futex_q *q)
{}

static struct io_futex_data *io_alloc_ifd(struct io_ring_ctx *ctx)
{}

int io_futexv_wait(struct io_kiocb *req, unsigned int issue_flags)
{}

int io_futex_wait(struct io_kiocb *req, unsigned int issue_flags)
{}

int io_futex_wake(struct io_kiocb *req, unsigned int issue_flags)
{}