19fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann#ifndef _AIO_H 29fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann#define _AIO_H 39fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann 49fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann#include <time.h> 59fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann#include <signal.h> 69fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann#include <linux/aio_abi.h> 79fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann#include <sys/cdefs.h> 89fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann#include <sys/types.h> 99fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann 109fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann__BEGIN_DECLS 119fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann 129fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannstruct aiocb { 139fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann int aio_fildes; 149fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann off_t aio_offset; 159fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann volatile void *aio_buf; 169fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann size_t aio_nbytes; 179fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann int aio_reqprio; 189fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann struct sigevent aio_sigevent; 199fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann int aio_lio_opcode; 209fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann}; 219fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann 229fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannenum { 239fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann AIO_ALLDONE, 249fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann AIO_CANCELED, 259fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann AIO_NOTCANCELED, 269fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann}; 279fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann 289fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannenum { 299fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann LIO_WAIT, 309fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann LIO_NOWAIT, 319fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann}; 329fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann 339fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannenum { 349fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann LIO_NOP, 359fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann LIO_READ, 369fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann LIO_WRITE, 379fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann}; 389fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann 399fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannint aio_read(struct aiocb *); 409fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannint aio_write(struct aiocb *); 419fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannint aio_fsync(int, struct aiocb *); 429fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannint aio_error(const struct aiocb *); 439fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannssize_t aio_return(struct aiocb *); 449fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannint aio_suspend(const struct aiocb * const[], int, const struct timespec *); 459fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannint aio_cancel(int, struct aiocb *); 469fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmannint lio_listio(int, struct aiocb *restrict const[restrict], int, 479fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann struct sigevent *restrict); 489fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann 499fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann__END_DECLS 509fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann 519fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann#endif 529fa36755757e7347cecd7257c426b85b09bedb6eGreg Hackmann 53