mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-10 08:42:02 +03:00
2dd8d5e1b8
musl does not support legacy 32-bit-off_t whatsoever. off_t is always 64 bit, and correct programs that use off_t and the standard functions will just work out of the box. (on glibc, they would require -D_FILE_OFFSET_BITS=64 to work.) however, some programs instead define _LARGEFILE64_SOURCE and use alternate versions of all the standard types and functions with "64" appended to their names. we do not want code to actually get linked against these functions (it's ugly and inconsistent), so macros are used instead of prototypes with weak aliases in the library itself. eventually the weak aliases may be added at the library level for the sake of using code that was originally built against glibc, but the macros will still be the desired solution in the headers.
69 lines
1.3 KiB
C
69 lines
1.3 KiB
C
#ifndef _AIO_H
|
|
#define _AIO_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <signal.h>
|
|
#include <time.h>
|
|
|
|
#define __NEED_ssize_t
|
|
#define __NEED_off_t
|
|
|
|
#include <bits/alltypes.h>
|
|
|
|
struct aiocb {
|
|
int aio_fildes, aio_lio_opcode, aio_reqprio;
|
|
volatile void *aio_buf;
|
|
size_t aio_nbytes;
|
|
struct sigevent aio_sigevent;
|
|
void *__td;
|
|
int __lock[2];
|
|
int __err;
|
|
ssize_t __ret;
|
|
off_t aio_offset;
|
|
void *__next, *__prev;
|
|
char __dummy4[32-2*sizeof(void *)];
|
|
};
|
|
|
|
#define AIO_CANCELED 0
|
|
#define AIO_NOTCANCELED 1
|
|
#define AIO_ALLDONE 2
|
|
|
|
#define LIO_READ 0
|
|
#define LIO_WRITE 1
|
|
#define LIO_NOP 2
|
|
|
|
#define LIO_WAIT 0
|
|
#define LIO_NOWAIT 1
|
|
|
|
int aio_read(struct aiocb *);
|
|
int aio_write(struct aiocb *);
|
|
int aio_error(const struct aiocb *);
|
|
ssize_t aio_return(struct aiocb *);
|
|
int aio_cancel(int, struct aiocb *);
|
|
int aio_suspend(const struct aiocb *const [], int, const struct timespec *);
|
|
int aio_fsync(int, struct aiocb *);
|
|
|
|
int lio_listio(int, struct aiocb *const [], int, struct sigevent *);
|
|
|
|
#ifdef _LARGEFILE64_SOURCE
|
|
#define aiocb64 aiocb
|
|
#define aio_read64 aio_read
|
|
#define aio_write64 aio_write
|
|
#define aio_error64 aio_error
|
|
#define aio_return64 aio_return
|
|
#define aio_cancel64 aio_cancel
|
|
#define aio_suspend64 aio_suspend
|
|
#define aio_fsync64 aio_fsync
|
|
#defile lio_listio64 lio_listio
|
|
#define off64_t off_t
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|