aiocb
int aio_cancel(int, struct aiocb *);
int aio_error(const struct aiocb *);
int aio_fsync(int, struct aiocb *);
int aio_read(struct aiocb *);
ssize_t aio_return(struct aiocb *);
int aio_suspend(const struct aiocb * const [], int,
int aio_write(struct aiocb *);
int lio_listio(int, struct aiocb * const * __restrict,
struct aiocb;
int aio_suspend(const struct aiocb * const [], int,
int __aio_suspend50(const struct aiocb * const [], int,
aio_suspend(const struct aiocb * const list[], int nent,
__aio_suspend50(const struct aiocb * const list[], int nent,
_sys_aio_suspend(const struct aiocb * const a[], int b,
int _sys_aio_suspend(const struct aiocb * const[], int,
struct aiocb tt_aio;
int thunk_aio_read(struct aiocb *);
int thunk_aio_write(struct aiocb *);
int thunk_aio_error(const struct aiocb *);
int thunk_aio_return(struct aiocb *);
struct aiocb;
thunk_aio_read(struct aiocb *aiocbp)
thunk_aio_write(struct aiocb *aiocbp)
thunk_aio_error(const struct aiocb *aiocbp)
thunk_aio_return(struct aiocb *aiocbp)
struct aiocb **list;
struct aiocb *aiocbp = &job->aiocbp;
struct aiocb *aiocbp = &job->aiocbp;
struct aiocb aiocb;
error = copyin(aiocb_uptr, &aiocb, sizeof(aiocb));
sig = &aiocb.aio_sigevent;
if (aiocb.aio_buf == NULL || aiocb.aio_nbytes > SSIZE_MAX)
if (aiocb.aio_lio_opcode == LIO_WRITE) {
} else if (aiocb.aio_lio_opcode == LIO_READ) {
if (aiocb.aio_lio_opcode == LIO_NOP) {
aiocb._state = JOB_WIP;
aiocb._errno = SET_ERROR(EINPROGRESS);
aiocb._retval = -1;
error = copyout(&aiocb, aiocb_uptr, sizeof(aiocb));
memcpy(&a_job->aiocbp, &aiocb, sizeof(aiocb));
const int fd = aiocb.aio_fildes;
struct aiocb *aiocbp_uptr;
aiocbp_uptr = (struct aiocb *)SCARG(uap, aiocbp);
struct aiocb **list;
struct aiocb **aiocbp_list;
aiosp_suspend(struct aiosp *aiosp, struct aiocb **aiocbp_list, int nent,
aio_suspend1(struct lwp *l, struct aiocb **aiocbp_list, int nent,
struct aiocb *aiocbp = &job->aiocbp;
int rump_sys_aio_cancel(int, struct aiocb *) __RENAME(RUMP_SYS_RENAME_AIO_CANCEL);
int rump_sys_aio_error(const struct aiocb *) __RENAME(RUMP_SYS_RENAME_AIO_ERROR);
int rump_sys_aio_fsync(int, struct aiocb *) __RENAME(RUMP_SYS_RENAME_AIO_FSYNC);
int rump_sys_aio_read(struct aiocb *) __RENAME(RUMP_SYS_RENAME_AIO_READ);
int rump_sys_aio_return(struct aiocb *) __RENAME(RUMP_SYS_RENAME_AIO_RETURN);
int rump_sys_aio_write(struct aiocb *) __RENAME(RUMP_SYS_RENAME_AIO_WRITE);
int rump_sys_lio_listio(int, struct aiocb *const *, int, struct sigevent *) __RENAME(RUMP_SYS_RENAME_LIO_LISTIO);
int rump_sys_aio_suspend(const struct aiocb *const *, int, const struct timespec *) __RENAME(RUMP_SYS_RENAME_AIO_SUSPEND);
struct aiocb;
int rump___sysimpl_aio_cancel(int, struct aiocb *);
rump___sysimpl_aio_cancel(int fildes, struct aiocb * aiocbp)
int rump___sysimpl_aio_error(const struct aiocb *);
rump___sysimpl_aio_error(const struct aiocb * aiocbp)
int rump___sysimpl_aio_fsync(int, struct aiocb *);
rump___sysimpl_aio_fsync(int op, struct aiocb * aiocbp)
int rump___sysimpl_aio_read(struct aiocb *);
rump___sysimpl_aio_read(struct aiocb * aiocbp)
int rump___sysimpl_aio_return(struct aiocb *);
rump___sysimpl_aio_return(struct aiocb * aiocbp)
int rump___sysimpl_aio_write(struct aiocb *);
rump___sysimpl_aio_write(struct aiocb * aiocbp)
int rump___sysimpl_lio_listio(int, struct aiocb *const *, int, struct sigevent *);
rump___sysimpl_lio_listio(int mode, struct aiocb *const * list, int nent, struct sigevent * sig)
int rump___sysimpl_aio_suspend50(const struct aiocb *const *, int, const struct timespec *);
rump___sysimpl_aio_suspend50(const struct aiocb *const * list, int nent, const struct timespec * timeout)
struct aiocb aiocbp; /* User-visible AIO control block */
int aio_suspend1(struct lwp *, struct aiocb **, int, struct timespec *);
int aiosp_suspend(struct aiosp *, struct aiocb **, int, struct timespec *,
syscallarg(struct aiocb *) aiocbp;
syscallarg(const struct aiocb *) aiocbp;
syscallarg(struct aiocb *) aiocbp;
syscallarg(struct aiocb *) aiocbp;
syscallarg(struct aiocb *) aiocbp;
syscallarg(const struct aiocb *const *) list;
syscallarg(struct aiocb *) aiocbp;
syscallarg(struct aiocb *const *) list;
syscallarg(const struct aiocb *const *) list;
struct aiocb cb;
const struct aiocb *list[1];
struct aiocb cb;
const struct aiocb *list[1];
struct aiocb cb;
static void wait_all(const struct aiocb * const [], size_t);
wait_all(const struct aiocb * const list[], size_t nent)
struct aiocb cbs[NW_REQS];
struct aiocb *list[NW_REQS];
wait_all((const struct aiocb * const *)list, NW_REQS);
struct aiocb wcbs[WWTR_REQS];
struct aiocb *wlist[WWTR_REQS];
struct aiocb rcbs[WWTR_REQS];
struct aiocb *rlist[WWTR_REQS];
wait_all((const struct aiocb * const *)rlist, WWTR_REQS);
static void wait_all(const struct aiocb * const [], size_t);
wait_all(const struct aiocb * const list[], size_t nent)
struct aiocb wcb, rcb;
const struct aiocb *wlist[1], *rlist[1];
static void wait_all(const struct aiocb * const [], size_t);
wait_all(const struct aiocb * const list[], size_t nent)
static void wait_cb(struct aiocb *);
wait_cb(struct aiocb *cb)
const struct aiocb *one[1];
struct aiocb cb0, cb1;
const struct aiocb *list[2];
struct aiocb aio = {
const struct aiocb *const aiolist[] = { &aio };
struct aiocb aio = {
const struct aiocb *const aiolist[] = { &aio };