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
This commit is contained in:
37
libc/arch-x86/syscalls/fstatat64.S
Normal file
37
libc/arch-x86/syscalls/fstatat64.S
Normal file
@@ -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)
|
||||
Reference in New Issue
Block a user