|
@@ -17,25 +17,14 @@
|
|
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
|
02111-1307 USA. */
|
|
|
|
|
|
-#define _ERRNO_H 1
|
|
|
-#include <features.h>
|
|
|
-#include <bits/errno.h>
|
|
|
#include <sys/syscall.h>
|
|
|
|
|
|
-#if defined __NR_fadvise64_64 || defined __NR_fadvise64
|
|
|
-
|
|
|
-/* Was named __libc_posix_fadvise64 for some inexplicable reason.
|
|
|
-** google says only uclibc has *__libc*_posix_fadviseXXX,
|
|
|
-** so it cannot be compat with anything.
|
|
|
-**
|
|
|
-** Remove this comment and one at the end after 0.9.31
|
|
|
-*/
|
|
|
+#if defined __NR_fadvise64_64 && defined __UCLIBC_HAS_LFS__
|
|
|
|
|
|
.text
|
|
|
.global posix_fadvise64
|
|
|
.type posix_fadvise64,%function
|
|
|
posix_fadvise64:
|
|
|
-#if defined __NR_fadvise64_64
|
|
|
/* Save regs */
|
|
|
pushl %ebp
|
|
|
pushl %ebx
|
|
@@ -63,47 +52,7 @@ posix_fadvise64:
|
|
|
/* Returns 0 on success, else an error code. */
|
|
|
negl %eax
|
|
|
|
|
|
-#elif defined __NR_fadvise64
|
|
|
- /* Save regs */
|
|
|
- pushl %ebx
|
|
|
- pushl %esi
|
|
|
- pushl %edi
|
|
|
-#if 0
|
|
|
- /* does len overflow long? */
|
|
|
- cmpl $0, 28(%esp)
|
|
|
- movl $-EOVERFLOW, %eax
|
|
|
- jne overflow
|
|
|
-#endif
|
|
|
- movl $__NR_fadvise64, %eax /* Syscall number in %eax. */
|
|
|
-
|
|
|
- movl 16(%esp), %ebx
|
|
|
- movl 20(%esp), %ecx
|
|
|
- movl 24(%esp), %edx
|
|
|
- movl 28(%esp), %esi
|
|
|
- movl 32(%esp), %edi
|
|
|
-
|
|
|
- /* Do the system call trap. */
|
|
|
- int $0x80
|
|
|
-overflow:
|
|
|
- /* Restore regs */
|
|
|
- popl %edi
|
|
|
- popl %esi
|
|
|
- popl %ebx
|
|
|
-
|
|
|
- /* Returns 0 on success, else an error code. */
|
|
|
- negl %eax
|
|
|
-#endif
|
|
|
-
|
|
|
/* Successful; return the syscall's value. */
|
|
|
ret
|
|
|
-
|
|
|
.size posix_fadvise64,.-posix_fadvise64
|
|
|
-
|
|
|
-/*
|
|
|
-** libc_hidden_def(__libc_posix_fadvise64)
|
|
|
-** #if defined __UCLIBC_HAS_LFS__ && defined __UCLIBC_HAS_ADVANCED_REALTIME__
|
|
|
-** weak_alias(__libc_posix_fadvise64,posix_fadvise64)
|
|
|
-** #endif
|
|
|
-*/
|
|
|
-
|
|
|
#endif
|