xref: /nrf52832-nimble/rt-thread/components/libc/aio/posix_aio.h (revision 104654410c56c573564690304ae786df310c91fc)
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