1 /*
2  * Copyright 2024 Tenstorrent AI ULC
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_INCLUDE_ZEPHYR_POSIX_AIO_H_
8 #define ZEPHYR_INCLUDE_ZEPHYR_POSIX_AIO_H_
9 
10 #include <signal.h>
11 #include <sys/types.h>
12 #include <time.h>
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 struct aiocb {
19 	int aio_fildes;
20 	off_t aio_offset;
21 	volatile void *aio_buf;
22 	size_t aio_nbytes;
23 	int aio_reqprio;
24 	struct sigevent aio_sigevent;
25 	int aio_lio_opcode;
26 };
27 
28 #if _POSIX_C_SOURCE >= 200112L
29 
30 int aio_cancel(int fildes, struct aiocb *aiocbp);
31 int aio_error(const struct aiocb *aiocbp);
32 int aio_fsync(int filedes, struct aiocb *aiocbp);
33 int aio_read(struct aiocb *aiocbp);
34 ssize_t aio_return(struct aiocb *aiocbp);
35 int aio_suspend(const struct aiocb *const list[], int nent, const struct timespec *timeout);
36 int aio_write(struct aiocb *aiocbp);
37 int lio_listio(int mode, struct aiocb *const ZRESTRICT list[], int nent,
38 	       struct sigevent *ZRESTRICT sig);
39 
40 #endif /* _POSIX_C_SOURCE >= 200112L */
41 
42 #ifdef __cplusplus
43 }
44 #endif
45 
46 #endif /* ZEPHYR_INCLUDE_ZEPHYR_POSIX_AIO_H_ */
47