aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMikael Pettersson <mikpe@it.uu.se>2009-04-18 16:26:57 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-04-20 09:01:39 -0400
commiteb8f3142fa30201426feb7b3f9046fcd730e17d3 (patch)
tree7cf595a77fe8ad9ea9550d3415f2937e78ade61b /arch
parentd91dfbb41bb2e9bdbfbd2cc7078ed7436eab027a (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>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/include/asm/unistd.h2
-rw-r--r--arch/arm/kernel/calls.S2
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