aio.h raw

   1  #ifndef _AIO_H
   2  #define _AIO_H
   3  
   4  #ifdef __cplusplus
   5  extern "C" {
   6  #endif
   7  
   8  #include <features.h>
   9  #include <signal.h>
  10  #include <time.h>
  11  
  12  #define __NEED_ssize_t
  13  #define __NEED_off_t
  14  
  15  #include <bits/alltypes.h>
  16  
  17  struct aiocb {
  18  	int aio_fildes, aio_lio_opcode, aio_reqprio;
  19  	volatile void *aio_buf;
  20  	size_t aio_nbytes;
  21  	struct sigevent aio_sigevent;
  22  	void *__td;
  23  	int __lock[2];
  24  	volatile int __err;
  25  	ssize_t __ret;
  26  	off_t aio_offset;
  27  	void *__next, *__prev;
  28  	char __dummy4[32-2*sizeof(void *)];
  29  };
  30  
  31  #define AIO_CANCELED 0
  32  #define AIO_NOTCANCELED 1
  33  #define AIO_ALLDONE 2
  34  
  35  #define LIO_READ 0
  36  #define LIO_WRITE 1
  37  #define LIO_NOP 2
  38  
  39  #define LIO_WAIT 0
  40  #define LIO_NOWAIT 1
  41  
  42  int aio_read(struct aiocb *);
  43  int aio_write(struct aiocb *);
  44  int aio_error(const struct aiocb *);
  45  ssize_t aio_return(struct aiocb *);
  46  int aio_cancel(int, struct aiocb *);
  47  int aio_suspend(const struct aiocb *const [], int, const struct timespec *);
  48  int aio_fsync(int, struct aiocb *);
  49  
  50  int lio_listio(int, struct aiocb *__restrict const *__restrict, int, struct sigevent *__restrict);
  51  
  52  #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
  53  #define aiocb64 aiocb
  54  #define aio_read64 aio_read
  55  #define aio_write64 aio_write
  56  #define aio_error64 aio_error
  57  #define aio_return64 aio_return
  58  #define aio_cancel64 aio_cancel
  59  #define aio_suspend64 aio_suspend
  60  #define aio_fsync64 aio_fsync
  61  #define lio_listio64 lio_listio
  62  #define off64_t off_t
  63  #endif
  64  
  65  #if _REDIR_TIME64
  66  __REDIR(aio_suspend, __aio_suspend_time64);
  67  #endif
  68  
  69  #ifdef __cplusplus
  70  }
  71  #endif
  72  
  73  #endif
  74