Thread (49 messages) 49 messages, 6 authors, 2014-07-01

[PATCH 08/24] Allow a 32bit ABI to use the naming of the 64bit ABI syscalls to avoid confusion of not splitting the registers.

From: catalin.marinas@arm.com (Catalin Marinas)
Date: 2014-06-17 16:52:45
Also in: linux-arch, lkml

On Sat, May 24, 2014 at 12:02:03AM -0700, Andrew Pinski wrote:
quoted hunk ↗ jump to hunk
In the ARM64 ILP32 case, we want to say the syscalls that normally
would pass 64bit as two arguments are now passing as one so want to
use the 64bit naming scheme.

Signed-off-by: Andrew Pinski <redacted>
---
 include/uapi/asm-generic/unistd.h |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
index 3336406..0648659 100644
--- a/include/uapi/asm-generic/unistd.h
+++ b/include/uapi/asm-generic/unistd.h
@@ -875,8 +875,11 @@ __SYSCALL(__NR_fork, sys_ni_syscall)
  * they take different names.
  * Here we map the numbers so that both versions
  * use the same syscall table layout.
+ * For 32bit abis where 64bit can be passed via one
+ * register, use the same naming as the 64bit ones
+ * as they will only have a 64 bit off_t.
  */
-#if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
+#if (__BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)) || defined(__SYSCALL_NONCOMPAT)
 #define __NR_fcntl __NR3264_fcntl
 #define __NR_statfs __NR3264_statfs
 #define __NR_fstatfs __NR3264_fstatfs
I can see why you are defining this. For compat, we don't expose
__SYSCALL_COMPAT to user. But this to work with ILP32 UAPI headers we
would have to define __SYSCALL_NONCOMPAT in the arm64 uapi unistd.h if
!__LP64__. I think we should use some naming closer to what we expose
via UAPI already (on other architectures) like
__ARCH_WANT_64BIT_SYSCALLS (or maybe we could reuse
__ARCH_WANT_SYSCALL_OFF_T).

-- 
Catalin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help