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