summaryrefslogtreecommitdiff
path: root/arch/arm/bits/syscall.h
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-09-21 20:11:10 -0400
committerRich Felker <dalias@aerifal.cx>2011-09-21 20:11:10 -0400
commit0b6eb2dfb2e84a8a51906e7634f3d5edc230b058 (patch)
tree9a1c1c54a2c1807c742c55c9d8deb1a839c3f9d8 /arch/arm/bits/syscall.h
parentd30c331d1f3262223a99408ff2d49641a46ce409 (diff)
downloadmusl-0b6eb2dfb2e84a8a51906e7634f3d5edc230b058.tar.gz
musl-0b6eb2dfb2e84a8a51906e7634f3d5edc230b058.tar.bz2
musl-0b6eb2dfb2e84a8a51906e7634f3d5edc230b058.tar.xz
musl-0b6eb2dfb2e84a8a51906e7634f3d5edc230b058.zip
update syscalls with off_t arguments to handle argument alignment, if needed
the arm syscall abi requires 64-bit arguments to be aligned on an even register boundary. these new macros facilitate meeting the abi requirement without imposing significant ugliness on the code.
Diffstat (limited to 'arch/arm/bits/syscall.h')
-rw-r--r--arch/arm/bits/syscall.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/bits/syscall.h b/arch/arm/bits/syscall.h
index 380ac3ca..b0379e02 100644
--- a/arch/arm/bits/syscall.h
+++ b/arch/arm/bits/syscall.h
@@ -1,6 +1,7 @@
-#define __SYSCALL_LL(x) \
+#define __SYSCALL_LL_E(x) \
((union { long long ll; long l[2]; }){ .ll = x }).l[0], \
((union { long long ll; long l[2]; }){ .ll = x }).l[1]
+#define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x))
long (__syscall)(long, ...);