Viewing: aio.c
📄 aio.c (Read Only) ⬅ To go back
#include "aio.h"
#include "syscall.h"
#include "errno.h"

int aio_read(struct aiocb* aiocbp) {
    return __syscall_ret(_syscall3(SYS_AIO_READ, aiocbp->aio_fildes,
                                   (int)aiocbp->aio_buf, (int)aiocbp->aio_nbytes));
}

int aio_write(struct aiocb* aiocbp) {
    return __syscall_ret(_syscall3(SYS_AIO_WRITE, aiocbp->aio_fildes,
                                   (int)aiocbp->aio_buf, (int)aiocbp->aio_nbytes));
}

int aio_error(const struct aiocb* aiocbp) {
    return _syscall1(SYS_AIO_ERROR, (int)aiocbp);
}

int aio_return(struct aiocb* aiocbp) {
    return _syscall1(SYS_AIO_RETURN, (int)aiocbp);
}

int aio_suspend(const struct aiocb* const list[], int nent,
                const struct timespec* timeout) {
    return __syscall_ret(_syscall3(SYS_AIO_SUSPEND, (int)list, nent, (int)timeout));
}

int aio_cancel(int fd, struct aiocb* aiocbp) {
    (void)fd;
    (void)aiocbp;
    return AIO_ALLDONE;
}