aboutsummaryrefslogtreecommitdiff
path: root/rt/aio.h
diff options
context:
space:
mode:
Diffstat (limited to 'rt/aio.h')
-rw-r--r--rt/aio.h39
1 files changed, 27 insertions, 12 deletions
diff --git a/rt/aio.h b/rt/aio.h
index 561776c..a49b8c7 100644
--- a/rt/aio.h
+++ b/rt/aio.h
@@ -43,8 +43,6 @@ struct aiocb
struct sigevent aio_sigevent; /* Signal number and value. */
/* Internal members. */
- struct aiocb *__last_fd;
- struct aiocb *__next_fd;
struct aiocb *__next_prio;
int __abs_prio;
int __policy;
@@ -53,10 +51,11 @@ struct aiocb
#ifndef __USE_FILE_OFFSET64
__off_t aio_offset; /* File offset. */
+ char __pad[sizeof (__off64_t) - sizeof (__off_t)];
#else
__off64_t aio_offset; /* File offset. */
#endif
- int __unused[32];
+ char __unused[32];
};
/* The same for the 64bit offsets. */
@@ -71,20 +70,33 @@ struct aiocb64
struct sigevent aio_sigevent; /* Signal number and value. */
/* Internal members. */
- struct aiocb64 *__last_fd;
- struct aiocb64 *__next_fd;
- struct aiocb64 *__next_prio;
int __abs_prio;
int __policy;
int __error_code;
__ssize_t __return_value;
__off64_t aio_offset; /* File offset. */
- int __unused[32];
+ char __unused[32];
};
#endif
+#ifdef __USE_GNU
+/* To customize the implementation one can use the following struct.
+ This implementation follows the one in Irix. */
+struct aioinit
+ {
+ int aio_threads; /* Maximal number of threads. */
+ int aio_num; /* Number of expected simultanious requests. */
+ int aio_locks; /* Not used. */
+ int aio_usedba; /* Not used. */
+ int aio_debug; /* Not used. */
+ int aio_numusers; /* Not used. */
+ int aio_reserved[2];
+ };
+#endif
+
+
/* Return values of cancelation function. */
enum
{
@@ -104,12 +116,8 @@ enum
#define LIO_READ LIO_READ
LIO_WRITE,
#define LIO_WRITE LIO_WRITE
- LIO_NOP,
+ LIO_NOP
#define LIO_NOP LIO_NOP
- __LIO_DSYNC,
- __LIO_SYNC,
- __LIO_READ64 = LIO_READ | 128,
- __LIO_WRITE64 = LIO_WRITE | 128
};
@@ -123,6 +131,13 @@ enum
};
+/* Allow user to specify optimization. */
+#ifdef __USE_GNU
+extern void __aio_init __P ((__const struct aioinit *__init));
+extern void aio_init __P ((__const struct aioinit *__init));
+#endif
+
+
/* Enqueue read request for given number of bytes and the given priority. */
#ifndef __USE_FILE_OFFSET64
extern int aio_read __P ((struct aiocb *__aiocbp));