Use new macros to implement __USE_FILE_OFFSET64.
authordrepper <drepper>
Tue, 21 Apr 1998 22:54:25 +0000 (22:54 +0000)
committerdrepper <drepper>
Tue, 21 Apr 1998 22:54:25 +0000 (22:54 +0000)
dirent/dirent.h
io/ftw.h
io/sys/stat.h
io/sys/statfs.h
io/sys/statvfs.h
libio/stdio.h
resource/sys/resource.h
rt/aio.h

index 07d543b..1ac68fa 100644 (file)
@@ -128,14 +128,18 @@ extern int closedir __P ((DIR *__dirp));
    If the Large File Support API is selected we have to use the
    appropriate interface.  */
 extern struct dirent *__readdir __P ((DIR *__dirp));
+extern struct dirent64 *__readdir64 __P ((DIR *__dirp));
 #ifndef __USE_FILE_OFFSET64
 extern struct dirent *readdir __P ((DIR *__dirp));
 #else
-extern struct dirent *readdir __P ((DIR *__dirp)) __asm__ ("readdir64");
+# ifdef __REDIRECT
+extern struct dirent *__REDIRECT (readdir, __P ((DIR *__dirp)), readdir64);
+# else
+#  define readdir readdir64
+# endif
 #endif
 
 #ifdef __USE_LARGEFILE64
-extern struct dirent64 *__readdir64 __P ((DIR *__dirp));
 extern struct dirent64 *readdir64 __P ((DIR *__dirp));
 #endif
 
@@ -148,9 +152,13 @@ extern int __readdir_r __P ((DIR *__dirp, struct dirent *__entry,
 extern int readdir_r __P ((DIR *__dirp, struct dirent *__entry,
                           struct dirent **__result));
 # else
-extern int readdir_r __P ((DIR *__dirp, struct dirent *__entry,
-                          struct dirent **__result))
-     __asm__ ("readdir64_r");
+#  ifdef __REDIRECT
+extern int __REDIRECT (readdir_r, __P ((DIR *__dirp, struct dirent *__entry,
+                                   struct dirent **__result)),
+                   readdir64_r);
+#  else
+#   define readdir_r readdir64_r
+#  endif
 # endif
 
 # ifdef __USE_LARGEFILE64
@@ -205,26 +213,37 @@ extern int scandir __P ((__const char *__dir, struct dirent ***__namelist,
                         int (*__selector) (__const struct dirent *),
                         int (*__cmp) (__const __ptr_t, __const __ptr_t)));
 # else
-extern int scandir __P ((__const char *__dir, struct dirent ***__namelist,
-                        int (*__selector) (__const struct dirent *),
-                        int (*__cmp) (__const __ptr_t, __const __ptr_t)))
-     __asm__ ("scandir64");
+#  ifdef __REDIRECT
+extern int __REDIRECT (scandir,
+                      __P ((__const char *__dir,
+                            struct dirent ***__namelist,
+                            int (*__selector) (__const struct dirent *),
+                            int (*__cmp) (__const __ptr_t, __const __ptr_t))),
+                      scandir64);
+#  else
+#   define scandir scandir64
+#  endif
 # endif
 
 # if defined __USE_GNU && defined __USE_LARGEFILE64
 /* This function is like `scandir' but it uses the 64bit dirent structure.
    Please note that the CMP function must now work with struct dirent64 **.  */
 extern int scandir64 __P ((__const char *__dir, struct dirent64 ***__namelist,
-                        int (*__selector) (__const struct dirent64 *),
-                        int (*__cmp) (__const __ptr_t, __const __ptr_t)));
+                          int (*__selector) (__const struct dirent64 *),
+                          int (*__cmp) (__const __ptr_t, __const __ptr_t)));
 # endif
 
 /* Function to compare two `struct dirent's alphabetically.  */
 # ifndef __USE_FILE_OFFSET64
 extern int alphasort __P ((__const __ptr_t __e1, __const __ptr_t __e2));
 # else
-extern int alphasort __P ((__const __ptr_t __e1, __const __ptr_t __e2))
-     __asm__ ("alphasort64");
+#  ifdef __REDIRECT
+extern int __REDIRECT (alphasort,
+                      __P ((__const __ptr_t __e1, __const __ptr_t __e2)),
+                      alphasort64);
+#  else
+#   define alphasort alphasort64
+#  endif
 # endif
 
 # if defined __USE_GNU && defined __USE_LARGEFILE64
@@ -236,8 +255,13 @@ extern int alphasort64 __P ((__const __ptr_t __e1, __const __ptr_t __e2));
 #  ifndef __USE_FILE_OFFSET64
 extern int versionsort __P ((__const __ptr_t __e1, __const __ptr_t __e2));
 #  else
-extern int versionsort __P ((__const __ptr_t __e1, __const __ptr_t __e2))
-     __asm__ ("versionsort64");
+#   ifdef __REDIRECT
+extern int __REDIRECT (versionsort,
+                      __P ((__const __ptr_t __e1, __const __ptr_t __e2)),
+                      versionsort64);
+#   else
+#    define versionsort versionsort64
+#   endif
 #  endif
 
 #  ifdef __USE_LARGEFILE64
index b7417fc..bf0c7c8 100644 (file)
--- a/io/ftw.h
+++ b/io/ftw.h
@@ -109,8 +109,12 @@ typedef int (*__nftw64_func_t) __P ((__const char *__filename,
 extern int ftw __P ((__const char *__dir, __ftw_func_t __func,
                     int __descriptors));
 #else
-extern int ftw __P ((__const char *__dir, __ftw_func_t __func,
-                    int __descriptors)) __asm__ ("ftw64");
+# ifdef __REDIRECT
+extern int __REDIRECT (ftw, __P ((__const char *__dir, __ftw_func_t __func,
+                                 int __descriptors)), ftw64);
+# else
+#  define nftw nftw64
+# endif
 #endif
 #ifdef __USE_LARGEFILE64
 extern int ftw64 __P ((__const char *__dir, __ftw64_func_t __func,
@@ -124,8 +128,12 @@ extern int ftw64 __P ((__const char *__dir, __ftw64_func_t __func,
 extern int nftw __P ((__const char *__dir, __nftw_func_t __func,
                      int __descriptors, int __flag));
 # else
-extern int nftw __P ((__const char *__dir, __nftw_func_t __func,
-                     int __descriptors, int __flag)) __asm__ ("nftw64");
+#  ifdef __REDIRECT
+extern int __REDIRECT (nftw, __P ((__const char *__dir, __nftw_func_t __func,
+                                  int __descriptors, int __flag)), nftw64);
+#  else
+#   define nftw nftw64
+#  endif
 # endif
 # ifdef __USE_LARGEFILE64
 extern int nftw64 __P ((__const char *__dir, __nftw64_func_t __func,
index 944c436..b31097a 100644 (file)
@@ -173,37 +173,42 @@ __BEGIN_DECLS
 
 /* Get file attributes for FILE and put them in BUF.  */
 extern int __stat __P ((__const char *__file, struct stat *__buf));
-#ifndef __USE_FILE_OFFSET64
-extern int stat __P ((__const char *__file, struct stat *__buf));
-#else
-extern int stat __P ((__const char *__file, struct stat *__buf))
-     __asm__ ("stat64");
-#endif
-#ifdef __USE_LARGEFILE64
-extern int stat64 __P ((__const char *__file, struct stat64 *__buf));
-#endif
-
 /* Get file attributes for the file, device, pipe, or socket
    that file descriptor FD is open on and put them in BUF.  */
 extern int __fstat __P ((int __fd, struct stat *__buf));
+/* Get file attributes about FILE and put them in BUF.
+   If FILE is a symbolic link, do not follow it.  */
+extern int __lstat __P ((__const char *__file, struct stat *__buf));
+
+
 #ifndef __USE_FILE_OFFSET64
+extern int stat __P ((__const char *__file, struct stat *__buf));
 extern int fstat __P ((int __fd, struct stat *__buf));
 #else
-extern int fstat __P ((int __fd, struct stat *__buf)) __asm__ ("fstat64");
+# ifdef __REDIRECT
+extern int __REDIRECT (stat, __P ((__const char *__file, struct stat *__buf)),
+                      stat64);
+extern int __REDIRECT (fstat, __P ((int __fd, struct stat *__buf)), fstat64);
+# else
+#  define stat stat64
+#  define fstat fstat64
+# endif
 #endif
 #ifdef __USE_LARGEFILE64
+extern int stat64 __P ((__const char *__file, struct stat64 *__buf));
 extern int fstat64 __P ((int __fd, struct stat64 *__buf));
 #endif
 
-/* Get file attributes about FILE and put them in BUF.
-   If FILE is a symbolic link, do not follow it.  */
-extern int __lstat __P ((__const char *__file, struct stat *__buf));
 #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 # ifndef __USE_FILE_OFFSET64
 extern int lstat __P ((__const char *__file, struct stat *__buf));
 # else
-extern int lstat __P ((__const char *__file, struct stat *__buf))
-     __asm__ ("lstat64");
+#  ifdef __REDIRECT
+extern int __REDIRECT (lstat, __P ((__const char *__file, struct stat *__buf)),
+                      lstat64);
+#  else
+#   define lstat lstat64
+#  endif
 # endif
 # ifdef __USE_LARGEFILE64
 extern int lstat64 __P ((__const char *__file, struct stat64 *__buf));
@@ -283,16 +288,21 @@ extern int __xstat __P ((int __ver, __const char *__filename,
 extern int __lxstat __P ((int __ver, __const char *__filename,
                          struct stat *__stat_buf));
 #else
-extern int __fxstat __P ((int __ver, int __fildes,
-                         struct stat *__stat_buf))
-     __asm__ ("__fxstat64");
-extern int __xstat __P ((int __ver, __const char *__filename,
-                        struct stat *__stat_buf))
-     __asm__ ("__xstat64");
-extern int __lxstat __P ((int __ver, __const char *__filename,
-                         struct stat *__stat_buf))
-     __asm__ ("__lxstat64");
+# ifdef __REDIRECT
+extern int __REDIRECT (__fxstat, __P ((int __ver, int __fildes,
+                                      struct stat *__stat_buf)), __fxstat64);
+extern int __REDIRECT (__xstat, __P ((int __ver, __const char *__filename,
+                                     struct stat *__stat_buf)), __xstat64);
+extern int __REDIRECT (__lxstat __P ((int __ver, __const char *__filename,
+                                     struct stat *__stat_buf)), __lxstat64);
+
+# else
+#  define __fxstat __fxstat64
+#  define __xstat __xstat64
+#  define __lxstat __lxstat64
+# endif
 #endif
+
 #ifdef __USE_LARGEFILE64
 extern int __fxstat64 __P ((int __ver, int __fildes,
                            struct stat64 *__stat_buf));
index fbec441..6d9d00f 100644 (file)
@@ -32,8 +32,12 @@ extern int __statfs __P ((__const char *__file, struct statfs *__buf));
 #ifndef __USE_FILE_OFFSET64
 extern int statfs __P ((__const char *__file, struct statfs *__buf));
 #else
-extern int statfs __P ((__const char *__file, struct statfs *__buf))
-     __asm__ ("statfs64");
+# ifdef __REDIRECT
+extern int __REDIRECT (statfs, __P ((__const char *__file,
+                                    struct statfs *__buf)), statfs64);
+# else
+#  define statfs statfs64
+# endif
 #endif
 #ifdef __USE_LARGEFILE64
 extern int statfs64 __P ((__const char *__file, struct statfs64 *__buf));
@@ -45,8 +49,12 @@ extern int __fstatfs __P ((int __fildes, struct statfs *__buf));
 #ifndef __USE_FILE_OFFSET64
 extern int fstatfs __P ((int __fildes, struct statfs *__buf));
 #else
-extern int fstatfs __P ((int __fildes, struct statfs *__buf))
-     __asm__ ("fstatfs64");
+# ifdef __REDIRECT
+extern int __REDIRECT (fstatfs, __P ((int __fildes, struct statfs *__buf)),
+                      fstatfs64);
+# else
+#  define statfs statfs64
+# endif
 #endif
 #ifdef __USE_LARGEFILE64
 extern int fstatfs64 __P ((int __fildes, struct statfs64 *__buf));
index 4da8e7c..856d3c9 100644 (file)
@@ -32,8 +32,13 @@ extern int __statvfs __P ((__const char *__file, struct statvfs *__buf));
 #ifndef __USE_FILE_OFFSET64
 extern int statvfs __P ((__const char *__file, struct statvfs *__buf));
 #else
-extern int statvfs __P ((__const char *__file, struct statvfs *__buf))
-     __asm__ ("statvfs64");
+# ifdef __REDIRECT
+extern int __REDIRECT (statvfs,
+                      __P ((__const char *__file, struct statvfs *__buf)),
+                      statvfs64);
+# else
+#  define statfs statfs64
+# endif
 #endif
 #ifdef __USE_LARGEFILE64
 extern int statvfs64 __P ((__const char *__file, struct statvfs64 *__buf));
@@ -45,8 +50,12 @@ extern int __fstatvfs __P ((int __fildes, struct statvfs *__buf));
 #ifndef __USE_FILE_OFFSET64
 extern int fstatvfs __P ((int __fildes, struct statvfs *__buf));
 #else
-extern int fstatvfs __P ((int __fildes, struct statvfs *__buf))
-     __asm__ ("fstatvfs64");
+# ifdef __REDIRECT
+extern int __REDIRECT (fstatvfs, __P ((int __fildes, struct statvfs *__buf)),
+                      fstatvfs64);
+# else
+#  define statfs statfs64
+# endif
 #endif
 #ifdef __USE_LARGEFILE64
 extern int fstatvfs64 __P ((int __fildes, struct statvfs64 *__buf));
index 76e4fac..7f0a087 100644 (file)
@@ -145,7 +145,11 @@ extern int rename __P ((__const char *__old, __const char *__new));
 #ifndef __USE_FILE_OFFSET64
 extern FILE *tmpfile __P ((void));
 #else
-extern FILE *tmpfile __P ((void)) __asm__ ("tmpfile64");
+# ifdef __REDIRECT
+extern FILE *__REDIRECT (tmpfile, __P ((void)), tmpfile64);
+# else
+#  define tmpfile tmpfile64
+# endif
 #endif
 #ifdef __USE_LARGEFILE64
 extern FILE *tmpfile64 __P ((void));
@@ -190,30 +194,31 @@ extern int fcloseall __P ((void));
 #endif
 
 
-/* Open a file and create a new stream for it.  */
 #ifndef __USE_FILE_OFFSET64
+/* Open a file and create a new stream for it.  */
 extern FILE *fopen __P ((__const char *__restrict __filename,
                         __const char *__restrict __modes));
-#else
-extern FILE *fopen __P ((__const char *__restrict __filename,
-                        __const char *__restrict __modes))
-     __asm__ ("fopen64");
-#endif
-#ifdef __USE_LARGEFILE64
-extern FILE *fopen64 __P ((__const char *__restrict __filename,
-                          __const char *__restrict __modes));
-#endif
 /* Open a file, replacing an existing stream with it. */
-#ifndef __USE_FILE_OFFSET64
 extern FILE *freopen __P ((__const char *__restrict __filename,
                           __const char *__restrict __modes,
                           FILE *__restrict __stream));
 #else
-extern FILE *freopen __P ((__const char *__restrict __filename,
-                          __const char *__restrict __modes,
-                          FILE *__restrict __stream)) __asm__ ("freopen64");
+# ifdef __REDIRECT
+extern FILE *__REDIRECT (fopen, __P ((__const char *__restrict __filename,
+                                  __const char *__restrict __modes)),
+                        fopen64);
+extern FILE *__REDIRECT (freopen, __P ((__const char *__restrict __filename,
+                                       __const char *__restrict __modes,
+                                       FILE *__restrict __stream)),
+                        freopen64);
+# else
+#  define fopen fopen64
+#  define freopen freopen64
+# endif
 #endif
 #ifdef __USE_LARGEFILE64
+extern FILE *fopen64 __P ((__const char *__restrict __filename,
+                          __const char *__restrict __modes));
 extern FILE *freopen64 __P ((__const char *__restrict __filename,
                             __const char *__restrict __modes,
                             FILE *__restrict __stream));
@@ -558,52 +563,44 @@ typedef __off64_t off64_t;
 #  define off64_t off64_t
 # endif
 
-/* Seek to a certain position on STREAM.  */
+
 # ifndef __USE_FILE_OFFSET64
+/* Seek to a certain position on STREAM.  */
 extern int fseeko __P ((FILE *__stream, __off_t __off, int __whence));
-# else
-extern int fseeko __P ((FILE *__stream, __off64_t __off, int __whence))
-     __asm__ ("fseeko64");
-# endif
-# ifdef __USE_LARGEFILE64
-extern int fseeko64 __P ((FILE *__stream, __off64_t __off, int __whence));
-# endif
-
 /* Return the current position of STREAM.  */
-# ifndef __USE_FILE_OFFSET64
 extern __off_t ftello __P ((FILE *__stream));
+/* Get STREAM's position.  */
+extern int fgetpos __P ((FILE *__restrict __stream,
+                        fpos_t *__restrict __pos));
+/* Set STREAM's position.  */
+extern int fsetpos __P ((FILE *__stream, __const fpos_t *__pos));
 # else
-extern __off64_t ftello __P ((FILE *__stream)) __asm__ ("ftello64");
+# ifdef __REDIRECT
+extern int __REDIRECT (fseeko,
+                      __P ((FILE *__stream, __off64_t __off, int __whence)),
+                      fseeko64);
+extern __off64_t __REDIRECT (ftello, __P ((FILE *__stream)), ftello64);
+extern int __REDIRECT (fgetpos, __P ((FILE *__restrict __stream,
+                                     fpos_t *__restrict __pos)), fgetpos64);
+extern int __REDIRECT (fsetpos, __P, ((FILE *__stream, __const fpos_t *__pos)),
+                      fsetpos64);
+#  else
+#   define fseeko fseeko64
+#   define ftello ftello64
+#   define fgetpos fgetpos64
+#   define fsetpos fsetpos64
+#  endif
 # endif
+
 # ifdef __USE_LARGEFILE64
+extern int fseeko64 __P ((FILE *__stream, __off64_t __off, int __whence));
 extern __off64_t ftello64 __P ((FILE *__stream));
-# endif
-#endif
-
-/* Get STREAM's position.  */
-#ifndef __USE_FILE_OFFSET64
-extern int fgetpos __P ((FILE *__restrict __stream,
-                        fpos_t *__restrict __pos));
-#else
-extern int fgetpos __P ((FILE *__restrict __stream,
-                        fpos_t *__restrict __pos)) __asm__ ("fgetpos64");
-#endif
-#ifdef __USE_LARGEFILE64
 extern int fgetpos64 __P ((FILE *__restrict __stream,
                           fpos64_t *__restrict __pos));
-#endif
-/* Set STREAM's position.  */
-#ifndef __USE_FILE_OFFSET64
-extern int fsetpos __P ((FILE *__stream, __const fpos_t *__pos));
-#else
-extern int fsetpos __P ((FILE *__stream, __const fpos_t *__pos))
-     __asm__ ("fsetpos64");
-#endif
-#ifdef __USE_LARGEFILE64
 extern int fsetpos64 __P ((FILE *__stream, __const fpos64_t *__pos));
+# endif
 #endif
 
-
 /* Clear the error and EOF indicators for STREAM.  */
 extern void clearerr __P ((FILE *__stream));
 /* Return the EOF indicator for STREAM.  */
index 1599f05..62fb1da 100644 (file)
@@ -34,8 +34,13 @@ extern int __getrlimit __P ((enum __rlimit_resource __resource,
 extern int getrlimit __P ((enum __rlimit_resource __resource,
                           struct rlimit *__rlimits));
 #else
-extern int getrlimit __P ((enum __rlimit_resource __resource,
-                          struct rlimit *__rlimits)) __asm__ ("getrlimit64");
+# ifdef __REDIRECT
+extern int __REDIRECT (getrlimit, __P ((enum __rlimit_resource __resource,
+                                       struct rlimit *__rlimits)),
+                      getrlimit64);
+# else
+#  define getrlimit getrlimit64
+# endif
 #endif
 #ifdef __USE_LARGEFILE64
 extern int getrlimit64 __P ((enum __rlimit_resource __resource,
@@ -49,8 +54,13 @@ extern int getrlimit64 __P ((enum __rlimit_resource __resource,
 extern int setrlimit __P ((enum __rlimit_resource __resource,
                           struct rlimit *__rlimits));
 #else
-extern int setrlimit __P ((enum __rlimit_resource __resource,
-                          struct rlimit *__rlimits)) __asm__ ("setrlimit64");
+# ifdef __REDIRECT
+extern int __REDIRECT (setrlimit, __P ((enum __rlimit_resource __resource,
+                                       struct rlimit *__rlimits)),
+                      setrlimit64);
+# else
+#  define setrlimit setrlimit64
+# endif
 #endif
 #ifdef __USE_LARGEFILE64
 extern int setrlimit64 __P ((enum __rlimit_resource __resource,
index c854e97..20f753a 100644 (file)
--- a/rt/aio.h
+++ b/rt/aio.h
@@ -138,109 +138,91 @@ 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
+/* Enqueue read request for given number of bytes and the given priority.  */
 extern int aio_read __P ((struct aiocb *__aiocbp));
-#else
-extern int aio_read __P ((struct aiocb *__aiocbp)) __asm__ ("aio_read64");
-#endif
-#ifdef __USE_LARGEFILE64
-extern int aio_read64 __P ((struct aiocb64 *__aiocbp));
-#endif
-
 /* Enqueue write request for given number of bytes and the given priority.  */
-#ifndef __USE_FILE_OFFSET64
 extern int aio_write __P ((struct aiocb *__aiocbp));
-#else
-extern int aio_write __P ((struct aiocb *__aiocbp)) __asm__ ("aio_write64");
-#endif
-#ifdef __USE_LARGEFILE64
-extern int aio_write64 __P ((struct aiocb64 *__aiocbp));
-#endif
-
 
 /* Initiate list of I/O requests.  */
-#ifndef __USE_FILE_OFFSET64
 extern int lio_listio __P ((int __mode, struct aiocb *__const __list[],
                            int __nent, struct sigevent *__sig));
-#else
-extern int lio_listio __P ((int __mode, struct aiocb *__const __list[],
-                           int __nent, struct sigevent *__sig))
-     __asm__ ("lio_listio64");
-#endif
-#ifdef __USE_LARGEFILE64
-extern int lio_listio64 __P ((int __mode, struct aiocb64 *__const __list[],
-                             int __nent, struct sigevent *__sig));
-#endif
-
 
 /* Retrieve error status associated with AIOCBP.  */
-#ifndef __USE_FILE_OFFSET64
 extern int aio_error __P ((__const struct aiocb *__aiocbp));
-#else
-extern int aio_error __P ((__const struct aiocb *__aiocbp))
-     __asm__ ("aio_error64");
-#endif
-#ifdef __USE_LARGEFILE64
-extern int aio_error64 __P ((__const struct aiocb64 *__aiocbp));
-#endif
-
-
 /* Return status associated with AIOCBP.  */
-#ifndef __USE_FILE_OFFSET64
 extern __ssize_t aio_return __P ((struct aiocb *__aiocbp));
-#else
-extern __ssize_t aio_return __P ((struct aiocb *__aiocbp))
-     __asm__ ("aio_return64");
-#endif
-#ifdef __USE_LARGEFILE64
-extern __ssize_t aio_return64 __P ((struct aiocb64 *__aiocbp));
-#endif
-
 
 /* Try to cancel asynchronous I/O requests outstanding against file
-   descriptot FILDES.  */
-#ifndef __USE_FILE_OFFSET64
+   descriptor FILDES.  */
 extern int aio_cancel __P ((int __fildes, struct aiocb *__aiocbp));
-#else
-extern int aio_cancel __P ((int __fildes, struct aiocb *__aiocbp))
-     __asm__ ("aio_cancel64");
-#endif
-#ifdef __USE_LARGEFILE64
-extern int aio_cancel64 __P ((int __fildes, struct aiocb64 *__aiocbp));
-#endif
-
 
 /* Suspend calling thread until at least one of the asynchronous I/O
    operations referenced by LIST has completed.  */
-#ifndef __USE_FILE_OFFSET64
 extern int aio_suspend __P ((__const struct aiocb *__const __list[],
                             int __nent, __const struct timespec *__timeout));
-#else
-extern int aio_suspend __P ((__const struct aiocb *__const __list[],
-                            int __nent, __const struct timespec *__timeout))
-     __asm__ ("aio_suspend64");
-#endif
-#ifdef __USE_LARGEFILE64
-extern int aio_suspend64 __P ((__const struct aiocb64 *__const __list[],
-                              int __nent,
-                              __const struct timespec *__timeout));
-#endif
-
 
 /* Force all operations associated with file desriptor described by
    `aio_fildes' member of AIOCBP.  */
-#ifndef __USE_FILE_OFFSET64
 extern int aio_fsync __P ((int __op, struct aiocb *__aiocbp));
 #else
-extern int aio_fsync __P ((int __op, struct aiocb *__aiocbp))
-     __asm__ ("aio_fsync64");
+# ifdef __REDIRECT
+extern int __REDIRECT (aio_read, __P ((struct aiocb *__aiocbp)), aio_read64);
+extern int __REDIRECT (aio_write, __P ((struct aiocb *__aiocbp)), aio_write64);
+
+extern int __REDIRECT (lio_listio, __P ((int __mode,
+                                        struct aiocb *__const __list[],
+                                        int __nent, struct sigevent *__sig)),
+                      lio_listio64);
+
+extern int __REDIRECT (aio_error, __P ((__const struct aiocb *__aiocbp)),
+                      aio_error64);
+extern __ssize_t __REDIRECT (aio_return, __P ((struct aiocb *__aiocbp)),
+                            aio_return64);
+
+extern int __REDIRECT (aio_cancel, __P ((int __fildes,
+                                        struct aiocb *__aiocbp)),
+                      aio_cancel64);
+
+extern int __REDIRECT (aio_suspend,
+                      __P ((__const struct aiocb *__const __list[],
+                            int __nent, __const struct timespec *__timeout)),
+                      aio_suspend64);
+
+extern int __REDIRECT (aio_fsync __P ((int __op, struct aiocb *__aiocbp)),
+                      aio_fsync64);
+
+# else
+#  define aio_read aio_read64
+#  define aio_write aio_write64
+#  define lio_listio lio_listio64
+#  define aio_error aio_error64
+#  define aio_return aio_return64
+#  define aio_cancel aio_cancel64
+#  define aio_suspend aio_suspend64
+#  define aio_fsync aio_fsync64
+# endif
 #endif
+
 #ifdef __USE_LARGEFILE64
+extern int aio_read64 __P ((struct aiocb64 *__aiocbp));
+extern int aio_write64 __P ((struct aiocb64 *__aiocbp));
+
+extern int lio_listio64 __P ((int __mode, struct aiocb64 *__const __list[],
+                             int __nent, struct sigevent *__sig));
+
+extern int aio_error64 __P ((__const struct aiocb64 *__aiocbp));
+extern __ssize_t aio_return64 __P ((struct aiocb64 *__aiocbp));
+
+extern int aio_cancel64 __P ((int __fildes, struct aiocb64 *__aiocbp));
+
+extern int aio_suspend64 __P ((__const struct aiocb64 *__const __list[],
+                              int __nent,
+                              __const struct timespec *__timeout));
+
 extern int aio_fsync64 __P ((int __op, struct aiocb64 *__aiocbp));
 #endif
 
-
 __END_DECLS
 
 #endif /* aio.h */