mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-20 10:44:23 +08:00
faf309009e
The 'poll()' system call timeout parameter is supposed to be 'int', not 'long'. Now, the reason this matters is that right now 32-bit compat mode is broken on at least x86-64, because the 32-bit code just calls 'sys_poll()' directly on x86-64, and the 32-bit argument will have been zero-extended, turning a signed 'int' into a large unsigned 'long' value. We could just introduce a 'compat_sys_poll()' function for this, and that may eventually be what we have to do, but since the actual standard poll() semantics is *supposed* to be 'int', and since at least on x86-64 glibc sign-extends the argument before invocing the system call (so nobody can actually use a 64-bit timeout value in user space _anyway_, even in 64-bit binaries), the simpler solution would seem to be to just fix the definition of the system call to match what it should have been from the very start. If it turns out that somebody somehow circumvents the user-level libc 64-bit sign extension and actually uses a large unsigned 64-bit timeout despite that not being how poll() is supposed to work, we will need to do the compat_sys_poll() approach. Reported-by: Thomas Meyer <thomas@m3y3r.de> Acked-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1650 lines
43 KiB
ArmAsm
1650 lines
43 KiB
ArmAsm
/*
|
|
* arch/s390/kernel/compat_wrapper.S
|
|
* wrapper for 31 bit compatible system calls.
|
|
*
|
|
* Copyright (C) IBM Corp. 2000,2006
|
|
* Author(s): Gerhard Tonn (ton@de.ibm.com),
|
|
* Thomas Spatzier (tspat@de.ibm.com)
|
|
*/
|
|
|
|
#include <linux/linkage.h>
|
|
|
|
ENTRY(sys32_exit_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
jg sys_exit # branch to sys_exit
|
|
|
|
ENTRY(sys32_read_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # char *
|
|
llgfr %r4,%r4 # size_t
|
|
jg sys32_read # branch to sys_read
|
|
|
|
ENTRY(sys32_write_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # const char *
|
|
llgfr %r4,%r4 # size_t
|
|
jg sys32_write # branch to system call
|
|
|
|
ENTRY(sys32_open_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
lgfr %r3,%r3 # int
|
|
lgfr %r4,%r4 # int
|
|
jg sys_open # branch to system call
|
|
|
|
ENTRY(sys32_close_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
jg sys_close # branch to system call
|
|
|
|
ENTRY(sys32_creat_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
lgfr %r3,%r3 # int
|
|
jg sys_creat # branch to system call
|
|
|
|
ENTRY(sys32_link_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgtr %r3,%r3 # const char *
|
|
jg sys_link # branch to system call
|
|
|
|
ENTRY(sys32_unlink_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
jg sys_unlink # branch to system call
|
|
|
|
ENTRY(sys32_chdir_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
jg sys_chdir # branch to system call
|
|
|
|
ENTRY(sys32_time_wrapper)
|
|
llgtr %r2,%r2 # int *
|
|
jg compat_sys_time # branch to system call
|
|
|
|
ENTRY(sys32_mknod_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
lgfr %r3,%r3 # int
|
|
llgfr %r4,%r4 # dev
|
|
jg sys_mknod # branch to system call
|
|
|
|
ENTRY(sys32_chmod_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgfr %r3,%r3 # mode_t
|
|
jg sys_chmod # branch to system call
|
|
|
|
ENTRY(sys32_lchown16_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgfr %r3,%r3 # __kernel_old_uid_emu31_t
|
|
llgfr %r4,%r4 # __kernel_old_uid_emu31_t
|
|
jg sys32_lchown16 # branch to system call
|
|
|
|
ENTRY(sys32_lseek_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
lgfr %r3,%r3 # off_t
|
|
llgfr %r4,%r4 # unsigned int
|
|
jg sys_lseek # branch to system call
|
|
|
|
#sys32_getpid_wrapper # void
|
|
|
|
ENTRY(sys32_mount_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # char *
|
|
llgtr %r4,%r4 # char *
|
|
llgfr %r5,%r5 # unsigned long
|
|
llgtr %r6,%r6 # void *
|
|
jg compat_sys_mount # branch to system call
|
|
|
|
ENTRY(sys32_oldumount_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
jg sys_oldumount # branch to system call
|
|
|
|
ENTRY(sys32_setuid16_wrapper)
|
|
llgfr %r2,%r2 # __kernel_old_uid_emu31_t
|
|
jg sys32_setuid16 # branch to system call
|
|
|
|
#sys32_getuid16_wrapper # void
|
|
|
|
ENTRY(sys32_ptrace_wrapper)
|
|
lgfr %r2,%r2 # long
|
|
lgfr %r3,%r3 # long
|
|
llgtr %r4,%r4 # long
|
|
llgfr %r5,%r5 # long
|
|
jg compat_sys_ptrace # branch to system call
|
|
|
|
ENTRY(sys32_alarm_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
jg sys_alarm # branch to system call
|
|
|
|
ENTRY(compat_sys_utime_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # struct compat_utimbuf *
|
|
jg compat_sys_utime # branch to system call
|
|
|
|
ENTRY(sys32_access_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
lgfr %r3,%r3 # int
|
|
jg sys_access # branch to system call
|
|
|
|
ENTRY(sys32_nice_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
jg sys_nice # branch to system call
|
|
|
|
#sys32_sync_wrapper # void
|
|
|
|
ENTRY(sys32_kill_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
jg sys_kill # branch to system call
|
|
|
|
ENTRY(sys32_rename_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgtr %r3,%r3 # const char *
|
|
jg sys_rename # branch to system call
|
|
|
|
ENTRY(sys32_mkdir_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
lgfr %r3,%r3 # int
|
|
jg sys_mkdir # branch to system call
|
|
|
|
ENTRY(sys32_rmdir_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
jg sys_rmdir # branch to system call
|
|
|
|
ENTRY(sys32_dup_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
jg sys_dup # branch to system call
|
|
|
|
ENTRY(sys32_pipe_wrapper)
|
|
llgtr %r2,%r2 # u32 *
|
|
jg sys_pipe # branch to system call
|
|
|
|
ENTRY(compat_sys_times_wrapper)
|
|
llgtr %r2,%r2 # struct compat_tms *
|
|
jg compat_sys_times # branch to system call
|
|
|
|
ENTRY(sys32_brk_wrapper)
|
|
llgtr %r2,%r2 # unsigned long
|
|
jg sys_brk # branch to system call
|
|
|
|
ENTRY(sys32_setgid16_wrapper)
|
|
llgfr %r2,%r2 # __kernel_old_gid_emu31_t
|
|
jg sys32_setgid16 # branch to system call
|
|
|
|
#sys32_getgid16_wrapper # void
|
|
|
|
ENTRY(sys32_signal_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # __sighandler_t
|
|
jg sys_signal
|
|
|
|
#sys32_geteuid16_wrapper # void
|
|
|
|
#sys32_getegid16_wrapper # void
|
|
|
|
ENTRY(sys32_acct_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
jg sys_acct # branch to system call
|
|
|
|
ENTRY(sys32_umount_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
lgfr %r3,%r3 # int
|
|
jg sys_umount # branch to system call
|
|
|
|
ENTRY(compat_sys_ioctl_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # unsigned int
|
|
llgfr %r4,%r4 # unsigned int
|
|
jg compat_sys_ioctl # branch to system call
|
|
|
|
ENTRY(compat_sys_fcntl_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # unsigned int
|
|
llgfr %r4,%r4 # unsigned long
|
|
jg compat_sys_fcntl # branch to system call
|
|
|
|
ENTRY(sys32_setpgid_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
lgfr %r3,%r3 # pid_t
|
|
jg sys_setpgid # branch to system call
|
|
|
|
ENTRY(sys32_umask_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
jg sys_umask # branch to system call
|
|
|
|
ENTRY(sys32_chroot_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
jg sys_chroot # branch to system call
|
|
|
|
ENTRY(sys32_ustat_wrapper)
|
|
llgfr %r2,%r2 # dev_t
|
|
llgtr %r3,%r3 # struct ustat *
|
|
jg compat_sys_ustat
|
|
|
|
ENTRY(sys32_dup2_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # unsigned int
|
|
jg sys_dup2 # branch to system call
|
|
|
|
#sys32_getppid_wrapper # void
|
|
|
|
#sys32_getpgrp_wrapper # void
|
|
|
|
#sys32_setsid_wrapper # void
|
|
|
|
ENTRY(sys32_sigaction_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const struct old_sigaction *
|
|
llgtr %r4,%r4 # struct old_sigaction32 *
|
|
jg sys32_sigaction # branch to system call
|
|
|
|
ENTRY(sys32_setreuid16_wrapper)
|
|
llgfr %r2,%r2 # __kernel_old_uid_emu31_t
|
|
llgfr %r3,%r3 # __kernel_old_uid_emu31_t
|
|
jg sys32_setreuid16 # branch to system call
|
|
|
|
ENTRY(sys32_setregid16_wrapper)
|
|
llgfr %r2,%r2 # __kernel_old_gid_emu31_t
|
|
llgfr %r3,%r3 # __kernel_old_gid_emu31_t
|
|
jg sys32_setregid16 # branch to system call
|
|
|
|
ENTRY(sys_sigsuspend_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
llgfr %r4,%r4 # old_sigset_t
|
|
jg sys_sigsuspend
|
|
|
|
ENTRY(compat_sys_sigpending_wrapper)
|
|
llgtr %r2,%r2 # compat_old_sigset_t *
|
|
jg compat_sys_sigpending # branch to system call
|
|
|
|
ENTRY(sys32_sethostname_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
lgfr %r3,%r3 # int
|
|
jg sys_sethostname # branch to system call
|
|
|
|
ENTRY(compat_sys_setrlimit_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # struct rlimit_emu31 *
|
|
jg compat_sys_setrlimit # branch to system call
|
|
|
|
ENTRY(compat_sys_old_getrlimit_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # struct rlimit_emu31 *
|
|
jg compat_sys_old_getrlimit # branch to system call
|
|
|
|
ENTRY(compat_sys_getrlimit_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # struct rlimit_emu31 *
|
|
jg compat_sys_getrlimit # branch to system call
|
|
|
|
ENTRY(sys32_mmap2_wrapper)
|
|
llgtr %r2,%r2 # struct mmap_arg_struct_emu31 *
|
|
jg sys32_mmap2 # branch to system call
|
|
|
|
ENTRY(compat_sys_getrusage_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # struct rusage_emu31 *
|
|
jg compat_sys_getrusage # branch to system call
|
|
|
|
ENTRY(compat_sys_gettimeofday_wrapper)
|
|
llgtr %r2,%r2 # struct timeval_emu31 *
|
|
llgtr %r3,%r3 # struct timezone *
|
|
jg compat_sys_gettimeofday # branch to system call
|
|
|
|
ENTRY(compat_sys_settimeofday_wrapper)
|
|
llgtr %r2,%r2 # struct timeval_emu31 *
|
|
llgtr %r3,%r3 # struct timezone *
|
|
jg compat_sys_settimeofday # branch to system call
|
|
|
|
ENTRY(sys32_getgroups16_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
|
|
jg sys32_getgroups16 # branch to system call
|
|
|
|
ENTRY(sys32_setgroups16_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
|
|
jg sys32_setgroups16 # branch to system call
|
|
|
|
ENTRY(sys32_symlink_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgtr %r3,%r3 # const char *
|
|
jg sys_symlink # branch to system call
|
|
|
|
ENTRY(sys32_readlink_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgtr %r3,%r3 # char *
|
|
lgfr %r4,%r4 # int
|
|
jg sys_readlink # branch to system call
|
|
|
|
ENTRY(sys32_uselib_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
jg sys_uselib # branch to system call
|
|
|
|
ENTRY(sys32_swapon_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
lgfr %r3,%r3 # int
|
|
jg sys_swapon # branch to system call
|
|
|
|
ENTRY(sys32_reboot_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
llgfr %r4,%r4 # unsigned int
|
|
llgtr %r5,%r5 # void *
|
|
jg sys_reboot # branch to system call
|
|
|
|
ENTRY(old32_readdir_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # void *
|
|
llgfr %r4,%r4 # unsigned int
|
|
jg compat_sys_old_readdir # branch to system call
|
|
|
|
ENTRY(old32_mmap_wrapper)
|
|
llgtr %r2,%r2 # struct mmap_arg_struct_emu31 *
|
|
jg old32_mmap # branch to system call
|
|
|
|
ENTRY(sys32_munmap_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgfr %r3,%r3 # size_t
|
|
jg sys_munmap # branch to system call
|
|
|
|
ENTRY(sys32_truncate_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
lgfr %r3,%r3 # long
|
|
jg sys_truncate # branch to system call
|
|
|
|
ENTRY(sys32_ftruncate_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # unsigned long
|
|
jg sys_ftruncate # branch to system call
|
|
|
|
ENTRY(sys32_fchmod_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # mode_t
|
|
jg sys_fchmod # branch to system call
|
|
|
|
ENTRY(sys32_fchown16_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # compat_uid_t
|
|
llgfr %r4,%r4 # compat_uid_t
|
|
jg sys32_fchown16 # branch to system call
|
|
|
|
ENTRY(sys32_getpriority_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
jg sys_getpriority # branch to system call
|
|
|
|
ENTRY(sys32_setpriority_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
lgfr %r4,%r4 # int
|
|
jg sys_setpriority # branch to system call
|
|
|
|
ENTRY(compat_sys_statfs_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # struct compat_statfs *
|
|
jg compat_sys_statfs # branch to system call
|
|
|
|
ENTRY(compat_sys_fstatfs_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # struct compat_statfs *
|
|
jg compat_sys_fstatfs # branch to system call
|
|
|
|
ENTRY(compat_sys_socketcall_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # u32 *
|
|
jg compat_sys_socketcall # branch to system call
|
|
|
|
ENTRY(sys32_syslog_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # char *
|
|
lgfr %r4,%r4 # int
|
|
jg sys_syslog # branch to system call
|
|
|
|
ENTRY(compat_sys_setitimer_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # struct itimerval_emu31 *
|
|
llgtr %r4,%r4 # struct itimerval_emu31 *
|
|
jg compat_sys_setitimer # branch to system call
|
|
|
|
ENTRY(compat_sys_getitimer_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # struct itimerval_emu31 *
|
|
jg compat_sys_getitimer # branch to system call
|
|
|
|
ENTRY(compat_sys_newstat_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # struct stat_emu31 *
|
|
jg compat_sys_newstat # branch to system call
|
|
|
|
ENTRY(compat_sys_newlstat_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # struct stat_emu31 *
|
|
jg compat_sys_newlstat # branch to system call
|
|
|
|
ENTRY(compat_sys_newfstat_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # struct stat_emu31 *
|
|
jg compat_sys_newfstat # branch to system call
|
|
|
|
#sys32_vhangup_wrapper # void
|
|
|
|
ENTRY(compat_sys_wait4_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
llgtr %r3,%r3 # unsigned int *
|
|
lgfr %r4,%r4 # int
|
|
llgtr %r5,%r5 # struct rusage *
|
|
jg compat_sys_wait4 # branch to system call
|
|
|
|
ENTRY(sys32_swapoff_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
jg sys_swapoff # branch to system call
|
|
|
|
ENTRY(compat_sys_sysinfo_wrapper)
|
|
llgtr %r2,%r2 # struct sysinfo_emu31 *
|
|
jg compat_sys_sysinfo # branch to system call
|
|
|
|
ENTRY(sys32_ipc_wrapper)
|
|
llgfr %r2,%r2 # uint
|
|
lgfr %r3,%r3 # int
|
|
lgfr %r4,%r4 # int
|
|
lgfr %r5,%r5 # int
|
|
llgfr %r6,%r6 # u32
|
|
jg sys32_ipc # branch to system call
|
|
|
|
ENTRY(sys32_fsync_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
jg sys_fsync # branch to system call
|
|
|
|
#sys32_sigreturn_wrapper # done in sigreturn_glue
|
|
|
|
#sys32_clone_wrapper # done in clone_glue
|
|
|
|
ENTRY(sys32_setdomainname_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
lgfr %r3,%r3 # int
|
|
jg sys_setdomainname # branch to system call
|
|
|
|
ENTRY(sys32_newuname_wrapper)
|
|
llgtr %r2,%r2 # struct new_utsname *
|
|
jg sys_newuname # branch to system call
|
|
|
|
ENTRY(compat_sys_adjtimex_wrapper)
|
|
llgtr %r2,%r2 # struct compat_timex *
|
|
jg compat_sys_adjtimex # branch to system call
|
|
|
|
ENTRY(sys32_mprotect_wrapper)
|
|
llgtr %r2,%r2 # unsigned long (actually pointer
|
|
llgfr %r3,%r3 # size_t
|
|
llgfr %r4,%r4 # unsigned long
|
|
jg sys_mprotect # branch to system call
|
|
|
|
ENTRY(compat_sys_sigprocmask_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # compat_old_sigset_t *
|
|
llgtr %r4,%r4 # compat_old_sigset_t *
|
|
jg compat_sys_sigprocmask # branch to system call
|
|
|
|
ENTRY(sys_init_module_wrapper)
|
|
llgtr %r2,%r2 # void *
|
|
llgfr %r3,%r3 # unsigned long
|
|
llgtr %r4,%r4 # char *
|
|
jg sys_init_module # branch to system call
|
|
|
|
ENTRY(sys_delete_module_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgfr %r3,%r3 # unsigned int
|
|
jg sys_delete_module # branch to system call
|
|
|
|
ENTRY(sys32_quotactl_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # const char *
|
|
llgfr %r4,%r4 # qid_t
|
|
llgtr %r5,%r5 # caddr_t
|
|
jg sys_quotactl # branch to system call
|
|
|
|
ENTRY(sys32_getpgid_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
jg sys_getpgid # branch to system call
|
|
|
|
ENTRY(sys32_fchdir_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
jg sys_fchdir # branch to system call
|
|
|
|
ENTRY(sys32_bdflush_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # long
|
|
jg sys_bdflush # branch to system call
|
|
|
|
ENTRY(sys32_sysfs_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgfr %r3,%r3 # unsigned long
|
|
llgfr %r4,%r4 # unsigned long
|
|
jg sys_sysfs # branch to system call
|
|
|
|
ENTRY(sys32_personality_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
jg sys_s390_personality # branch to system call
|
|
|
|
ENTRY(sys32_setfsuid16_wrapper)
|
|
llgfr %r2,%r2 # __kernel_old_uid_emu31_t
|
|
jg sys32_setfsuid16 # branch to system call
|
|
|
|
ENTRY(sys32_setfsgid16_wrapper)
|
|
llgfr %r2,%r2 # __kernel_old_gid_emu31_t
|
|
jg sys32_setfsgid16 # branch to system call
|
|
|
|
ENTRY(sys32_llseek_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # unsigned long
|
|
llgfr %r4,%r4 # unsigned long
|
|
llgtr %r5,%r5 # loff_t *
|
|
llgfr %r6,%r6 # unsigned int
|
|
jg sys_llseek # branch to system call
|
|
|
|
ENTRY(sys32_getdents_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # void *
|
|
llgfr %r4,%r4 # unsigned int
|
|
jg compat_sys_getdents # branch to system call
|
|
|
|
ENTRY(compat_sys_select_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # compat_fd_set *
|
|
llgtr %r4,%r4 # compat_fd_set *
|
|
llgtr %r5,%r5 # compat_fd_set *
|
|
llgtr %r6,%r6 # struct compat_timeval *
|
|
jg compat_sys_select # branch to system call
|
|
|
|
ENTRY(sys32_flock_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # unsigned int
|
|
jg sys_flock # branch to system call
|
|
|
|
ENTRY(sys32_msync_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgfr %r3,%r3 # size_t
|
|
lgfr %r4,%r4 # int
|
|
jg sys_msync # branch to system call
|
|
|
|
ENTRY(compat_sys_readv_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const struct compat_iovec *
|
|
llgfr %r4,%r4 # unsigned long
|
|
jg compat_sys_readv # branch to system call
|
|
|
|
ENTRY(compat_sys_writev_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const struct compat_iovec *
|
|
llgfr %r4,%r4 # unsigned long
|
|
jg compat_sys_writev # branch to system call
|
|
|
|
ENTRY(sys32_getsid_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
jg sys_getsid # branch to system call
|
|
|
|
ENTRY(sys32_fdatasync_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
jg sys_fdatasync # branch to system call
|
|
|
|
ENTRY(sys32_mlock_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgfr %r3,%r3 # size_t
|
|
jg sys_mlock # branch to system call
|
|
|
|
ENTRY(sys32_munlock_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgfr %r3,%r3 # size_t
|
|
jg sys_munlock # branch to system call
|
|
|
|
ENTRY(sys32_mlockall_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
jg sys_mlockall # branch to system call
|
|
|
|
#sys32_munlockall_wrapper # void
|
|
|
|
ENTRY(sys32_sched_setparam_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
llgtr %r3,%r3 # struct sched_param *
|
|
jg sys_sched_setparam # branch to system call
|
|
|
|
ENTRY(sys32_sched_getparam_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
llgtr %r3,%r3 # struct sched_param *
|
|
jg sys_sched_getparam # branch to system call
|
|
|
|
ENTRY(sys32_sched_setscheduler_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
lgfr %r3,%r3 # int
|
|
llgtr %r4,%r4 # struct sched_param *
|
|
jg sys_sched_setscheduler # branch to system call
|
|
|
|
ENTRY(sys32_sched_getscheduler_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
jg sys_sched_getscheduler # branch to system call
|
|
|
|
#sys32_sched_yield_wrapper # void
|
|
|
|
ENTRY(sys32_sched_get_priority_max_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
jg sys_sched_get_priority_max # branch to system call
|
|
|
|
ENTRY(sys32_sched_get_priority_min_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
jg sys_sched_get_priority_min # branch to system call
|
|
|
|
ENTRY(sys32_sched_rr_get_interval_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
llgtr %r3,%r3 # struct compat_timespec *
|
|
jg sys32_sched_rr_get_interval # branch to system call
|
|
|
|
ENTRY(compat_sys_nanosleep_wrapper)
|
|
llgtr %r2,%r2 # struct compat_timespec *
|
|
llgtr %r3,%r3 # struct compat_timespec *
|
|
jg compat_sys_nanosleep # branch to system call
|
|
|
|
ENTRY(sys32_mremap_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgfr %r3,%r3 # unsigned long
|
|
llgfr %r4,%r4 # unsigned long
|
|
llgfr %r5,%r5 # unsigned long
|
|
llgfr %r6,%r6 # unsigned long
|
|
jg sys_mremap # branch to system call
|
|
|
|
ENTRY(sys32_setresuid16_wrapper)
|
|
llgfr %r2,%r2 # __kernel_old_uid_emu31_t
|
|
llgfr %r3,%r3 # __kernel_old_uid_emu31_t
|
|
llgfr %r4,%r4 # __kernel_old_uid_emu31_t
|
|
jg sys32_setresuid16 # branch to system call
|
|
|
|
ENTRY(sys32_getresuid16_wrapper)
|
|
llgtr %r2,%r2 # __kernel_old_uid_emu31_t *
|
|
llgtr %r3,%r3 # __kernel_old_uid_emu31_t *
|
|
llgtr %r4,%r4 # __kernel_old_uid_emu31_t *
|
|
jg sys32_getresuid16 # branch to system call
|
|
|
|
ENTRY(sys32_poll_wrapper)
|
|
llgtr %r2,%r2 # struct pollfd *
|
|
llgfr %r3,%r3 # unsigned int
|
|
lgfr %r4,%r4 # int
|
|
jg sys_poll # branch to system call
|
|
|
|
ENTRY(sys32_setresgid16_wrapper)
|
|
llgfr %r2,%r2 # __kernel_old_gid_emu31_t
|
|
llgfr %r3,%r3 # __kernel_old_gid_emu31_t
|
|
llgfr %r4,%r4 # __kernel_old_gid_emu31_t
|
|
jg sys32_setresgid16 # branch to system call
|
|
|
|
ENTRY(sys32_getresgid16_wrapper)
|
|
llgtr %r2,%r2 # __kernel_old_gid_emu31_t *
|
|
llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
|
|
llgtr %r4,%r4 # __kernel_old_gid_emu31_t *
|
|
jg sys32_getresgid16 # branch to system call
|
|
|
|
ENTRY(sys32_prctl_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgfr %r3,%r3 # unsigned long
|
|
llgfr %r4,%r4 # unsigned long
|
|
llgfr %r5,%r5 # unsigned long
|
|
llgfr %r6,%r6 # unsigned long
|
|
jg sys_prctl # branch to system call
|
|
|
|
#sys32_rt_sigreturn_wrapper # done in rt_sigreturn_glue
|
|
|
|
ENTRY(sys32_rt_sigaction_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const struct sigaction_emu31 *
|
|
llgtr %r4,%r4 # const struct sigaction_emu31 *
|
|
llgfr %r5,%r5 # size_t
|
|
jg sys32_rt_sigaction # branch to system call
|
|
|
|
ENTRY(sys32_rt_sigprocmask_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # old_sigset_emu31 *
|
|
llgtr %r4,%r4 # old_sigset_emu31 *
|
|
llgfr %r5,%r5 # size_t
|
|
jg sys32_rt_sigprocmask # branch to system call
|
|
|
|
ENTRY(sys32_rt_sigpending_wrapper)
|
|
llgtr %r2,%r2 # sigset_emu31 *
|
|
llgfr %r3,%r3 # size_t
|
|
jg sys32_rt_sigpending # branch to system call
|
|
|
|
ENTRY(compat_sys_rt_sigtimedwait_wrapper)
|
|
llgtr %r2,%r2 # const sigset_emu31_t *
|
|
llgtr %r3,%r3 # siginfo_emu31_t *
|
|
llgtr %r4,%r4 # const struct compat_timespec *
|
|
llgfr %r5,%r5 # size_t
|
|
jg compat_sys_rt_sigtimedwait # branch to system call
|
|
|
|
ENTRY(sys32_rt_sigqueueinfo_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
llgtr %r4,%r4 # siginfo_emu31_t *
|
|
jg sys32_rt_sigqueueinfo # branch to system call
|
|
|
|
ENTRY(compat_sys_rt_sigsuspend_wrapper)
|
|
llgtr %r2,%r2 # compat_sigset_t *
|
|
llgfr %r3,%r3 # compat_size_t
|
|
jg compat_sys_rt_sigsuspend
|
|
|
|
ENTRY(sys32_pread64_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # char *
|
|
llgfr %r4,%r4 # size_t
|
|
llgfr %r5,%r5 # u32
|
|
llgfr %r6,%r6 # u32
|
|
jg sys32_pread64 # branch to system call
|
|
|
|
ENTRY(sys32_pwrite64_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # const char *
|
|
llgfr %r4,%r4 # size_t
|
|
llgfr %r5,%r5 # u32
|
|
llgfr %r6,%r6 # u32
|
|
jg sys32_pwrite64 # branch to system call
|
|
|
|
ENTRY(sys32_chown16_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgfr %r3,%r3 # __kernel_old_uid_emu31_t
|
|
llgfr %r4,%r4 # __kernel_old_gid_emu31_t
|
|
jg sys32_chown16 # branch to system call
|
|
|
|
ENTRY(sys32_getcwd_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgfr %r3,%r3 # unsigned long
|
|
jg sys_getcwd # branch to system call
|
|
|
|
ENTRY(sys32_capget_wrapper)
|
|
llgtr %r2,%r2 # cap_user_header_t
|
|
llgtr %r3,%r3 # cap_user_data_t
|
|
jg sys_capget # branch to system call
|
|
|
|
ENTRY(sys32_capset_wrapper)
|
|
llgtr %r2,%r2 # cap_user_header_t
|
|
llgtr %r3,%r3 # const cap_user_data_t
|
|
jg sys_capset # branch to system call
|
|
|
|
ENTRY(sys32_sigaltstack_wrapper)
|
|
llgtr %r2,%r2 # const stack_emu31_t *
|
|
llgtr %r3,%r3 # stack_emu31_t *
|
|
jg sys32_sigaltstack
|
|
|
|
ENTRY(sys32_sendfile_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
llgtr %r4,%r4 # __kernel_off_emu31_t *
|
|
llgfr %r5,%r5 # size_t
|
|
jg sys32_sendfile # branch to system call
|
|
|
|
#sys32_vfork_wrapper # done in vfork_glue
|
|
|
|
ENTRY(sys32_truncate64_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgfr %r3,%r3 # unsigned long
|
|
llgfr %r4,%r4 # unsigned long
|
|
jg sys32_truncate64 # branch to system call
|
|
|
|
ENTRY(sys32_ftruncate64_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # unsigned long
|
|
llgfr %r4,%r4 # unsigned long
|
|
jg sys32_ftruncate64 # branch to system call
|
|
|
|
ENTRY(sys32_lchown_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgfr %r3,%r3 # uid_t
|
|
llgfr %r4,%r4 # gid_t
|
|
jg sys_lchown # branch to system call
|
|
|
|
#sys32_getuid_wrapper # void
|
|
#sys32_getgid_wrapper # void
|
|
#sys32_geteuid_wrapper # void
|
|
#sys32_getegid_wrapper # void
|
|
|
|
ENTRY(sys32_setreuid_wrapper)
|
|
llgfr %r2,%r2 # uid_t
|
|
llgfr %r3,%r3 # uid_t
|
|
jg sys_setreuid # branch to system call
|
|
|
|
ENTRY(sys32_setregid_wrapper)
|
|
llgfr %r2,%r2 # gid_t
|
|
llgfr %r3,%r3 # gid_t
|
|
jg sys_setregid # branch to system call
|
|
|
|
ENTRY(sys32_getgroups_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # gid_t *
|
|
jg sys_getgroups # branch to system call
|
|
|
|
ENTRY(sys32_setgroups_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # gid_t *
|
|
jg sys_setgroups # branch to system call
|
|
|
|
ENTRY(sys32_fchown_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # uid_t
|
|
llgfr %r4,%r4 # gid_t
|
|
jg sys_fchown # branch to system call
|
|
|
|
ENTRY(sys32_setresuid_wrapper)
|
|
llgfr %r2,%r2 # uid_t
|
|
llgfr %r3,%r3 # uid_t
|
|
llgfr %r4,%r4 # uid_t
|
|
jg sys_setresuid # branch to system call
|
|
|
|
ENTRY(sys32_getresuid_wrapper)
|
|
llgtr %r2,%r2 # uid_t *
|
|
llgtr %r3,%r3 # uid_t *
|
|
llgtr %r4,%r4 # uid_t *
|
|
jg sys_getresuid # branch to system call
|
|
|
|
ENTRY(sys32_setresgid_wrapper)
|
|
llgfr %r2,%r2 # gid_t
|
|
llgfr %r3,%r3 # gid_t
|
|
llgfr %r4,%r4 # gid_t
|
|
jg sys_setresgid # branch to system call
|
|
|
|
ENTRY(sys32_getresgid_wrapper)
|
|
llgtr %r2,%r2 # gid_t *
|
|
llgtr %r3,%r3 # gid_t *
|
|
llgtr %r4,%r4 # gid_t *
|
|
jg sys_getresgid # branch to system call
|
|
|
|
ENTRY(sys32_chown_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgfr %r3,%r3 # uid_t
|
|
llgfr %r4,%r4 # gid_t
|
|
jg sys_chown # branch to system call
|
|
|
|
ENTRY(sys32_setuid_wrapper)
|
|
llgfr %r2,%r2 # uid_t
|
|
jg sys_setuid # branch to system call
|
|
|
|
ENTRY(sys32_setgid_wrapper)
|
|
llgfr %r2,%r2 # gid_t
|
|
jg sys_setgid # branch to system call
|
|
|
|
ENTRY(sys32_setfsuid_wrapper)
|
|
llgfr %r2,%r2 # uid_t
|
|
jg sys_setfsuid # branch to system call
|
|
|
|
ENTRY(sys32_setfsgid_wrapper)
|
|
llgfr %r2,%r2 # gid_t
|
|
jg sys_setfsgid # branch to system call
|
|
|
|
ENTRY(sys32_pivot_root_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgtr %r3,%r3 # const char *
|
|
jg sys_pivot_root # branch to system call
|
|
|
|
ENTRY(sys32_mincore_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgfr %r3,%r3 # size_t
|
|
llgtr %r4,%r4 # unsigned char *
|
|
jg sys_mincore # branch to system call
|
|
|
|
ENTRY(sys32_madvise_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgfr %r3,%r3 # size_t
|
|
lgfr %r4,%r4 # int
|
|
jg sys_madvise # branch to system call
|
|
|
|
ENTRY(sys32_getdents64_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # void *
|
|
llgfr %r4,%r4 # unsigned int
|
|
jg sys_getdents64 # branch to system call
|
|
|
|
ENTRY(compat_sys_fcntl64_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # unsigned int
|
|
llgfr %r4,%r4 # unsigned long
|
|
jg compat_sys_fcntl64 # branch to system call
|
|
|
|
ENTRY(sys32_stat64_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # struct stat64 *
|
|
jg sys32_stat64 # branch to system call
|
|
|
|
ENTRY(sys32_lstat64_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # struct stat64 *
|
|
jg sys32_lstat64 # branch to system call
|
|
|
|
ENTRY(sys32_stime_wrapper)
|
|
llgtr %r2,%r2 # long *
|
|
jg compat_sys_stime # branch to system call
|
|
|
|
ENTRY(sys32_sysctl_wrapper)
|
|
llgtr %r2,%r2 # struct compat_sysctl_args *
|
|
jg compat_sys_sysctl
|
|
|
|
ENTRY(sys32_fstat64_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgtr %r3,%r3 # struct stat64 *
|
|
jg sys32_fstat64 # branch to system call
|
|
|
|
ENTRY(compat_sys_futex_wrapper)
|
|
llgtr %r2,%r2 # u32 *
|
|
lgfr %r3,%r3 # int
|
|
lgfr %r4,%r4 # int
|
|
llgtr %r5,%r5 # struct compat_timespec *
|
|
llgtr %r6,%r6 # u32 *
|
|
lgf %r0,164(%r15) # int
|
|
stg %r0,160(%r15)
|
|
jg compat_sys_futex # branch to system call
|
|
|
|
ENTRY(sys32_setxattr_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # char *
|
|
llgtr %r4,%r4 # void *
|
|
llgfr %r5,%r5 # size_t
|
|
lgfr %r6,%r6 # int
|
|
jg sys_setxattr
|
|
|
|
ENTRY(sys32_lsetxattr_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # char *
|
|
llgtr %r4,%r4 # void *
|
|
llgfr %r5,%r5 # size_t
|
|
lgfr %r6,%r6 # int
|
|
jg sys_lsetxattr
|
|
|
|
ENTRY(sys32_fsetxattr_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # char *
|
|
llgtr %r4,%r4 # void *
|
|
llgfr %r5,%r5 # size_t
|
|
lgfr %r6,%r6 # int
|
|
jg sys_fsetxattr
|
|
|
|
ENTRY(sys32_getxattr_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # char *
|
|
llgtr %r4,%r4 # void *
|
|
llgfr %r5,%r5 # size_t
|
|
jg sys_getxattr
|
|
|
|
ENTRY(sys32_lgetxattr_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # char *
|
|
llgtr %r4,%r4 # void *
|
|
llgfr %r5,%r5 # size_t
|
|
jg sys_lgetxattr
|
|
|
|
ENTRY(sys32_fgetxattr_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # char *
|
|
llgtr %r4,%r4 # void *
|
|
llgfr %r5,%r5 # size_t
|
|
jg sys_fgetxattr
|
|
|
|
ENTRY(sys32_listxattr_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # char *
|
|
llgfr %r4,%r4 # size_t
|
|
jg sys_listxattr
|
|
|
|
ENTRY(sys32_llistxattr_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # char *
|
|
llgfr %r4,%r4 # size_t
|
|
jg sys_llistxattr
|
|
|
|
ENTRY(sys32_flistxattr_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # char *
|
|
llgfr %r4,%r4 # size_t
|
|
jg sys_flistxattr
|
|
|
|
ENTRY(sys32_removexattr_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # char *
|
|
jg sys_removexattr
|
|
|
|
ENTRY(sys32_lremovexattr_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # char *
|
|
jg sys_lremovexattr
|
|
|
|
ENTRY(sys32_fremovexattr_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # char *
|
|
jg sys_fremovexattr
|
|
|
|
ENTRY(sys32_sched_setaffinity_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgfr %r3,%r3 # unsigned int
|
|
llgtr %r4,%r4 # unsigned long *
|
|
jg compat_sys_sched_setaffinity
|
|
|
|
ENTRY(sys32_sched_getaffinity_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgfr %r3,%r3 # unsigned int
|
|
llgtr %r4,%r4 # unsigned long *
|
|
jg compat_sys_sched_getaffinity
|
|
|
|
ENTRY(sys32_exit_group_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
jg sys_exit_group # branch to system call
|
|
|
|
ENTRY(sys32_set_tid_address_wrapper)
|
|
llgtr %r2,%r2 # int *
|
|
jg sys_set_tid_address # branch to system call
|
|
|
|
ENTRY(sys_epoll_create_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
jg sys_epoll_create # branch to system call
|
|
|
|
ENTRY(sys_epoll_ctl_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
lgfr %r4,%r4 # int
|
|
llgtr %r5,%r5 # struct epoll_event *
|
|
jg sys_epoll_ctl # branch to system call
|
|
|
|
ENTRY(sys_epoll_wait_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # struct epoll_event *
|
|
lgfr %r4,%r4 # int
|
|
lgfr %r5,%r5 # int
|
|
jg sys_epoll_wait # branch to system call
|
|
|
|
ENTRY(sys32_lookup_dcookie_wrapper)
|
|
sllg %r2,%r2,32 # get high word of 64bit dcookie
|
|
or %r2,%r3 # get low word of 64bit dcookie
|
|
llgtr %r3,%r4 # char *
|
|
llgfr %r4,%r5 # size_t
|
|
jg sys_lookup_dcookie
|
|
|
|
ENTRY(sys32_fadvise64_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
sllg %r3,%r3,32 # get high word of 64bit loff_t
|
|
or %r3,%r4 # get low word of 64bit loff_t
|
|
llgfr %r4,%r5 # size_t (unsigned long)
|
|
lgfr %r5,%r6 # int
|
|
jg sys32_fadvise64
|
|
|
|
ENTRY(sys32_fadvise64_64_wrapper)
|
|
llgtr %r2,%r2 # struct fadvise64_64_args *
|
|
jg sys32_fadvise64_64
|
|
|
|
ENTRY(sys32_clock_settime_wrapper)
|
|
lgfr %r2,%r2 # clockid_t (int)
|
|
llgtr %r3,%r3 # struct compat_timespec *
|
|
jg compat_sys_clock_settime
|
|
|
|
ENTRY(sys32_clock_gettime_wrapper)
|
|
lgfr %r2,%r2 # clockid_t (int)
|
|
llgtr %r3,%r3 # struct compat_timespec *
|
|
jg compat_sys_clock_gettime
|
|
|
|
ENTRY(sys32_clock_getres_wrapper)
|
|
lgfr %r2,%r2 # clockid_t (int)
|
|
llgtr %r3,%r3 # struct compat_timespec *
|
|
jg compat_sys_clock_getres
|
|
|
|
ENTRY(sys32_clock_nanosleep_wrapper)
|
|
lgfr %r2,%r2 # clockid_t (int)
|
|
lgfr %r3,%r3 # int
|
|
llgtr %r4,%r4 # struct compat_timespec *
|
|
llgtr %r5,%r5 # struct compat_timespec *
|
|
jg compat_sys_clock_nanosleep
|
|
|
|
ENTRY(sys32_timer_create_wrapper)
|
|
lgfr %r2,%r2 # timer_t (int)
|
|
llgtr %r3,%r3 # struct compat_sigevent *
|
|
llgtr %r4,%r4 # timer_t *
|
|
jg compat_sys_timer_create
|
|
|
|
ENTRY(sys32_timer_settime_wrapper)
|
|
lgfr %r2,%r2 # timer_t (int)
|
|
lgfr %r3,%r3 # int
|
|
llgtr %r4,%r4 # struct compat_itimerspec *
|
|
llgtr %r5,%r5 # struct compat_itimerspec *
|
|
jg compat_sys_timer_settime
|
|
|
|
ENTRY(sys32_timer_gettime_wrapper)
|
|
lgfr %r2,%r2 # timer_t (int)
|
|
llgtr %r3,%r3 # struct compat_itimerspec *
|
|
jg compat_sys_timer_gettime
|
|
|
|
ENTRY(sys32_timer_getoverrun_wrapper)
|
|
lgfr %r2,%r2 # timer_t (int)
|
|
jg sys_timer_getoverrun
|
|
|
|
ENTRY(sys32_timer_delete_wrapper)
|
|
lgfr %r2,%r2 # timer_t (int)
|
|
jg sys_timer_delete
|
|
|
|
ENTRY(sys32_io_setup_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # u32 *
|
|
jg compat_sys_io_setup
|
|
|
|
ENTRY(sys32_io_destroy_wrapper)
|
|
llgfr %r2,%r2 # (aio_context_t) u32
|
|
jg sys_io_destroy
|
|
|
|
ENTRY(sys32_io_getevents_wrapper)
|
|
llgfr %r2,%r2 # (aio_context_t) u32
|
|
lgfr %r3,%r3 # long
|
|
lgfr %r4,%r4 # long
|
|
llgtr %r5,%r5 # struct io_event *
|
|
llgtr %r6,%r6 # struct compat_timespec *
|
|
jg compat_sys_io_getevents
|
|
|
|
ENTRY(sys32_io_submit_wrapper)
|
|
llgfr %r2,%r2 # (aio_context_t) u32
|
|
lgfr %r3,%r3 # long
|
|
llgtr %r4,%r4 # struct iocb **
|
|
jg compat_sys_io_submit
|
|
|
|
ENTRY(sys32_io_cancel_wrapper)
|
|
llgfr %r2,%r2 # (aio_context_t) u32
|
|
llgtr %r3,%r3 # struct iocb *
|
|
llgtr %r4,%r4 # struct io_event *
|
|
jg sys_io_cancel
|
|
|
|
ENTRY(compat_sys_statfs64_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgfr %r3,%r3 # compat_size_t
|
|
llgtr %r4,%r4 # struct compat_statfs64 *
|
|
jg compat_sys_statfs64
|
|
|
|
ENTRY(compat_sys_fstatfs64_wrapper)
|
|
llgfr %r2,%r2 # unsigned int fd
|
|
llgfr %r3,%r3 # compat_size_t
|
|
llgtr %r4,%r4 # struct compat_statfs64 *
|
|
jg compat_sys_fstatfs64
|
|
|
|
ENTRY(compat_sys_mq_open_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
lgfr %r3,%r3 # int
|
|
llgfr %r4,%r4 # mode_t
|
|
llgtr %r5,%r5 # struct compat_mq_attr *
|
|
jg compat_sys_mq_open
|
|
|
|
ENTRY(sys32_mq_unlink_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
jg sys_mq_unlink
|
|
|
|
ENTRY(compat_sys_mq_timedsend_wrapper)
|
|
lgfr %r2,%r2 # mqd_t
|
|
llgtr %r3,%r3 # const char *
|
|
llgfr %r4,%r4 # size_t
|
|
llgfr %r5,%r5 # unsigned int
|
|
llgtr %r6,%r6 # const struct compat_timespec *
|
|
jg compat_sys_mq_timedsend
|
|
|
|
ENTRY(compat_sys_mq_timedreceive_wrapper)
|
|
lgfr %r2,%r2 # mqd_t
|
|
llgtr %r3,%r3 # char *
|
|
llgfr %r4,%r4 # size_t
|
|
llgtr %r5,%r5 # unsigned int *
|
|
llgtr %r6,%r6 # const struct compat_timespec *
|
|
jg compat_sys_mq_timedreceive
|
|
|
|
ENTRY(compat_sys_mq_notify_wrapper)
|
|
lgfr %r2,%r2 # mqd_t
|
|
llgtr %r3,%r3 # struct compat_sigevent *
|
|
jg compat_sys_mq_notify
|
|
|
|
ENTRY(compat_sys_mq_getsetattr_wrapper)
|
|
lgfr %r2,%r2 # mqd_t
|
|
llgtr %r3,%r3 # struct compat_mq_attr *
|
|
llgtr %r4,%r4 # struct compat_mq_attr *
|
|
jg compat_sys_mq_getsetattr
|
|
|
|
ENTRY(compat_sys_add_key_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgtr %r3,%r3 # const char *
|
|
llgtr %r4,%r4 # const void *
|
|
llgfr %r5,%r5 # size_t
|
|
llgfr %r6,%r6 # (key_serial_t) u32
|
|
jg sys_add_key
|
|
|
|
ENTRY(compat_sys_request_key_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
llgtr %r3,%r3 # const char *
|
|
llgtr %r4,%r4 # const void *
|
|
llgfr %r5,%r5 # (key_serial_t) u32
|
|
jg sys_request_key
|
|
|
|
ENTRY(sys32_remap_file_pages_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgfr %r3,%r3 # unsigned long
|
|
llgfr %r4,%r4 # unsigned long
|
|
llgfr %r5,%r5 # unsigned long
|
|
llgfr %r6,%r6 # unsigned long
|
|
jg sys_remap_file_pages
|
|
|
|
ENTRY(compat_sys_waitid_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # pid_t
|
|
llgtr %r4,%r4 # siginfo_emu31_t *
|
|
lgfr %r5,%r5 # int
|
|
llgtr %r6,%r6 # struct rusage_emu31 *
|
|
jg compat_sys_waitid
|
|
|
|
ENTRY(compat_sys_kexec_load_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgfr %r3,%r3 # unsigned long
|
|
llgtr %r4,%r4 # struct kexec_segment *
|
|
llgfr %r5,%r5 # unsigned long
|
|
jg compat_sys_kexec_load
|
|
|
|
ENTRY(sys_ioprio_set_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
lgfr %r4,%r4 # int
|
|
jg sys_ioprio_set
|
|
|
|
ENTRY(sys_ioprio_get_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
jg sys_ioprio_get
|
|
|
|
ENTRY(sys_inotify_add_watch_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const char *
|
|
llgfr %r4,%r4 # u32
|
|
jg sys_inotify_add_watch
|
|
|
|
ENTRY(sys_inotify_rm_watch_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgfr %r3,%r3 # u32
|
|
jg sys_inotify_rm_watch
|
|
|
|
ENTRY(compat_sys_openat_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # const char *
|
|
lgfr %r4,%r4 # int
|
|
lgfr %r5,%r5 # int
|
|
jg compat_sys_openat
|
|
|
|
ENTRY(sys_mkdirat_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const char *
|
|
lgfr %r4,%r4 # int
|
|
jg sys_mkdirat
|
|
|
|
ENTRY(sys_mknodat_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const char *
|
|
lgfr %r4,%r4 # int
|
|
llgfr %r5,%r5 # unsigned int
|
|
jg sys_mknodat
|
|
|
|
ENTRY(sys_fchownat_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const char *
|
|
llgfr %r4,%r4 # uid_t
|
|
llgfr %r5,%r5 # gid_t
|
|
lgfr %r6,%r6 # int
|
|
jg sys_fchownat
|
|
|
|
ENTRY(compat_sys_futimesat_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # char *
|
|
llgtr %r4,%r4 # struct timeval *
|
|
jg compat_sys_futimesat
|
|
|
|
ENTRY(sys32_fstatat64_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # char *
|
|
llgtr %r4,%r4 # struct stat64 *
|
|
lgfr %r5,%r5 # int
|
|
jg sys32_fstatat64
|
|
|
|
ENTRY(sys_unlinkat_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const char *
|
|
lgfr %r4,%r4 # int
|
|
jg sys_unlinkat
|
|
|
|
ENTRY(sys_renameat_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const char *
|
|
lgfr %r4,%r4 # int
|
|
llgtr %r5,%r5 # const char *
|
|
jg sys_renameat
|
|
|
|
ENTRY(sys_linkat_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const char *
|
|
lgfr %r4,%r4 # int
|
|
llgtr %r5,%r5 # const char *
|
|
lgfr %r6,%r6 # int
|
|
jg sys_linkat
|
|
|
|
ENTRY(sys_symlinkat_wrapper)
|
|
llgtr %r2,%r2 # const char *
|
|
lgfr %r3,%r3 # int
|
|
llgtr %r4,%r4 # const char *
|
|
jg sys_symlinkat
|
|
|
|
ENTRY(sys_readlinkat_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const char *
|
|
llgtr %r4,%r4 # char *
|
|
lgfr %r5,%r5 # int
|
|
jg sys_readlinkat
|
|
|
|
ENTRY(sys_fchmodat_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const char *
|
|
llgfr %r4,%r4 # mode_t
|
|
jg sys_fchmodat
|
|
|
|
ENTRY(sys_faccessat_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const char *
|
|
lgfr %r4,%r4 # int
|
|
jg sys_faccessat
|
|
|
|
ENTRY(compat_sys_pselect6_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # fd_set *
|
|
llgtr %r4,%r4 # fd_set *
|
|
llgtr %r5,%r5 # fd_set *
|
|
llgtr %r6,%r6 # struct timespec *
|
|
llgt %r0,164(%r15) # void *
|
|
stg %r0,160(%r15)
|
|
jg compat_sys_pselect6
|
|
|
|
ENTRY(compat_sys_ppoll_wrapper)
|
|
llgtr %r2,%r2 # struct pollfd *
|
|
llgfr %r3,%r3 # unsigned int
|
|
llgtr %r4,%r4 # struct timespec *
|
|
llgtr %r5,%r5 # const sigset_t *
|
|
llgfr %r6,%r6 # size_t
|
|
jg compat_sys_ppoll
|
|
|
|
ENTRY(sys_unshare_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
jg sys_unshare
|
|
|
|
ENTRY(compat_sys_set_robust_list_wrapper)
|
|
llgtr %r2,%r2 # struct compat_robust_list_head *
|
|
llgfr %r3,%r3 # size_t
|
|
jg compat_sys_set_robust_list
|
|
|
|
ENTRY(compat_sys_get_robust_list_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # compat_uptr_t_t *
|
|
llgtr %r4,%r4 # compat_size_t *
|
|
jg compat_sys_get_robust_list
|
|
|
|
ENTRY(sys_splice_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # loff_t *
|
|
lgfr %r4,%r4 # int
|
|
llgtr %r5,%r5 # loff_t *
|
|
llgfr %r6,%r6 # size_t
|
|
llgf %r0,164(%r15) # unsigned int
|
|
stg %r0,160(%r15)
|
|
jg sys_splice
|
|
|
|
ENTRY(sys_sync_file_range_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
sllg %r3,%r3,32 # get high word of 64bit loff_t
|
|
or %r3,%r4 # get low word of 64bit loff_t
|
|
sllg %r4,%r5,32 # get high word of 64bit loff_t
|
|
or %r4,%r6 # get low word of 64bit loff_t
|
|
llgf %r5,164(%r15) # unsigned int
|
|
jg sys_sync_file_range
|
|
|
|
ENTRY(sys_tee_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
llgfr %r4,%r4 # size_t
|
|
llgfr %r5,%r5 # unsigned int
|
|
jg sys_tee
|
|
|
|
ENTRY(compat_sys_vmsplice_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # compat_iovec *
|
|
llgfr %r4,%r4 # unsigned int
|
|
llgfr %r5,%r5 # unsigned int
|
|
jg compat_sys_vmsplice
|
|
|
|
ENTRY(sys_getcpu_wrapper)
|
|
llgtr %r2,%r2 # unsigned *
|
|
llgtr %r3,%r3 # unsigned *
|
|
llgtr %r4,%r4 # struct getcpu_cache *
|
|
jg sys_getcpu
|
|
|
|
ENTRY(compat_sys_epoll_pwait_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # struct compat_epoll_event *
|
|
lgfr %r4,%r4 # int
|
|
lgfr %r5,%r5 # int
|
|
llgtr %r6,%r6 # compat_sigset_t *
|
|
llgf %r0,164(%r15) # compat_size_t
|
|
stg %r0,160(%r15)
|
|
jg compat_sys_epoll_pwait
|
|
|
|
ENTRY(compat_sys_utimes_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # struct compat_timeval *
|
|
jg compat_sys_utimes
|
|
|
|
ENTRY(compat_sys_utimensat_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgtr %r3,%r3 # char *
|
|
llgtr %r4,%r4 # struct compat_timespec *
|
|
lgfr %r5,%r5 # int
|
|
jg compat_sys_utimensat
|
|
|
|
ENTRY(compat_sys_signalfd_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # compat_sigset_t *
|
|
llgfr %r4,%r4 # compat_size_t
|
|
jg compat_sys_signalfd
|
|
|
|
ENTRY(sys_eventfd_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
jg sys_eventfd
|
|
|
|
ENTRY(sys_fallocate_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
sllg %r4,%r4,32 # get high word of 64bit loff_t
|
|
lr %r4,%r5 # get low word of 64bit loff_t
|
|
sllg %r5,%r6,32 # get high word of 64bit loff_t
|
|
l %r5,164(%r15) # get low word of 64bit loff_t
|
|
jg sys_fallocate
|
|
|
|
ENTRY(sys_timerfd_create_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
jg sys_timerfd_create
|
|
|
|
ENTRY(compat_sys_timerfd_settime_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
llgtr %r4,%r4 # struct compat_itimerspec *
|
|
llgtr %r5,%r5 # struct compat_itimerspec *
|
|
jg compat_sys_timerfd_settime
|
|
|
|
ENTRY(compat_sys_timerfd_gettime_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # struct compat_itimerspec *
|
|
jg compat_sys_timerfd_gettime
|
|
|
|
ENTRY(compat_sys_signalfd4_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # compat_sigset_t *
|
|
llgfr %r4,%r4 # compat_size_t
|
|
lgfr %r5,%r5 # int
|
|
jg compat_sys_signalfd4
|
|
|
|
ENTRY(sys_eventfd2_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
lgfr %r3,%r3 # int
|
|
jg sys_eventfd2
|
|
|
|
ENTRY(sys_inotify_init1_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
jg sys_inotify_init1
|
|
|
|
ENTRY(sys_pipe2_wrapper)
|
|
llgtr %r2,%r2 # u32 *
|
|
lgfr %r3,%r3 # int
|
|
jg sys_pipe2 # branch to system call
|
|
|
|
ENTRY(sys_dup3_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # unsigned int
|
|
lgfr %r4,%r4 # int
|
|
jg sys_dup3 # branch to system call
|
|
|
|
ENTRY(sys_epoll_create1_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
jg sys_epoll_create1 # branch to system call
|
|
|
|
ENTRY(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
|
|
|
|
ENTRY(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
|
|
|
|
ENTRY(sys_tkill_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
lgfr %r3,%r3 # int
|
|
jg sys_tkill # branch to system call
|
|
|
|
ENTRY(sys_tgkill_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
lgfr %r3,%r3 # pid_t
|
|
lgfr %r4,%r4 # int
|
|
jg sys_tgkill # branch to system call
|
|
|
|
ENTRY(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
|
|
|
|
ENTRY(compat_sys_preadv_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgtr %r3,%r3 # compat_iovec *
|
|
llgfr %r4,%r4 # unsigned long
|
|
llgfr %r5,%r5 # u32
|
|
llgfr %r6,%r6 # u32
|
|
jg compat_sys_preadv # branch to system call
|
|
|
|
ENTRY(compat_sys_pwritev_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgtr %r3,%r3 # compat_iovec *
|
|
llgfr %r4,%r4 # unsigned long
|
|
llgfr %r5,%r5 # u32
|
|
llgfr %r6,%r6 # u32
|
|
jg compat_sys_pwritev # branch to system call
|
|
|
|
ENTRY(compat_sys_rt_tgsigqueueinfo_wrapper)
|
|
lgfr %r2,%r2 # compat_pid_t
|
|
lgfr %r3,%r3 # compat_pid_t
|
|
lgfr %r4,%r4 # int
|
|
llgtr %r5,%r5 # struct compat_siginfo *
|
|
jg compat_sys_rt_tgsigqueueinfo_wrapper # branch to system call
|
|
|
|
ENTRY(sys_perf_event_open_wrapper)
|
|
llgtr %r2,%r2 # const struct perf_event_attr *
|
|
lgfr %r3,%r3 # pid_t
|
|
lgfr %r4,%r4 # int
|
|
lgfr %r5,%r5 # int
|
|
llgfr %r6,%r6 # unsigned long
|
|
jg sys_perf_event_open # branch to system call
|
|
|
|
ENTRY(sys_clone_wrapper)
|
|
llgfr %r2,%r2 # unsigned long
|
|
llgfr %r3,%r3 # unsigned long
|
|
llgtr %r4,%r4 # int *
|
|
llgtr %r5,%r5 # int *
|
|
jg sys_clone # branch to system call
|
|
|
|
ENTRY(sys32_execve_wrapper)
|
|
llgtr %r2,%r2 # char *
|
|
llgtr %r3,%r3 # compat_uptr_t *
|
|
llgtr %r4,%r4 # compat_uptr_t *
|
|
jg sys32_execve # branch to system call
|
|
|
|
ENTRY(sys_fanotify_init_wrapper)
|
|
llgfr %r2,%r2 # unsigned int
|
|
llgfr %r3,%r3 # unsigned int
|
|
jg sys_fanotify_init # branch to system call
|
|
|
|
ENTRY(sys_fanotify_mark_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgfr %r3,%r3 # unsigned int
|
|
sllg %r4,%r4,32 # get high word of 64bit mask
|
|
lr %r4,%r5 # get low word of 64bit mask
|
|
llgfr %r5,%r6 # unsigned int
|
|
llgt %r6,164(%r15) # char *
|
|
jg sys_fanotify_mark # branch to system call
|
|
|
|
ENTRY(sys_prlimit64_wrapper)
|
|
lgfr %r2,%r2 # pid_t
|
|
llgfr %r3,%r3 # unsigned int
|
|
llgtr %r4,%r4 # const struct rlimit64 __user *
|
|
llgtr %r5,%r5 # struct rlimit64 __user *
|
|
jg sys_prlimit64 # branch to system call
|
|
|
|
ENTRY(sys_name_to_handle_at_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # const char __user *
|
|
llgtr %r4,%r4 # struct file_handle __user *
|
|
llgtr %r5,%r5 # int __user *
|
|
lgfr %r6,%r6 # int
|
|
jg sys_name_to_handle_at
|
|
|
|
ENTRY(compat_sys_open_by_handle_at_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
llgtr %r3,%r3 # struct file_handle __user *
|
|
lgfr %r4,%r4 # int
|
|
jg compat_sys_open_by_handle_at
|
|
|
|
ENTRY(compat_sys_clock_adjtime_wrapper)
|
|
lgfr %r2,%r2 # clockid_t (int)
|
|
llgtr %r3,%r3 # struct compat_timex __user *
|
|
jg compat_sys_clock_adjtime
|
|
|
|
ENTRY(sys_syncfs_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
jg sys_syncfs
|
|
|
|
ENTRY(sys_setns_wrapper)
|
|
lgfr %r2,%r2 # int
|
|
lgfr %r3,%r3 # int
|
|
jg sys_setns
|
|
|
|
ENTRY(compat_sys_process_vm_readv_wrapper)
|
|
lgfr %r2,%r2 # compat_pid_t
|
|
llgtr %r3,%r3 # struct compat_iovec __user *
|
|
llgfr %r4,%r4 # unsigned long
|
|
llgtr %r5,%r5 # struct compat_iovec __user *
|
|
llgfr %r6,%r6 # unsigned long
|
|
llgf %r0,164(%r15) # unsigned long
|
|
stg %r0,160(%r15)
|
|
jg sys_process_vm_readv
|
|
|
|
ENTRY(compat_sys_process_vm_writev_wrapper)
|
|
lgfr %r2,%r2 # compat_pid_t
|
|
llgtr %r3,%r3 # struct compat_iovec __user *
|
|
llgfr %r4,%r4 # unsigned long
|
|
llgtr %r5,%r5 # struct compat_iovec __user *
|
|
llgfr %r6,%r6 # unsigned long
|
|
llgf %r0,164(%r15) # unsigned long
|
|
stg %r0,160(%r15)
|
|
jg sys_process_vm_writev
|