mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
[S390] Add missing compat system call wrappers.
Add wrapper functions for the following compat system calls: * readahead * sendfile64 * tkill * tgkill * keyctl This ensures that the high order bits of the parameter registers are correctly sign extended. Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
This commit is contained in:
parent
179cb81aa1
commit
e34a628041
2 changed files with 43 additions and 5 deletions
|
@ -1767,3 +1767,41 @@ sys_dup3_wrapper:
|
|||
sys_epoll_create1_wrapper:
|
||||
lgfr %r2,%r2 # int
|
||||
jg sys_epoll_create1 # branch to system call
|
||||
|
||||
.globl sys32_readahead_wrapper
|
||||
sys32_readahead_wrapper:
|
||||
lgfr %r2,%r2 # int
|
||||
llgfr %r3,%r3 # u32
|
||||
llgfr %r4,%r4 # u32
|
||||
lgfr %r5,%r5 # s32
|
||||
jg sys32_readahead # branch to system call
|
||||
|
||||
.globl sys32_sendfile64_wrapper
|
||||
sys32_sendfile64_wrapper:
|
||||
lgfr %r2,%r2 # int
|
||||
lgfr %r3,%r3 # int
|
||||
llgtr %r4,%r4 # compat_loff_t *
|
||||
lgfr %r5,%r5 # s32
|
||||
jg sys32_sendfile64 # branch to system call
|
||||
|
||||
.globl sys_tkill_wrapper
|
||||
sys_tkill_wrapper:
|
||||
lgfr %r2,%r2 # pid_t
|
||||
lgfr %r3,%r3 # int
|
||||
jg sys_tkill # branch to system call
|
||||
|
||||
.globl sys_tgkill_wrapper
|
||||
sys_tgkill_wrapper:
|
||||
lgfr %r2,%r2 # pid_t
|
||||
lgfr %r3,%r3 # pid_t
|
||||
lgfr %r4,%r4 # int
|
||||
jg sys_tgkill # branch to system call
|
||||
|
||||
.globl compat_sys_keyctl_wrapper
|
||||
compat_sys_keyctl_wrapper:
|
||||
llgfr %r2,%r2 # u32
|
||||
llgfr %r3,%r3 # u32
|
||||
llgfr %r4,%r4 # u32
|
||||
llgfr %r5,%r5 # u32
|
||||
llgfr %r6,%r6 # u32
|
||||
jg compat_sys_keyctl # branch to system call
|
||||
|
|
|
@ -230,8 +230,8 @@ SYSCALL(sys_mincore,sys_mincore,sys32_mincore_wrapper)
|
|||
SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper)
|
||||
SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper) /* 220 */
|
||||
SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper)
|
||||
SYSCALL(sys_readahead,sys_readahead,sys32_readahead)
|
||||
SYSCALL(sys_sendfile64,sys_ni_syscall,sys32_sendfile64)
|
||||
SYSCALL(sys_readahead,sys_readahead,sys32_readahead_wrapper)
|
||||
SYSCALL(sys_sendfile64,sys_ni_syscall,sys32_sendfile64_wrapper)
|
||||
SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper)
|
||||
SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper) /* 225 */
|
||||
SYSCALL(sys_fsetxattr,sys_fsetxattr,sys32_fsetxattr_wrapper)
|
||||
|
@ -245,11 +245,11 @@ SYSCALL(sys_removexattr,sys_removexattr,sys32_removexattr_wrapper)
|
|||
SYSCALL(sys_lremovexattr,sys_lremovexattr,sys32_lremovexattr_wrapper)
|
||||
SYSCALL(sys_fremovexattr,sys_fremovexattr,sys32_fremovexattr_wrapper) /* 235 */
|
||||
SYSCALL(sys_gettid,sys_gettid,sys_gettid)
|
||||
SYSCALL(sys_tkill,sys_tkill,sys_tkill)
|
||||
SYSCALL(sys_tkill,sys_tkill,sys_tkill_wrapper)
|
||||
SYSCALL(sys_futex,sys_futex,compat_sys_futex_wrapper)
|
||||
SYSCALL(sys_sched_setaffinity,sys_sched_setaffinity,sys32_sched_setaffinity_wrapper)
|
||||
SYSCALL(sys_sched_getaffinity,sys_sched_getaffinity,sys32_sched_getaffinity_wrapper) /* 240 */
|
||||
SYSCALL(sys_tgkill,sys_tgkill,sys_tgkill)
|
||||
SYSCALL(sys_tgkill,sys_tgkill,sys_tgkill_wrapper)
|
||||
NI_SYSCALL /* reserved for TUX */
|
||||
SYSCALL(sys_io_setup,sys_io_setup,sys32_io_setup_wrapper)
|
||||
SYSCALL(sys_io_destroy,sys_io_destroy,sys32_io_destroy_wrapper)
|
||||
|
@ -288,7 +288,7 @@ SYSCALL(sys_mq_getsetattr,sys_mq_getsetattr,compat_sys_mq_getsetattr_wrapper)
|
|||
SYSCALL(sys_kexec_load,sys_kexec_load,compat_sys_kexec_load_wrapper)
|
||||
SYSCALL(sys_add_key,sys_add_key,compat_sys_add_key_wrapper)
|
||||
SYSCALL(sys_request_key,sys_request_key,compat_sys_request_key_wrapper)
|
||||
SYSCALL(sys_keyctl,sys_keyctl,compat_sys_keyctl) /* 280 */
|
||||
SYSCALL(sys_keyctl,sys_keyctl,compat_sys_keyctl_wrapper) /* 280 */
|
||||
SYSCALL(sys_waitid,sys_waitid,compat_sys_waitid_wrapper)
|
||||
SYSCALL(sys_ioprio_set,sys_ioprio_set,sys_ioprio_set_wrapper)
|
||||
SYSCALL(sys_ioprio_get,sys_ioprio_get,sys_ioprio_get_wrapper)
|
||||
|
|
Loading…
Reference in a new issue