1*10465441SEvalZero /* 2*10465441SEvalZero * Copyright (c) 2006-2018, RT-Thread Development Team 3*10465441SEvalZero * 4*10465441SEvalZero * SPDX-License-Identifier: Apache-2.0 5*10465441SEvalZero * 6*10465441SEvalZero * Change Logs: 7*10465441SEvalZero * Date Author Notes 8*10465441SEvalZero * 2017/12/30 Bernard The first version. 9*10465441SEvalZero */ 10*10465441SEvalZero 11*10465441SEvalZero #ifndef POSIX_AIO_H__ 12*10465441SEvalZero #define POSIX_AIO_H__ 13*10465441SEvalZero 14*10465441SEvalZero struct aiocb 15*10465441SEvalZero { 16*10465441SEvalZero int aio_fildes; /* File descriptor. */ 17*10465441SEvalZero off_t aio_offset; /* File offset. */ 18*10465441SEvalZero 19*10465441SEvalZero volatile void *aio_buf; /* Location of buffer. */ 20*10465441SEvalZero size_t aio_nbytes; /* Length of transfer. */ 21*10465441SEvalZero int aio_reqprio; /* Request priority offset. */ 22*10465441SEvalZero struct sigevent aio_sigevent; /* Signal number and value. */ 23*10465441SEvalZero int aio_lio_opcode; /* Operation to be performed. */ 24*10465441SEvalZero 25*10465441SEvalZero int aio_result; 26*10465441SEvalZero struct rt_work aio_work; 27*10465441SEvalZero }; 28*10465441SEvalZero 29*10465441SEvalZero int aio_cancel(int fd, struct aiocb *cb); 30*10465441SEvalZero int aio_error (const struct aiocb *cb); 31*10465441SEvalZero 32*10465441SEvalZero int aio_fsync(int op, struct aiocb *cb); 33*10465441SEvalZero 34*10465441SEvalZero int aio_read(struct aiocb *cb); 35*10465441SEvalZero ssize_t aio_return(struct aiocb *cb); 36*10465441SEvalZero int aio_suspend(const struct aiocb *const list[], int nent, 37*10465441SEvalZero const struct timespec *timeout); 38*10465441SEvalZero int aio_write(struct aiocb *cb); 39*10465441SEvalZero 40*10465441SEvalZero int lio_listio(int mode, struct aiocb * const list[], int nent, 41*10465441SEvalZero struct sigevent *sig); 42*10465441SEvalZero 43*10465441SEvalZero #endif 44