Add extended attribute (xattr) system call wrappers to bionic.
The xattr system calls are required for the SE Android userspace in order to get and set file security contexts. In particular, libselinux requires these calls. Change-Id: I78f5eb3d8f3384aed0a5e7c6a6f001781d982017
This commit is contained in:
@@ -85,6 +85,10 @@ syscall_src += arch-arm/syscalls/mkdirat.S
|
||||
syscall_src += arch-arm/syscalls/fchownat.S
|
||||
syscall_src += arch-arm/syscalls/fchmodat.S
|
||||
syscall_src += arch-arm/syscalls/renameat.S
|
||||
syscall_src += arch-arm/syscalls/fsetxattr.S
|
||||
syscall_src += arch-arm/syscalls/fgetxattr.S
|
||||
syscall_src += arch-arm/syscalls/flistxattr.S
|
||||
syscall_src += arch-arm/syscalls/fremovexattr.S
|
||||
syscall_src += arch-arm/syscalls/link.S
|
||||
syscall_src += arch-arm/syscalls/unlink.S
|
||||
syscall_src += arch-arm/syscalls/unlinkat.S
|
||||
@@ -107,6 +111,14 @@ syscall_src += arch-arm/syscalls/access.S
|
||||
syscall_src += arch-arm/syscalls/symlink.S
|
||||
syscall_src += arch-arm/syscalls/fchdir.S
|
||||
syscall_src += arch-arm/syscalls/truncate.S
|
||||
syscall_src += arch-arm/syscalls/setxattr.S
|
||||
syscall_src += arch-arm/syscalls/lsetxattr.S
|
||||
syscall_src += arch-arm/syscalls/getxattr.S
|
||||
syscall_src += arch-arm/syscalls/lgetxattr.S
|
||||
syscall_src += arch-arm/syscalls/listxattr.S
|
||||
syscall_src += arch-arm/syscalls/llistxattr.S
|
||||
syscall_src += arch-arm/syscalls/removexattr.S
|
||||
syscall_src += arch-arm/syscalls/lremovexattr.S
|
||||
syscall_src += arch-arm/syscalls/__statfs64.S
|
||||
syscall_src += arch-arm/syscalls/pause.S
|
||||
syscall_src += arch-arm/syscalls/gettimeofday.S
|
||||
|
||||
14
libc/arch-arm/syscalls/fgetxattr.S
Normal file
14
libc/arch-arm/syscalls/fgetxattr.S
Normal file
@@ -0,0 +1,14 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(fgetxattr)
|
||||
.save {r4, r7}
|
||||
stmfd sp!, {r4, r7}
|
||||
ldr r7, =__NR_fgetxattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(fgetxattr)
|
||||
14
libc/arch-arm/syscalls/flistxattr.S
Normal file
14
libc/arch-arm/syscalls/flistxattr.S
Normal file
@@ -0,0 +1,14 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(flistxattr)
|
||||
.save {r4, r7}
|
||||
stmfd sp!, {r4, r7}
|
||||
ldr r7, =__NR_flistxattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(flistxattr)
|
||||
14
libc/arch-arm/syscalls/fremovexattr.S
Normal file
14
libc/arch-arm/syscalls/fremovexattr.S
Normal file
@@ -0,0 +1,14 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(fremovexattr)
|
||||
.save {r4, r7}
|
||||
stmfd sp!, {r4, r7}
|
||||
ldr r7, =__NR_fremovexattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(fremovexattr)
|
||||
16
libc/arch-arm/syscalls/fsetxattr.S
Normal file
16
libc/arch-arm/syscalls/fsetxattr.S
Normal file
@@ -0,0 +1,16 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(fsetxattr)
|
||||
mov ip, sp
|
||||
.save {r4, r5, r6, r7}
|
||||
stmfd sp!, {r4, r5, r6, r7}
|
||||
ldmfd ip, {r4, r5, r6}
|
||||
ldr r7, =__NR_fsetxattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r5, r6, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(fsetxattr)
|
||||
14
libc/arch-arm/syscalls/getxattr.S
Normal file
14
libc/arch-arm/syscalls/getxattr.S
Normal file
@@ -0,0 +1,14 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(getxattr)
|
||||
.save {r4, r7}
|
||||
stmfd sp!, {r4, r7}
|
||||
ldr r7, =__NR_getxattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(getxattr)
|
||||
14
libc/arch-arm/syscalls/lgetxattr.S
Normal file
14
libc/arch-arm/syscalls/lgetxattr.S
Normal file
@@ -0,0 +1,14 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(lgetxattr)
|
||||
.save {r4, r7}
|
||||
stmfd sp!, {r4, r7}
|
||||
ldr r7, =__NR_lgetxattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(lgetxattr)
|
||||
14
libc/arch-arm/syscalls/listxattr.S
Normal file
14
libc/arch-arm/syscalls/listxattr.S
Normal file
@@ -0,0 +1,14 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(listxattr)
|
||||
.save {r4, r7}
|
||||
stmfd sp!, {r4, r7}
|
||||
ldr r7, =__NR_listxattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(listxattr)
|
||||
14
libc/arch-arm/syscalls/llistxattr.S
Normal file
14
libc/arch-arm/syscalls/llistxattr.S
Normal file
@@ -0,0 +1,14 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(llistxattr)
|
||||
.save {r4, r7}
|
||||
stmfd sp!, {r4, r7}
|
||||
ldr r7, =__NR_llistxattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(llistxattr)
|
||||
14
libc/arch-arm/syscalls/lremovexattr.S
Normal file
14
libc/arch-arm/syscalls/lremovexattr.S
Normal file
@@ -0,0 +1,14 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(lremovexattr)
|
||||
.save {r4, r7}
|
||||
stmfd sp!, {r4, r7}
|
||||
ldr r7, =__NR_lremovexattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(lremovexattr)
|
||||
16
libc/arch-arm/syscalls/lsetxattr.S
Normal file
16
libc/arch-arm/syscalls/lsetxattr.S
Normal file
@@ -0,0 +1,16 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(lsetxattr)
|
||||
mov ip, sp
|
||||
.save {r4, r5, r6, r7}
|
||||
stmfd sp!, {r4, r5, r6, r7}
|
||||
ldmfd ip, {r4, r5, r6}
|
||||
ldr r7, =__NR_lsetxattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r5, r6, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(lsetxattr)
|
||||
14
libc/arch-arm/syscalls/removexattr.S
Normal file
14
libc/arch-arm/syscalls/removexattr.S
Normal file
@@ -0,0 +1,14 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(removexattr)
|
||||
.save {r4, r7}
|
||||
stmfd sp!, {r4, r7}
|
||||
ldr r7, =__NR_removexattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(removexattr)
|
||||
16
libc/arch-arm/syscalls/setxattr.S
Normal file
16
libc/arch-arm/syscalls/setxattr.S
Normal file
@@ -0,0 +1,16 @@
|
||||
/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
ENTRY(setxattr)
|
||||
mov ip, sp
|
||||
.save {r4, r5, r6, r7}
|
||||
stmfd sp!, {r4, r5, r6, r7}
|
||||
ldmfd ip, {r4, r5, r6}
|
||||
ldr r7, =__NR_setxattr
|
||||
swi #0
|
||||
ldmfd sp!, {r4, r5, r6, r7}
|
||||
movs r0, r0
|
||||
bxpl lr
|
||||
b __set_syscall_errno
|
||||
END(setxattr)
|
||||
Reference in New Issue
Block a user