diff options
author | Mikael Pettersson <mikpe@it.uu.se> | 2009-04-18 16:26:57 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-04-20 09:01:39 -0400 |
commit | eb8f3142fa30201426feb7b3f9046fcd730e17d3 (patch) | |
tree | 7cf595a77fe8ad9ea9550d3415f2937e78ade61b | |
parent | d91dfbb41bb2e9bdbfbd2cc7078ed7436eab027a (diff) |
[ARM] 5456/1: add sys_preadv and sys_pwritev
Kernel 2.6.30-rc1 added sys_preadv and sys_pwritev to most archs
but not ARM, resulting in
<stdin>:1421:2: warning: #warning syscall preadv not implemented
<stdin>:1425:2: warning: #warning syscall pwritev not implemented
This patch adds sys_preadv and sys_pwritev to ARM.
These syscalls simply take five long-sized parameters, so they
should have no calling-convention/ABI issues in the kernel.
Tested on armv5tel eabi using a preadv/pwritev test program posted
on linuxppc-dev earlier this month.
It would be nice to get this into the kernel before 2.6.30 final,
so that glibc's kernel version feature test for these syscalls
doesn't have to special-case ARM.
Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/include/asm/unistd.h | 2 | ||||
-rw-r--r-- | arch/arm/kernel/calls.S | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h index 010618487cf1..94cc58ef61ae 100644 --- a/arch/arm/include/asm/unistd.h +++ b/arch/arm/include/asm/unistd.h | |||
@@ -387,6 +387,8 @@ | |||
387 | #define __NR_dup3 (__NR_SYSCALL_BASE+358) | 387 | #define __NR_dup3 (__NR_SYSCALL_BASE+358) |
388 | #define __NR_pipe2 (__NR_SYSCALL_BASE+359) | 388 | #define __NR_pipe2 (__NR_SYSCALL_BASE+359) |
389 | #define __NR_inotify_init1 (__NR_SYSCALL_BASE+360) | 389 | #define __NR_inotify_init1 (__NR_SYSCALL_BASE+360) |
390 | #define __NR_preadv (__NR_SYSCALL_BASE+361) | ||
391 | #define __NR_pwritev (__NR_SYSCALL_BASE+362) | ||
390 | 392 | ||
391 | /* | 393 | /* |
392 | * The following SWIs are ARM private. | 394 | * The following SWIs are ARM private. |
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S index 9ca8d13f05f7..1680e9e9c831 100644 --- a/arch/arm/kernel/calls.S +++ b/arch/arm/kernel/calls.S | |||
@@ -370,6 +370,8 @@ | |||
370 | CALL(sys_dup3) | 370 | CALL(sys_dup3) |
371 | CALL(sys_pipe2) | 371 | CALL(sys_pipe2) |
372 | /* 360 */ CALL(sys_inotify_init1) | 372 | /* 360 */ CALL(sys_inotify_init1) |
373 | CALL(sys_preadv) | ||
374 | CALL(sys_pwritev) | ||
373 | #ifndef syscalls_counted | 375 | #ifndef syscalls_counted |
374 | .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls | 376 | .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls |
375 | #define syscalls_counted | 377 | #define syscalls_counted |