Implement some of the missing LFS64 support.
This gives us:
* <dirent.h>
struct dirent64
readdir64, readdir64_r, alphasort64, scandir64
* <fcntl.h>
creat64, openat64, open64.
* <sys/stat.h>
struct stat64
fstat64, fstatat64, lstat64, stat64.
* <sys/statvfs.h>
struct statvfs64
statvfs64, fstatvfs64.
* <sys/vfs.h>
struct statfs64
statfs64, fstatfs64.
This also removes some of the incorrect #define hacks we've had in the
past (for stat64, for example, which we promised to clean up way back
in bug 8472078).
Bug: 11865851
Bug: 8472078
Change-Id: Ia46443521918519f2dfa64d4621027dfd13ac566
diff --git a/libc/arch-x86/syscalls/fstatat64.S b/libc/arch-x86/syscalls/fstatat64.S
new file mode 100644
index 0000000..4b98e88
--- /dev/null
+++ b/libc/arch-x86/syscalls/fstatat64.S
@@ -0,0 +1,37 @@
+/* Generated by gensyscalls.py. Do not edit. */
+
+#include <private/bionic_asm.h>
+
+ENTRY(fstatat64)
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ pushl %esi
+ .cfi_def_cfa_offset 16
+ .cfi_rel_offset ebx, 0
+ .cfi_rel_offset ecx, 4
+ .cfi_rel_offset edx, 8
+ .cfi_rel_offset esi, 12
+ mov 20(%esp), %ebx
+ mov 24(%esp), %ecx
+ mov 28(%esp), %edx
+ mov 32(%esp), %esi
+ movl $__NR_fstatat64, %eax
+ int $0x80
+ cmpl $-MAX_ERRNO, %eax
+ jb 1f
+ negl %eax
+ pushl %eax
+ call __set_errno
+ addl $4, %esp
+ orl $-1, %eax
+1:
+ popl %esi
+ popl %edx
+ popl %ecx
+ popl %ebx
+ ret
+END(fstatat64)
+
+ .globl _C_LABEL(fstatat)
+ .equ _C_LABEL(fstatat), _C_LABEL(fstatat64)