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

[PATCH 22/24] ARM64:ILP32: Use a seperate syscall table as a few syscalls need to be using the compat syscalls.

From: catalin.marinas@arm.com (Catalin Marinas)
Date: 2014-07-01 16:49:14
Also in: lkml

On Tue, Jul 01, 2014 at 04:30:51PM +0100, Pinski, Andrew wrote:
On Jul 1, 2014, at 8:07 AM, "Catalin Marinas" [off-list ref] wrote:
quoted
On Sat, May 24, 2014 at 12:02:17AM -0700, Andrew Pinski wrote:
quoted
+/* Using Compat syscalls where necessary */
+#define sys_ioctl        compat_sys_ioctl
+/* iovec */
+#define sys_readv        compat_sys_readv
+#define sys_writev        compat_sys_writev
+#define sys_preadv        compat_sys_preadv64
+#define sys_pwritev        compat_sys_pwritev64
+#define sys_vmsplice        compat_sys_vmsplice
Do these actually work? compat_iovec has two members of 32-bit each
while the ILP32 iovec has a void * (32-bit) and a __kernel_size_t which
is 64-bit.
size_t should be unsigned long in ilp32 so a 32bit unsigned integer
type.  That part of the abi was already defined in the arm abi
documents.  Now are saying we should pass size_t different between
user and kernel space?
OK, I think you are right here. The ILP32 would not see __kernel_size_t
defined as __kernel_ulong_t because __BITS_PER_LONG != 64.
quoted
quoted
+/* Pointer in struct */
+#define sys_mount               compat_sys_mount
Which structure is this?
NFS structure, I can expand out the comment if needed. 
That would be good for future reference.

Thanks.

-- 
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