Commit 144d634a authored by Jan Glauber's avatar Jan Glauber Committed by Martin Schwidefsky

[S390] fix s390 assembler code alignments

The alignment is missing for various global symbols in s390 assembly code.
With a recent gcc and an instruction like stgrl this can lead to a
specification exception if the instruction uses such a mis-aligned address.

Specify the alignment explicitely and while add it define __ALIGN for s390
and use the ENTRY define to save some lines of code.
Signed-off-by: default avatarJan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 603d1a50
...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/page.h> #include <asm/page.h>
#include "sizes.h" #include "sizes.h"
__HEAD __HEAD
.globl startup_continue ENTRY(startup_continue)
startup_continue:
basr %r13,0 # get base basr %r13,0 # get base
.LPG1: .LPG1:
# setup stack # setup stack
......
...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/page.h> #include <asm/page.h>
#include "sizes.h" #include "sizes.h"
__HEAD __HEAD
.globl startup_continue ENTRY(startup_continue)
startup_continue:
basr %r13,0 # get base basr %r13,0 # get base
.LPG1: .LPG1:
# setup stack # setup stack
......
#ifndef __ASM_LINKAGE_H #ifndef __ASM_LINKAGE_H
#define __ASM_LINKAGE_H #define __ASM_LINKAGE_H
/* Nothing to see here... */ #include <linux/stringify.h>
#define __ALIGN .align 4, 0x07
#define __ALIGN_STR __stringify(__ALIGN)
#endif #endif
...@@ -6,13 +6,13 @@ ...@@ -6,13 +6,13 @@
* Michael Holzheu <holzheu@de.ibm.com> * Michael Holzheu <holzheu@de.ibm.com>
*/ */
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
#ifdef CONFIG_64BIT #ifdef CONFIG_64BIT
.globl s390_base_mcck_handler ENTRY(s390_base_mcck_handler)
s390_base_mcck_handler:
basr %r13,0 basr %r13,0
0: lg %r15,__LC_PANIC_STACK # load panic stack 0: lg %r15,__LC_PANIC_STACK # load panic stack
aghi %r15,-STACK_FRAME_OVERHEAD aghi %r15,-STACK_FRAME_OVERHEAD
...@@ -26,13 +26,13 @@ s390_base_mcck_handler: ...@@ -26,13 +26,13 @@ s390_base_mcck_handler:
lpswe __LC_MCK_OLD_PSW lpswe __LC_MCK_OLD_PSW
.section .bss .section .bss
.align 8
.globl s390_base_mcck_handler_fn .globl s390_base_mcck_handler_fn
s390_base_mcck_handler_fn: s390_base_mcck_handler_fn:
.quad 0 .quad 0
.previous .previous
.globl s390_base_ext_handler ENTRY(s390_base_ext_handler)
s390_base_ext_handler:
stmg %r0,%r15,__LC_SAVE_AREA stmg %r0,%r15,__LC_SAVE_AREA
basr %r13,0 basr %r13,0
0: aghi %r15,-STACK_FRAME_OVERHEAD 0: aghi %r15,-STACK_FRAME_OVERHEAD
...@@ -46,13 +46,13 @@ s390_base_ext_handler: ...@@ -46,13 +46,13 @@ s390_base_ext_handler:
lpswe __LC_EXT_OLD_PSW lpswe __LC_EXT_OLD_PSW
.section .bss .section .bss
.align 8
.globl s390_base_ext_handler_fn .globl s390_base_ext_handler_fn
s390_base_ext_handler_fn: s390_base_ext_handler_fn:
.quad 0 .quad 0
.previous .previous
.globl s390_base_pgm_handler ENTRY(s390_base_pgm_handler)
s390_base_pgm_handler:
stmg %r0,%r15,__LC_SAVE_AREA stmg %r0,%r15,__LC_SAVE_AREA
basr %r13,0 basr %r13,0
0: aghi %r15,-STACK_FRAME_OVERHEAD 0: aghi %r15,-STACK_FRAME_OVERHEAD
...@@ -70,6 +70,7 @@ disabled_wait_psw: ...@@ -70,6 +70,7 @@ disabled_wait_psw:
.quad 0x0002000180000000,0x0000000000000000 + s390_base_pgm_handler .quad 0x0002000180000000,0x0000000000000000 + s390_base_pgm_handler
.section .bss .section .bss
.align 8
.globl s390_base_pgm_handler_fn .globl s390_base_pgm_handler_fn
s390_base_pgm_handler_fn: s390_base_pgm_handler_fn:
.quad 0 .quad 0
...@@ -77,8 +78,7 @@ s390_base_pgm_handler_fn: ...@@ -77,8 +78,7 @@ s390_base_pgm_handler_fn:
#else /* CONFIG_64BIT */ #else /* CONFIG_64BIT */
.globl s390_base_mcck_handler ENTRY(s390_base_mcck_handler)
s390_base_mcck_handler:
basr %r13,0 basr %r13,0
0: l %r15,__LC_PANIC_STACK # load panic stack 0: l %r15,__LC_PANIC_STACK # load panic stack
ahi %r15,-STACK_FRAME_OVERHEAD ahi %r15,-STACK_FRAME_OVERHEAD
...@@ -93,13 +93,13 @@ s390_base_mcck_handler: ...@@ -93,13 +93,13 @@ s390_base_mcck_handler:
2: .long s390_base_mcck_handler_fn 2: .long s390_base_mcck_handler_fn
.section .bss .section .bss
.align 4
.globl s390_base_mcck_handler_fn .globl s390_base_mcck_handler_fn
s390_base_mcck_handler_fn: s390_base_mcck_handler_fn:
.long 0 .long 0
.previous .previous
.globl s390_base_ext_handler ENTRY(s390_base_ext_handler)
s390_base_ext_handler:
stm %r0,%r15,__LC_SAVE_AREA stm %r0,%r15,__LC_SAVE_AREA
basr %r13,0 basr %r13,0
0: ahi %r15,-STACK_FRAME_OVERHEAD 0: ahi %r15,-STACK_FRAME_OVERHEAD
...@@ -115,13 +115,13 @@ s390_base_ext_handler: ...@@ -115,13 +115,13 @@ s390_base_ext_handler:
2: .long s390_base_ext_handler_fn 2: .long s390_base_ext_handler_fn
.section .bss .section .bss
.align 4
.globl s390_base_ext_handler_fn .globl s390_base_ext_handler_fn
s390_base_ext_handler_fn: s390_base_ext_handler_fn:
.long 0 .long 0
.previous .previous
.globl s390_base_pgm_handler ENTRY(s390_base_pgm_handler)
s390_base_pgm_handler:
stm %r0,%r15,__LC_SAVE_AREA stm %r0,%r15,__LC_SAVE_AREA
basr %r13,0 basr %r13,0
0: ahi %r15,-STACK_FRAME_OVERHEAD 0: ahi %r15,-STACK_FRAME_OVERHEAD
...@@ -142,6 +142,7 @@ disabled_wait_psw: ...@@ -142,6 +142,7 @@ disabled_wait_psw:
.long 0x000a0000,0x00000000 + s390_base_pgm_handler .long 0x000a0000,0x00000000 + s390_base_pgm_handler
.section .bss .section .bss
.align 4
.globl s390_base_pgm_handler_fn .globl s390_base_pgm_handler_fn
s390_base_pgm_handler_fn: s390_base_pgm_handler_fn:
.long 0 .long 0
......
...@@ -7,86 +7,74 @@ ...@@ -7,86 +7,74 @@
* Thomas Spatzier (tspat@de.ibm.com) * Thomas Spatzier (tspat@de.ibm.com)
*/ */
.globl sys32_exit_wrapper #include <linux/linkage.h>
sys32_exit_wrapper:
ENTRY(sys32_exit_wrapper)
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
jg sys_exit # branch to sys_exit jg sys_exit # branch to sys_exit
.globl sys32_read_wrapper ENTRY(sys32_read_wrapper)
sys32_read_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgfr %r4,%r4 # size_t llgfr %r4,%r4 # size_t
jg sys32_read # branch to sys_read jg sys32_read # branch to sys_read
.globl sys32_write_wrapper ENTRY(sys32_write_wrapper)
sys32_write_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
llgfr %r4,%r4 # size_t llgfr %r4,%r4 # size_t
jg sys32_write # branch to system call jg sys32_write # branch to system call
.globl sys32_open_wrapper ENTRY(sys32_open_wrapper)
sys32_open_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_open # branch to system call jg sys_open # branch to system call
.globl sys32_close_wrapper ENTRY(sys32_close_wrapper)
sys32_close_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
jg sys_close # branch to system call jg sys_close # branch to system call
.globl sys32_creat_wrapper ENTRY(sys32_creat_wrapper)
sys32_creat_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_creat # branch to system call jg sys_creat # branch to system call
.globl sys32_link_wrapper ENTRY(sys32_link_wrapper)
sys32_link_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
jg sys_link # branch to system call jg sys_link # branch to system call
.globl sys32_unlink_wrapper ENTRY(sys32_unlink_wrapper)
sys32_unlink_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
jg sys_unlink # branch to system call jg sys_unlink # branch to system call
.globl sys32_chdir_wrapper ENTRY(sys32_chdir_wrapper)
sys32_chdir_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
jg sys_chdir # branch to system call jg sys_chdir # branch to system call
.globl sys32_time_wrapper ENTRY(sys32_time_wrapper)
sys32_time_wrapper:
llgtr %r2,%r2 # int * llgtr %r2,%r2 # int *
jg compat_sys_time # branch to system call jg compat_sys_time # branch to system call
.globl sys32_mknod_wrapper ENTRY(sys32_mknod_wrapper)
sys32_mknod_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgfr %r4,%r4 # dev llgfr %r4,%r4 # dev
jg sys_mknod # branch to system call jg sys_mknod # branch to system call
.globl sys32_chmod_wrapper ENTRY(sys32_chmod_wrapper)
sys32_chmod_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgfr %r3,%r3 # mode_t llgfr %r3,%r3 # mode_t
jg sys_chmod # branch to system call jg sys_chmod # branch to system call
.globl sys32_lchown16_wrapper ENTRY(sys32_lchown16_wrapper)
sys32_lchown16_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgfr %r3,%r3 # __kernel_old_uid_emu31_t llgfr %r3,%r3 # __kernel_old_uid_emu31_t
llgfr %r4,%r4 # __kernel_old_uid_emu31_t llgfr %r4,%r4 # __kernel_old_uid_emu31_t
jg sys32_lchown16 # branch to system call jg sys32_lchown16 # branch to system call
.globl sys32_lseek_wrapper ENTRY(sys32_lseek_wrapper)
sys32_lseek_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
lgfr %r3,%r3 # off_t lgfr %r3,%r3 # off_t
llgfr %r4,%r4 # unsigned int llgfr %r4,%r4 # unsigned int
...@@ -94,8 +82,7 @@ sys32_lseek_wrapper: ...@@ -94,8 +82,7 @@ sys32_lseek_wrapper:
#sys32_getpid_wrapper # void #sys32_getpid_wrapper # void
.globl sys32_mount_wrapper ENTRY(sys32_mount_wrapper)
sys32_mount_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgtr %r4,%r4 # char * llgtr %r4,%r4 # char *
...@@ -103,102 +90,85 @@ sys32_mount_wrapper: ...@@ -103,102 +90,85 @@ sys32_mount_wrapper:
llgtr %r6,%r6 # void * llgtr %r6,%r6 # void *
jg compat_sys_mount # branch to system call jg compat_sys_mount # branch to system call
.globl sys32_oldumount_wrapper ENTRY(sys32_oldumount_wrapper)
sys32_oldumount_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
jg sys_oldumount # branch to system call jg sys_oldumount # branch to system call
.globl sys32_setuid16_wrapper ENTRY(sys32_setuid16_wrapper)
sys32_setuid16_wrapper:
llgfr %r2,%r2 # __kernel_old_uid_emu31_t llgfr %r2,%r2 # __kernel_old_uid_emu31_t
jg sys32_setuid16 # branch to system call jg sys32_setuid16 # branch to system call
#sys32_getuid16_wrapper # void #sys32_getuid16_wrapper # void
.globl sys32_ptrace_wrapper ENTRY(sys32_ptrace_wrapper)
sys32_ptrace_wrapper:
lgfr %r2,%r2 # long lgfr %r2,%r2 # long
lgfr %r3,%r3 # long lgfr %r3,%r3 # long
llgtr %r4,%r4 # long llgtr %r4,%r4 # long
llgfr %r5,%r5 # long llgfr %r5,%r5 # long
jg compat_sys_ptrace # branch to system call jg compat_sys_ptrace # branch to system call
.globl sys32_alarm_wrapper ENTRY(sys32_alarm_wrapper)
sys32_alarm_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
jg sys_alarm # branch to system call jg sys_alarm # branch to system call
.globl compat_sys_utime_wrapper ENTRY(compat_sys_utime_wrapper)
compat_sys_utime_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # struct compat_utimbuf * llgtr %r3,%r3 # struct compat_utimbuf *
jg compat_sys_utime # branch to system call jg compat_sys_utime # branch to system call
.globl sys32_access_wrapper ENTRY(sys32_access_wrapper)
sys32_access_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_access # branch to system call jg sys_access # branch to system call
.globl sys32_nice_wrapper ENTRY(sys32_nice_wrapper)
sys32_nice_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
jg sys_nice # branch to system call jg sys_nice # branch to system call
#sys32_sync_wrapper # void #sys32_sync_wrapper # void
.globl sys32_kill_wrapper ENTRY(sys32_kill_wrapper)
sys32_kill_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_kill # branch to system call jg sys_kill # branch to system call
.globl sys32_rename_wrapper ENTRY(sys32_rename_wrapper)
sys32_rename_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
jg sys_rename # branch to system call jg sys_rename # branch to system call
.globl sys32_mkdir_wrapper ENTRY(sys32_mkdir_wrapper)
sys32_mkdir_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_mkdir # branch to system call jg sys_mkdir # branch to system call
.globl sys32_rmdir_wrapper ENTRY(sys32_rmdir_wrapper)
sys32_rmdir_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
jg sys_rmdir # branch to system call jg sys_rmdir # branch to system call
.globl sys32_dup_wrapper ENTRY(sys32_dup_wrapper)
sys32_dup_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
jg sys_dup # branch to system call jg sys_dup # branch to system call
.globl sys32_pipe_wrapper ENTRY(sys32_pipe_wrapper)
sys32_pipe_wrapper:
llgtr %r2,%r2 # u32 * llgtr %r2,%r2 # u32 *
jg sys_pipe # branch to system call jg sys_pipe # branch to system call
.globl compat_sys_times_wrapper ENTRY(compat_sys_times_wrapper)
compat_sys_times_wrapper:
llgtr %r2,%r2 # struct compat_tms * llgtr %r2,%r2 # struct compat_tms *
jg compat_sys_times # branch to system call jg compat_sys_times # branch to system call
.globl sys32_brk_wrapper ENTRY(sys32_brk_wrapper)
sys32_brk_wrapper:
llgtr %r2,%r2 # unsigned long llgtr %r2,%r2 # unsigned long
jg sys_brk # branch to system call jg sys_brk # branch to system call
.globl sys32_setgid16_wrapper ENTRY(sys32_setgid16_wrapper)
sys32_setgid16_wrapper:
llgfr %r2,%r2 # __kernel_old_gid_emu31_t llgfr %r2,%r2 # __kernel_old_gid_emu31_t
jg sys32_setgid16 # branch to system call jg sys32_setgid16 # branch to system call
#sys32_getgid16_wrapper # void #sys32_getgid16_wrapper # void
.globl sys32_signal_wrapper ENTRY(sys32_signal_wrapper)
sys32_signal_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # __sighandler_t llgtr %r3,%r3 # __sighandler_t
jg sys_signal jg sys_signal
...@@ -207,55 +177,46 @@ sys32_signal_wrapper: ...@@ -207,55 +177,46 @@ sys32_signal_wrapper:
#sys32_getegid16_wrapper # void #sys32_getegid16_wrapper # void
.globl sys32_acct_wrapper ENTRY(sys32_acct_wrapper)
sys32_acct_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
jg sys_acct # branch to system call jg sys_acct # branch to system call
.globl sys32_umount_wrapper ENTRY(sys32_umount_wrapper)
sys32_umount_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_umount # branch to system call jg sys_umount # branch to system call
.globl compat_sys_ioctl_wrapper ENTRY(compat_sys_ioctl_wrapper)
compat_sys_ioctl_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
llgfr %r4,%r4 # unsigned int llgfr %r4,%r4 # unsigned int
jg compat_sys_ioctl # branch to system call jg compat_sys_ioctl # branch to system call
.globl compat_sys_fcntl_wrapper ENTRY(compat_sys_fcntl_wrapper)
compat_sys_fcntl_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
jg compat_sys_fcntl # branch to system call jg compat_sys_fcntl # branch to system call
.globl sys32_setpgid_wrapper ENTRY(sys32_setpgid_wrapper)
sys32_setpgid_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
lgfr %r3,%r3 # pid_t lgfr %r3,%r3 # pid_t
jg sys_setpgid # branch to system call jg sys_setpgid # branch to system call
.globl sys32_umask_wrapper ENTRY(sys32_umask_wrapper)
sys32_umask_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
jg sys_umask # branch to system call jg sys_umask # branch to system call
.globl sys32_chroot_wrapper ENTRY(sys32_chroot_wrapper)
sys32_chroot_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
jg sys_chroot # branch to system call jg sys_chroot # branch to system call
.globl sys32_ustat_wrapper ENTRY(sys32_ustat_wrapper)
sys32_ustat_wrapper:
llgfr %r2,%r2 # dev_t llgfr %r2,%r2 # dev_t
llgtr %r3,%r3 # struct ustat * llgtr %r3,%r3 # struct ustat *
jg compat_sys_ustat jg compat_sys_ustat
.globl sys32_dup2_wrapper ENTRY(sys32_dup2_wrapper)
sys32_dup2_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
jg sys_dup2 # branch to system call jg sys_dup2 # branch to system call
...@@ -266,262 +227,220 @@ sys32_dup2_wrapper: ...@@ -266,262 +227,220 @@ sys32_dup2_wrapper:
#sys32_setsid_wrapper # void #sys32_setsid_wrapper # void
.globl sys32_sigaction_wrapper ENTRY(sys32_sigaction_wrapper)
sys32_sigaction_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const struct old_sigaction * llgtr %r3,%r3 # const struct old_sigaction *
llgtr %r4,%r4 # struct old_sigaction32 * llgtr %r4,%r4 # struct old_sigaction32 *
jg sys32_sigaction # branch to system call jg sys32_sigaction # branch to system call
.globl sys32_setreuid16_wrapper ENTRY(sys32_setreuid16_wrapper)
sys32_setreuid16_wrapper:
llgfr %r2,%r2 # __kernel_old_uid_emu31_t llgfr %r2,%r2 # __kernel_old_uid_emu31_t
llgfr %r3,%r3 # __kernel_old_uid_emu31_t llgfr %r3,%r3 # __kernel_old_uid_emu31_t
jg sys32_setreuid16 # branch to system call jg sys32_setreuid16 # branch to system call
.globl sys32_setregid16_wrapper ENTRY(sys32_setregid16_wrapper)
sys32_setregid16_wrapper:
llgfr %r2,%r2 # __kernel_old_gid_emu31_t llgfr %r2,%r2 # __kernel_old_gid_emu31_t
llgfr %r3,%r3 # __kernel_old_gid_emu31_t llgfr %r3,%r3 # __kernel_old_gid_emu31_t
jg sys32_setregid16 # branch to system call jg sys32_setregid16 # branch to system call
.globl sys_sigsuspend_wrapper ENTRY(sys_sigsuspend_wrapper)
sys_sigsuspend_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgfr %r4,%r4 # old_sigset_t llgfr %r4,%r4 # old_sigset_t
jg sys_sigsuspend jg sys_sigsuspend
.globl compat_sys_sigpending_wrapper ENTRY(compat_sys_sigpending_wrapper)
compat_sys_sigpending_wrapper:
llgtr %r2,%r2 # compat_old_sigset_t * llgtr %r2,%r2 # compat_old_sigset_t *
jg compat_sys_sigpending # branch to system call jg compat_sys_sigpending # branch to system call
.globl sys32_sethostname_wrapper ENTRY(sys32_sethostname_wrapper)
sys32_sethostname_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_sethostname # branch to system call jg sys_sethostname # branch to system call
.globl compat_sys_setrlimit_wrapper ENTRY(compat_sys_setrlimit_wrapper)
compat_sys_setrlimit_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # struct rlimit_emu31 * llgtr %r3,%r3 # struct rlimit_emu31 *
jg compat_sys_setrlimit # branch to system call jg compat_sys_setrlimit # branch to system call
.globl compat_sys_old_getrlimit_wrapper ENTRY(compat_sys_old_getrlimit_wrapper)
compat_sys_old_getrlimit_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # struct rlimit_emu31 * llgtr %r3,%r3 # struct rlimit_emu31 *
jg compat_sys_old_getrlimit # branch to system call jg compat_sys_old_getrlimit # branch to system call
.globl compat_sys_getrlimit_wrapper ENTRY(compat_sys_getrlimit_wrapper)
compat_sys_getrlimit_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # struct rlimit_emu31 * llgtr %r3,%r3 # struct rlimit_emu31 *
jg compat_sys_getrlimit # branch to system call jg compat_sys_getrlimit # branch to system call
.globl sys32_mmap2_wrapper ENTRY(sys32_mmap2_wrapper)
sys32_mmap2_wrapper:
llgtr %r2,%r2 # struct mmap_arg_struct_emu31 * llgtr %r2,%r2 # struct mmap_arg_struct_emu31 *
jg sys32_mmap2 # branch to system call jg sys32_mmap2 # branch to system call
.globl compat_sys_getrusage_wrapper ENTRY(compat_sys_getrusage_wrapper)
compat_sys_getrusage_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # struct rusage_emu31 * llgtr %r3,%r3 # struct rusage_emu31 *
jg compat_sys_getrusage # branch to system call jg compat_sys_getrusage # branch to system call
.globl compat_sys_gettimeofday_wrapper ENTRY(compat_sys_gettimeofday_wrapper)
compat_sys_gettimeofday_wrapper:
llgtr %r2,%r2 # struct timeval_emu31 * llgtr %r2,%r2 # struct timeval_emu31 *
llgtr %r3,%r3 # struct timezone * llgtr %r3,%r3 # struct timezone *
jg compat_sys_gettimeofday # branch to system call jg compat_sys_gettimeofday # branch to system call
.globl compat_sys_settimeofday_wrapper ENTRY(compat_sys_settimeofday_wrapper)
compat_sys_settimeofday_wrapper:
llgtr %r2,%r2 # struct timeval_emu31 * llgtr %r2,%r2 # struct timeval_emu31 *
llgtr %r3,%r3 # struct timezone * llgtr %r3,%r3 # struct timezone *
jg compat_sys_settimeofday # branch to system call jg compat_sys_settimeofday # branch to system call
.globl sys32_getgroups16_wrapper ENTRY(sys32_getgroups16_wrapper)
sys32_getgroups16_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # __kernel_old_gid_emu31_t * llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
jg sys32_getgroups16 # branch to system call jg sys32_getgroups16 # branch to system call
.globl sys32_setgroups16_wrapper ENTRY(sys32_setgroups16_wrapper)
sys32_setgroups16_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # __kernel_old_gid_emu31_t * llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
jg sys32_setgroups16 # branch to system call jg sys32_setgroups16 # branch to system call
.globl sys32_symlink_wrapper ENTRY(sys32_symlink_wrapper)
sys32_symlink_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
jg sys_symlink # branch to system call jg sys_symlink # branch to system call
.globl sys32_readlink_wrapper ENTRY(sys32_readlink_wrapper)
sys32_readlink_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_readlink # branch to system call jg sys_readlink # branch to system call
.globl sys32_uselib_wrapper ENTRY(sys32_uselib_wrapper)
sys32_uselib_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
jg sys_uselib # branch to system call jg sys_uselib # branch to system call
.globl sys32_swapon_wrapper ENTRY(sys32_swapon_wrapper)
sys32_swapon_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_swapon # branch to system call jg sys_swapon # branch to system call
.globl sys32_reboot_wrapper ENTRY(sys32_reboot_wrapper)
sys32_reboot_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgfr %r4,%r4 # unsigned int llgfr %r4,%r4 # unsigned int
llgtr %r5,%r5 # void * llgtr %r5,%r5 # void *
jg sys_reboot # branch to system call jg sys_reboot # branch to system call
.globl old32_readdir_wrapper ENTRY(old32_readdir_wrapper)
old32_readdir_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # void * llgtr %r3,%r3 # void *
llgfr %r4,%r4 # unsigned int llgfr %r4,%r4 # unsigned int
jg compat_sys_old_readdir # branch to system call jg compat_sys_old_readdir # branch to system call
.globl old32_mmap_wrapper ENTRY(old32_mmap_wrapper)
old32_mmap_wrapper:
llgtr %r2,%r2 # struct mmap_arg_struct_emu31 * llgtr %r2,%r2 # struct mmap_arg_struct_emu31 *
jg old32_mmap # branch to system call jg old32_mmap # branch to system call
.globl sys32_munmap_wrapper ENTRY(sys32_munmap_wrapper)
sys32_munmap_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgfr %r3,%r3 # size_t llgfr %r3,%r3 # size_t
jg sys_munmap # branch to system call jg sys_munmap # branch to system call
.globl sys32_truncate_wrapper ENTRY(sys32_truncate_wrapper)
sys32_truncate_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
lgfr %r3,%r3 # long lgfr %r3,%r3 # long
jg sys_truncate # branch to system call jg sys_truncate # branch to system call
.globl sys32_ftruncate_wrapper ENTRY(sys32_ftruncate_wrapper)
sys32_ftruncate_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
jg sys_ftruncate # branch to system call jg sys_ftruncate # branch to system call
.globl sys32_fchmod_wrapper ENTRY(sys32_fchmod_wrapper)
sys32_fchmod_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # mode_t llgfr %r3,%r3 # mode_t
jg sys_fchmod # branch to system call jg sys_fchmod # branch to system call
.globl sys32_fchown16_wrapper ENTRY(sys32_fchown16_wrapper)
sys32_fchown16_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # compat_uid_t llgfr %r3,%r3 # compat_uid_t
llgfr %r4,%r4 # compat_uid_t llgfr %r4,%r4 # compat_uid_t
jg sys32_fchown16 # branch to system call jg sys32_fchown16 # branch to system call
.globl sys32_getpriority_wrapper ENTRY(sys32_getpriority_wrapper)
sys32_getpriority_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_getpriority # branch to system call jg sys_getpriority # branch to system call
.globl sys32_setpriority_wrapper ENTRY(sys32_setpriority_wrapper)
sys32_setpriority_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_setpriority # branch to system call jg sys_setpriority # branch to system call
.globl compat_sys_statfs_wrapper ENTRY(compat_sys_statfs_wrapper)
compat_sys_statfs_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # struct compat_statfs * llgtr %r3,%r3 # struct compat_statfs *
jg compat_sys_statfs # branch to system call jg compat_sys_statfs # branch to system call
.globl compat_sys_fstatfs_wrapper ENTRY(compat_sys_fstatfs_wrapper)
compat_sys_fstatfs_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # struct compat_statfs * llgtr %r3,%r3 # struct compat_statfs *
jg compat_sys_fstatfs # branch to system call jg compat_sys_fstatfs # branch to system call
.globl compat_sys_socketcall_wrapper ENTRY(compat_sys_socketcall_wrapper)
compat_sys_socketcall_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # u32 * llgtr %r3,%r3 # u32 *
jg compat_sys_socketcall # branch to system call jg compat_sys_socketcall # branch to system call
.globl sys32_syslog_wrapper ENTRY(sys32_syslog_wrapper)
sys32_syslog_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_syslog # branch to system call jg sys_syslog # branch to system call
.globl compat_sys_setitimer_wrapper ENTRY(compat_sys_setitimer_wrapper)
compat_sys_setitimer_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # struct itimerval_emu31 * llgtr %r3,%r3 # struct itimerval_emu31 *
llgtr %r4,%r4 # struct itimerval_emu31 * llgtr %r4,%r4 # struct itimerval_emu31 *
jg compat_sys_setitimer # branch to system call jg compat_sys_setitimer # branch to system call
.globl compat_sys_getitimer_wrapper ENTRY(compat_sys_getitimer_wrapper)
compat_sys_getitimer_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # struct itimerval_emu31 * llgtr %r3,%r3 # struct itimerval_emu31 *
jg compat_sys_getitimer # branch to system call jg compat_sys_getitimer # branch to system call
.globl compat_sys_newstat_wrapper ENTRY(compat_sys_newstat_wrapper)
compat_sys_newstat_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # struct stat_emu31 * llgtr %r3,%r3 # struct stat_emu31 *
jg compat_sys_newstat # branch to system call jg compat_sys_newstat # branch to system call
.globl compat_sys_newlstat_wrapper ENTRY(compat_sys_newlstat_wrapper)
compat_sys_newlstat_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # struct stat_emu31 * llgtr %r3,%r3 # struct stat_emu31 *
jg compat_sys_newlstat # branch to system call jg compat_sys_newlstat # branch to system call
.globl compat_sys_newfstat_wrapper ENTRY(compat_sys_newfstat_wrapper)
compat_sys_newfstat_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # struct stat_emu31 * llgtr %r3,%r3 # struct stat_emu31 *
jg compat_sys_newfstat # branch to system call jg compat_sys_newfstat # branch to system call
#sys32_vhangup_wrapper # void #sys32_vhangup_wrapper # void
.globl compat_sys_wait4_wrapper ENTRY(compat_sys_wait4_wrapper)
compat_sys_wait4_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
llgtr %r3,%r3 # unsigned int * llgtr %r3,%r3 # unsigned int *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
llgtr %r5,%r5 # struct rusage * llgtr %r5,%r5 # struct rusage *
jg compat_sys_wait4 # branch to system call jg compat_sys_wait4 # branch to system call
.globl sys32_swapoff_wrapper ENTRY(sys32_swapoff_wrapper)
sys32_swapoff_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
jg sys_swapoff # branch to system call jg sys_swapoff # branch to system call
.globl compat_sys_sysinfo_wrapper ENTRY(compat_sys_sysinfo_wrapper)
compat_sys_sysinfo_wrapper:
llgtr %r2,%r2 # struct sysinfo_emu31 * llgtr %r2,%r2 # struct sysinfo_emu31 *
jg compat_sys_sysinfo # branch to system call jg compat_sys_sysinfo # branch to system call
.globl sys32_ipc_wrapper ENTRY(sys32_ipc_wrapper)
sys32_ipc_wrapper:
llgfr %r2,%r2 # uint llgfr %r2,%r2 # uint
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
...@@ -529,8 +448,7 @@ sys32_ipc_wrapper: ...@@ -529,8 +448,7 @@ sys32_ipc_wrapper:
llgfr %r6,%r6 # u32 llgfr %r6,%r6 # u32
jg sys32_ipc # branch to system call jg sys32_ipc # branch to system call
.globl sys32_fsync_wrapper ENTRY(sys32_fsync_wrapper)
sys32_fsync_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
jg sys_fsync # branch to system call jg sys_fsync # branch to system call
...@@ -538,97 +456,81 @@ sys32_fsync_wrapper: ...@@ -538,97 +456,81 @@ sys32_fsync_wrapper:
#sys32_clone_wrapper # done in clone_glue #sys32_clone_wrapper # done in clone_glue
.globl sys32_setdomainname_wrapper ENTRY(sys32_setdomainname_wrapper)
sys32_setdomainname_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_setdomainname # branch to system call jg sys_setdomainname # branch to system call
.globl sys32_newuname_wrapper ENTRY(sys32_newuname_wrapper)
sys32_newuname_wrapper:
llgtr %r2,%r2 # struct new_utsname * llgtr %r2,%r2 # struct new_utsname *
jg sys_newuname # branch to system call jg sys_newuname # branch to system call
.globl compat_sys_adjtimex_wrapper ENTRY(compat_sys_adjtimex_wrapper)
compat_sys_adjtimex_wrapper:
llgtr %r2,%r2 # struct compat_timex * llgtr %r2,%r2 # struct compat_timex *
jg compat_sys_adjtimex # branch to system call jg compat_sys_adjtimex # branch to system call
.globl sys32_mprotect_wrapper ENTRY(sys32_mprotect_wrapper)
sys32_mprotect_wrapper:
llgtr %r2,%r2 # unsigned long (actually pointer llgtr %r2,%r2 # unsigned long (actually pointer
llgfr %r3,%r3 # size_t llgfr %r3,%r3 # size_t
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
jg sys_mprotect # branch to system call jg sys_mprotect # branch to system call
.globl compat_sys_sigprocmask_wrapper ENTRY(compat_sys_sigprocmask_wrapper)
compat_sys_sigprocmask_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # compat_old_sigset_t * llgtr %r3,%r3 # compat_old_sigset_t *
llgtr %r4,%r4 # compat_old_sigset_t * llgtr %r4,%r4 # compat_old_sigset_t *
jg compat_sys_sigprocmask # branch to system call jg compat_sys_sigprocmask # branch to system call
.globl sys_init_module_wrapper ENTRY(sys_init_module_wrapper)
sys_init_module_wrapper:
llgtr %r2,%r2 # void * llgtr %r2,%r2 # void *
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
llgtr %r4,%r4 # char * llgtr %r4,%r4 # char *
jg sys_init_module # branch to system call jg sys_init_module # branch to system call
.globl sys_delete_module_wrapper ENTRY(sys_delete_module_wrapper)
sys_delete_module_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
jg sys_delete_module # branch to system call jg sys_delete_module # branch to system call
.globl sys32_quotactl_wrapper ENTRY(sys32_quotactl_wrapper)
sys32_quotactl_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
llgfr %r4,%r4 # qid_t llgfr %r4,%r4 # qid_t
llgtr %r5,%r5 # caddr_t llgtr %r5,%r5 # caddr_t
jg sys_quotactl # branch to system call jg sys_quotactl # branch to system call
.globl sys32_getpgid_wrapper ENTRY(sys32_getpgid_wrapper)
sys32_getpgid_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
jg sys_getpgid # branch to system call jg sys_getpgid # branch to system call
.globl sys32_fchdir_wrapper ENTRY(sys32_fchdir_wrapper)
sys32_fchdir_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
jg sys_fchdir # branch to system call jg sys_fchdir # branch to system call
.globl sys32_bdflush_wrapper ENTRY(sys32_bdflush_wrapper)
sys32_bdflush_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # long lgfr %r3,%r3 # long
jg sys_bdflush # branch to system call jg sys_bdflush # branch to system call
.globl sys32_sysfs_wrapper ENTRY(sys32_sysfs_wrapper)
sys32_sysfs_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
jg sys_sysfs # branch to system call jg sys_sysfs # branch to system call
.globl sys32_personality_wrapper ENTRY(sys32_personality_wrapper)
sys32_personality_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
jg sys_s390_personality # branch to system call jg sys_s390_personality # branch to system call
.globl sys32_setfsuid16_wrapper ENTRY(sys32_setfsuid16_wrapper)
sys32_setfsuid16_wrapper:
llgfr %r2,%r2 # __kernel_old_uid_emu31_t llgfr %r2,%r2 # __kernel_old_uid_emu31_t
jg sys32_setfsuid16 # branch to system call jg sys32_setfsuid16 # branch to system call
.globl sys32_setfsgid16_wrapper ENTRY(sys32_setfsgid16_wrapper)
sys32_setfsgid16_wrapper:
llgfr %r2,%r2 # __kernel_old_gid_emu31_t llgfr %r2,%r2 # __kernel_old_gid_emu31_t
jg sys32_setfsgid16 # branch to system call jg sys32_setfsgid16 # branch to system call
.globl sys32_llseek_wrapper ENTRY(sys32_llseek_wrapper)
sys32_llseek_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
...@@ -636,15 +538,13 @@ sys32_llseek_wrapper: ...@@ -636,15 +538,13 @@ sys32_llseek_wrapper:
llgfr %r6,%r6 # unsigned int llgfr %r6,%r6 # unsigned int
jg sys_llseek # branch to system call jg sys_llseek # branch to system call
.globl sys32_getdents_wrapper ENTRY(sys32_getdents_wrapper)
sys32_getdents_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # void * llgtr %r3,%r3 # void *
llgfr %r4,%r4 # unsigned int llgfr %r4,%r4 # unsigned int
jg compat_sys_getdents # branch to system call jg compat_sys_getdents # branch to system call
.globl compat_sys_select_wrapper ENTRY(compat_sys_select_wrapper)
compat_sys_select_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # compat_fd_set * llgtr %r3,%r3 # compat_fd_set *
llgtr %r4,%r4 # compat_fd_set * llgtr %r4,%r4 # compat_fd_set *
...@@ -652,112 +552,94 @@ compat_sys_select_wrapper: ...@@ -652,112 +552,94 @@ compat_sys_select_wrapper:
llgtr %r6,%r6 # struct compat_timeval * llgtr %r6,%r6 # struct compat_timeval *
jg compat_sys_select # branch to system call jg compat_sys_select # branch to system call
.globl sys32_flock_wrapper ENTRY(sys32_flock_wrapper)
sys32_flock_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
jg sys_flock # branch to system call jg sys_flock # branch to system call
.globl sys32_msync_wrapper ENTRY(sys32_msync_wrapper)
sys32_msync_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgfr %r3,%r3 # size_t llgfr %r3,%r3 # size_t
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_msync # branch to system call jg sys_msync # branch to system call
.globl compat_sys_readv_wrapper ENTRY(compat_sys_readv_wrapper)
compat_sys_readv_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const struct compat_iovec * llgtr %r3,%r3 # const struct compat_iovec *
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
jg compat_sys_readv # branch to system call jg compat_sys_readv # branch to system call
.globl compat_sys_writev_wrapper ENTRY(compat_sys_writev_wrapper)
compat_sys_writev_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const struct compat_iovec * llgtr %r3,%r3 # const struct compat_iovec *
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
jg compat_sys_writev # branch to system call jg compat_sys_writev # branch to system call
.globl sys32_getsid_wrapper ENTRY(sys32_getsid_wrapper)
sys32_getsid_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
jg sys_getsid # branch to system call jg sys_getsid # branch to system call
.globl sys32_fdatasync_wrapper ENTRY(sys32_fdatasync_wrapper)
sys32_fdatasync_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
jg sys_fdatasync # branch to system call jg sys_fdatasync # branch to system call
.globl sys32_mlock_wrapper ENTRY(sys32_mlock_wrapper)
sys32_mlock_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgfr %r3,%r3 # size_t llgfr %r3,%r3 # size_t
jg sys_mlock # branch to system call jg sys_mlock # branch to system call
.globl sys32_munlock_wrapper ENTRY(sys32_munlock_wrapper)
sys32_munlock_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgfr %r3,%r3 # size_t llgfr %r3,%r3 # size_t
jg sys_munlock # branch to system call jg sys_munlock # branch to system call
.globl sys32_mlockall_wrapper ENTRY(sys32_mlockall_wrapper)
sys32_mlockall_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
jg sys_mlockall # branch to system call jg sys_mlockall # branch to system call
#sys32_munlockall_wrapper # void #sys32_munlockall_wrapper # void
.globl sys32_sched_setparam_wrapper ENTRY(sys32_sched_setparam_wrapper)
sys32_sched_setparam_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
llgtr %r3,%r3 # struct sched_param * llgtr %r3,%r3 # struct sched_param *
jg sys_sched_setparam # branch to system call jg sys_sched_setparam # branch to system call
.globl sys32_sched_getparam_wrapper ENTRY(sys32_sched_getparam_wrapper)
sys32_sched_getparam_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
llgtr %r3,%r3 # struct sched_param * llgtr %r3,%r3 # struct sched_param *
jg sys_sched_getparam # branch to system call jg sys_sched_getparam # branch to system call
.globl sys32_sched_setscheduler_wrapper ENTRY(sys32_sched_setscheduler_wrapper)
sys32_sched_setscheduler_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgtr %r4,%r4 # struct sched_param * llgtr %r4,%r4 # struct sched_param *
jg sys_sched_setscheduler # branch to system call jg sys_sched_setscheduler # branch to system call
.globl sys32_sched_getscheduler_wrapper ENTRY(sys32_sched_getscheduler_wrapper)
sys32_sched_getscheduler_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
jg sys_sched_getscheduler # branch to system call jg sys_sched_getscheduler # branch to system call
#sys32_sched_yield_wrapper # void #sys32_sched_yield_wrapper # void
.globl sys32_sched_get_priority_max_wrapper ENTRY(sys32_sched_get_priority_max_wrapper)
sys32_sched_get_priority_max_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
jg sys_sched_get_priority_max # branch to system call jg sys_sched_get_priority_max # branch to system call
.globl sys32_sched_get_priority_min_wrapper ENTRY(sys32_sched_get_priority_min_wrapper)
sys32_sched_get_priority_min_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
jg sys_sched_get_priority_min # branch to system call jg sys_sched_get_priority_min # branch to system call
.globl sys32_sched_rr_get_interval_wrapper ENTRY(sys32_sched_rr_get_interval_wrapper)
sys32_sched_rr_get_interval_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
llgtr %r3,%r3 # struct compat_timespec * llgtr %r3,%r3 # struct compat_timespec *
jg sys32_sched_rr_get_interval # branch to system call jg sys32_sched_rr_get_interval # branch to system call
.globl compat_sys_nanosleep_wrapper ENTRY(compat_sys_nanosleep_wrapper)
compat_sys_nanosleep_wrapper:
llgtr %r2,%r2 # struct compat_timespec * llgtr %r2,%r2 # struct compat_timespec *
llgtr %r3,%r3 # struct compat_timespec * llgtr %r3,%r3 # struct compat_timespec *
jg compat_sys_nanosleep # branch to system call jg compat_sys_nanosleep # branch to system call
.globl sys32_mremap_wrapper ENTRY(sys32_mremap_wrapper)
sys32_mremap_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
...@@ -765,50 +647,43 @@ sys32_mremap_wrapper: ...@@ -765,50 +647,43 @@ sys32_mremap_wrapper:
llgfr %r6,%r6 # unsigned long llgfr %r6,%r6 # unsigned long
jg sys_mremap # branch to system call jg sys_mremap # branch to system call
.globl sys32_setresuid16_wrapper ENTRY(sys32_setresuid16_wrapper)
sys32_setresuid16_wrapper:
llgfr %r2,%r2 # __kernel_old_uid_emu31_t llgfr %r2,%r2 # __kernel_old_uid_emu31_t
llgfr %r3,%r3 # __kernel_old_uid_emu31_t llgfr %r3,%r3 # __kernel_old_uid_emu31_t
llgfr %r4,%r4 # __kernel_old_uid_emu31_t llgfr %r4,%r4 # __kernel_old_uid_emu31_t
jg sys32_setresuid16 # branch to system call jg sys32_setresuid16 # branch to system call
.globl sys32_getresuid16_wrapper ENTRY(sys32_getresuid16_wrapper)
sys32_getresuid16_wrapper:
llgtr %r2,%r2 # __kernel_old_uid_emu31_t * llgtr %r2,%r2 # __kernel_old_uid_emu31_t *
llgtr %r3,%r3 # __kernel_old_uid_emu31_t * llgtr %r3,%r3 # __kernel_old_uid_emu31_t *
llgtr %r4,%r4 # __kernel_old_uid_emu31_t * llgtr %r4,%r4 # __kernel_old_uid_emu31_t *
jg sys32_getresuid16 # branch to system call jg sys32_getresuid16 # branch to system call
.globl sys32_poll_wrapper ENTRY(sys32_poll_wrapper)
sys32_poll_wrapper:
llgtr %r2,%r2 # struct pollfd * llgtr %r2,%r2 # struct pollfd *
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
lgfr %r4,%r4 # long lgfr %r4,%r4 # long
jg sys_poll # branch to system call jg sys_poll # branch to system call
.globl compat_sys_nfsservctl_wrapper ENTRY(compat_sys_nfsservctl_wrapper)
compat_sys_nfsservctl_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # struct compat_nfsctl_arg* llgtr %r3,%r3 # struct compat_nfsctl_arg*
llgtr %r4,%r4 # union compat_nfsctl_res* llgtr %r4,%r4 # union compat_nfsctl_res*
jg compat_sys_nfsservctl # branch to system call jg compat_sys_nfsservctl # branch to system call
.globl sys32_setresgid16_wrapper ENTRY(sys32_setresgid16_wrapper)
sys32_setresgid16_wrapper:
llgfr %r2,%r2 # __kernel_old_gid_emu31_t llgfr %r2,%r2 # __kernel_old_gid_emu31_t
llgfr %r3,%r3 # __kernel_old_gid_emu31_t llgfr %r3,%r3 # __kernel_old_gid_emu31_t
llgfr %r4,%r4 # __kernel_old_gid_emu31_t llgfr %r4,%r4 # __kernel_old_gid_emu31_t
jg sys32_setresgid16 # branch to system call jg sys32_setresgid16 # branch to system call
.globl sys32_getresgid16_wrapper ENTRY(sys32_getresgid16_wrapper)
sys32_getresgid16_wrapper:
llgtr %r2,%r2 # __kernel_old_gid_emu31_t * llgtr %r2,%r2 # __kernel_old_gid_emu31_t *
llgtr %r3,%r3 # __kernel_old_gid_emu31_t * llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
llgtr %r4,%r4 # __kernel_old_gid_emu31_t * llgtr %r4,%r4 # __kernel_old_gid_emu31_t *
jg sys32_getresgid16 # branch to system call jg sys32_getresgid16 # branch to system call
.globl sys32_prctl_wrapper ENTRY(sys32_prctl_wrapper)
sys32_prctl_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
...@@ -818,51 +693,44 @@ sys32_prctl_wrapper: ...@@ -818,51 +693,44 @@ sys32_prctl_wrapper:
#sys32_rt_sigreturn_wrapper # done in rt_sigreturn_glue #sys32_rt_sigreturn_wrapper # done in rt_sigreturn_glue
.globl sys32_rt_sigaction_wrapper ENTRY(sys32_rt_sigaction_wrapper)
sys32_rt_sigaction_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const struct sigaction_emu31 * llgtr %r3,%r3 # const struct sigaction_emu31 *
llgtr %r4,%r4 # const struct sigaction_emu31 * llgtr %r4,%r4 # const struct sigaction_emu31 *
llgfr %r5,%r5 # size_t llgfr %r5,%r5 # size_t
jg sys32_rt_sigaction # branch to system call jg sys32_rt_sigaction # branch to system call
.globl sys32_rt_sigprocmask_wrapper ENTRY(sys32_rt_sigprocmask_wrapper)
sys32_rt_sigprocmask_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # old_sigset_emu31 * llgtr %r3,%r3 # old_sigset_emu31 *
llgtr %r4,%r4 # old_sigset_emu31 * llgtr %r4,%r4 # old_sigset_emu31 *
llgfr %r5,%r5 # size_t llgfr %r5,%r5 # size_t
jg sys32_rt_sigprocmask # branch to system call jg sys32_rt_sigprocmask # branch to system call
.globl sys32_rt_sigpending_wrapper ENTRY(sys32_rt_sigpending_wrapper)
sys32_rt_sigpending_wrapper:
llgtr %r2,%r2 # sigset_emu31 * llgtr %r2,%r2 # sigset_emu31 *
llgfr %r3,%r3 # size_t llgfr %r3,%r3 # size_t
jg sys32_rt_sigpending # branch to system call jg sys32_rt_sigpending # branch to system call
.globl compat_sys_rt_sigtimedwait_wrapper ENTRY(compat_sys_rt_sigtimedwait_wrapper)
compat_sys_rt_sigtimedwait_wrapper:
llgtr %r2,%r2 # const sigset_emu31_t * llgtr %r2,%r2 # const sigset_emu31_t *
llgtr %r3,%r3 # siginfo_emu31_t * llgtr %r3,%r3 # siginfo_emu31_t *
llgtr %r4,%r4 # const struct compat_timespec * llgtr %r4,%r4 # const struct compat_timespec *
llgfr %r5,%r5 # size_t llgfr %r5,%r5 # size_t
jg compat_sys_rt_sigtimedwait # branch to system call jg compat_sys_rt_sigtimedwait # branch to system call
.globl sys32_rt_sigqueueinfo_wrapper ENTRY(sys32_rt_sigqueueinfo_wrapper)
sys32_rt_sigqueueinfo_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgtr %r4,%r4 # siginfo_emu31_t * llgtr %r4,%r4 # siginfo_emu31_t *
jg sys32_rt_sigqueueinfo # branch to system call jg sys32_rt_sigqueueinfo # branch to system call
.globl compat_sys_rt_sigsuspend_wrapper ENTRY(compat_sys_rt_sigsuspend_wrapper)
compat_sys_rt_sigsuspend_wrapper:
llgtr %r2,%r2 # compat_sigset_t * llgtr %r2,%r2 # compat_sigset_t *
llgfr %r3,%r3 # compat_size_t llgfr %r3,%r3 # compat_size_t
jg compat_sys_rt_sigsuspend jg compat_sys_rt_sigsuspend
.globl sys32_pread64_wrapper ENTRY(sys32_pread64_wrapper)
sys32_pread64_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgfr %r4,%r4 # size_t llgfr %r4,%r4 # size_t
...@@ -870,8 +738,7 @@ sys32_pread64_wrapper: ...@@ -870,8 +738,7 @@ sys32_pread64_wrapper:
llgfr %r6,%r6 # u32 llgfr %r6,%r6 # u32
jg sys32_pread64 # branch to system call jg sys32_pread64 # branch to system call
.globl sys32_pwrite64_wrapper ENTRY(sys32_pwrite64_wrapper)
sys32_pwrite64_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
llgfr %r4,%r4 # size_t llgfr %r4,%r4 # size_t
...@@ -879,39 +746,33 @@ sys32_pwrite64_wrapper: ...@@ -879,39 +746,33 @@ sys32_pwrite64_wrapper:
llgfr %r6,%r6 # u32 llgfr %r6,%r6 # u32
jg sys32_pwrite64 # branch to system call jg sys32_pwrite64 # branch to system call
.globl sys32_chown16_wrapper ENTRY(sys32_chown16_wrapper)
sys32_chown16_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgfr %r3,%r3 # __kernel_old_uid_emu31_t llgfr %r3,%r3 # __kernel_old_uid_emu31_t
llgfr %r4,%r4 # __kernel_old_gid_emu31_t llgfr %r4,%r4 # __kernel_old_gid_emu31_t
jg sys32_chown16 # branch to system call jg sys32_chown16 # branch to system call
.globl sys32_getcwd_wrapper ENTRY(sys32_getcwd_wrapper)
sys32_getcwd_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
jg sys_getcwd # branch to system call jg sys_getcwd # branch to system call
.globl sys32_capget_wrapper ENTRY(sys32_capget_wrapper)
sys32_capget_wrapper:
llgtr %r2,%r2 # cap_user_header_t llgtr %r2,%r2 # cap_user_header_t
llgtr %r3,%r3 # cap_user_data_t llgtr %r3,%r3 # cap_user_data_t
jg sys_capget # branch to system call jg sys_capget # branch to system call
.globl sys32_capset_wrapper ENTRY(sys32_capset_wrapper)
sys32_capset_wrapper:
llgtr %r2,%r2 # cap_user_header_t llgtr %r2,%r2 # cap_user_header_t
llgtr %r3,%r3 # const cap_user_data_t llgtr %r3,%r3 # const cap_user_data_t
jg sys_capset # branch to system call jg sys_capset # branch to system call
.globl sys32_sigaltstack_wrapper ENTRY(sys32_sigaltstack_wrapper)
sys32_sigaltstack_wrapper:
llgtr %r2,%r2 # const stack_emu31_t * llgtr %r2,%r2 # const stack_emu31_t *
llgtr %r3,%r3 # stack_emu31_t * llgtr %r3,%r3 # stack_emu31_t *
jg sys32_sigaltstack jg sys32_sigaltstack
.globl sys32_sendfile_wrapper ENTRY(sys32_sendfile_wrapper)
sys32_sendfile_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgtr %r4,%r4 # __kernel_off_emu31_t * llgtr %r4,%r4 # __kernel_off_emu31_t *
...@@ -920,22 +781,19 @@ sys32_sendfile_wrapper: ...@@ -920,22 +781,19 @@ sys32_sendfile_wrapper:
#sys32_vfork_wrapper # done in vfork_glue #sys32_vfork_wrapper # done in vfork_glue
.globl sys32_truncate64_wrapper ENTRY(sys32_truncate64_wrapper)
sys32_truncate64_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
jg sys32_truncate64 # branch to system call jg sys32_truncate64 # branch to system call
.globl sys32_ftruncate64_wrapper ENTRY(sys32_ftruncate64_wrapper)
sys32_ftruncate64_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
jg sys32_ftruncate64 # branch to system call jg sys32_ftruncate64 # branch to system call
.globl sys32_lchown_wrapper ENTRY(sys32_lchown_wrapper)
sys32_lchown_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgfr %r3,%r3 # uid_t llgfr %r3,%r3 # uid_t
llgfr %r4,%r4 # gid_t llgfr %r4,%r4 # gid_t
...@@ -946,156 +804,131 @@ sys32_lchown_wrapper: ...@@ -946,156 +804,131 @@ sys32_lchown_wrapper:
#sys32_geteuid_wrapper # void #sys32_geteuid_wrapper # void
#sys32_getegid_wrapper # void #sys32_getegid_wrapper # void
.globl sys32_setreuid_wrapper ENTRY(sys32_setreuid_wrapper)
sys32_setreuid_wrapper:
llgfr %r2,%r2 # uid_t llgfr %r2,%r2 # uid_t
llgfr %r3,%r3 # uid_t llgfr %r3,%r3 # uid_t
jg sys_setreuid # branch to system call jg sys_setreuid # branch to system call
.globl sys32_setregid_wrapper ENTRY(sys32_setregid_wrapper)
sys32_setregid_wrapper:
llgfr %r2,%r2 # gid_t llgfr %r2,%r2 # gid_t
llgfr %r3,%r3 # gid_t llgfr %r3,%r3 # gid_t
jg sys_setregid # branch to system call jg sys_setregid # branch to system call
.globl sys32_getgroups_wrapper ENTRY(sys32_getgroups_wrapper)
sys32_getgroups_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # gid_t * llgtr %r3,%r3 # gid_t *
jg sys_getgroups # branch to system call jg sys_getgroups # branch to system call
.globl sys32_setgroups_wrapper ENTRY(sys32_setgroups_wrapper)
sys32_setgroups_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # gid_t * llgtr %r3,%r3 # gid_t *
jg sys_setgroups # branch to system call jg sys_setgroups # branch to system call
.globl sys32_fchown_wrapper ENTRY(sys32_fchown_wrapper)
sys32_fchown_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # uid_t llgfr %r3,%r3 # uid_t
llgfr %r4,%r4 # gid_t llgfr %r4,%r4 # gid_t
jg sys_fchown # branch to system call jg sys_fchown # branch to system call
.globl sys32_setresuid_wrapper ENTRY(sys32_setresuid_wrapper)
sys32_setresuid_wrapper:
llgfr %r2,%r2 # uid_t llgfr %r2,%r2 # uid_t
llgfr %r3,%r3 # uid_t llgfr %r3,%r3 # uid_t
llgfr %r4,%r4 # uid_t llgfr %r4,%r4 # uid_t
jg sys_setresuid # branch to system call jg sys_setresuid # branch to system call
.globl sys32_getresuid_wrapper ENTRY(sys32_getresuid_wrapper)
sys32_getresuid_wrapper:
llgtr %r2,%r2 # uid_t * llgtr %r2,%r2 # uid_t *
llgtr %r3,%r3 # uid_t * llgtr %r3,%r3 # uid_t *
llgtr %r4,%r4 # uid_t * llgtr %r4,%r4 # uid_t *
jg sys_getresuid # branch to system call jg sys_getresuid # branch to system call
.globl sys32_setresgid_wrapper ENTRY(sys32_setresgid_wrapper)
sys32_setresgid_wrapper:
llgfr %r2,%r2 # gid_t llgfr %r2,%r2 # gid_t
llgfr %r3,%r3 # gid_t llgfr %r3,%r3 # gid_t
llgfr %r4,%r4 # gid_t llgfr %r4,%r4 # gid_t
jg sys_setresgid # branch to system call jg sys_setresgid # branch to system call
.globl sys32_getresgid_wrapper ENTRY(sys32_getresgid_wrapper)
sys32_getresgid_wrapper:
llgtr %r2,%r2 # gid_t * llgtr %r2,%r2 # gid_t *
llgtr %r3,%r3 # gid_t * llgtr %r3,%r3 # gid_t *
llgtr %r4,%r4 # gid_t * llgtr %r4,%r4 # gid_t *
jg sys_getresgid # branch to system call jg sys_getresgid # branch to system call
.globl sys32_chown_wrapper ENTRY(sys32_chown_wrapper)
sys32_chown_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgfr %r3,%r3 # uid_t llgfr %r3,%r3 # uid_t
llgfr %r4,%r4 # gid_t llgfr %r4,%r4 # gid_t
jg sys_chown # branch to system call jg sys_chown # branch to system call
.globl sys32_setuid_wrapper ENTRY(sys32_setuid_wrapper)
sys32_setuid_wrapper:
llgfr %r2,%r2 # uid_t llgfr %r2,%r2 # uid_t
jg sys_setuid # branch to system call jg sys_setuid # branch to system call
.globl sys32_setgid_wrapper ENTRY(sys32_setgid_wrapper)
sys32_setgid_wrapper:
llgfr %r2,%r2 # gid_t llgfr %r2,%r2 # gid_t
jg sys_setgid # branch to system call jg sys_setgid # branch to system call
.globl sys32_setfsuid_wrapper ENTRY(sys32_setfsuid_wrapper)
sys32_setfsuid_wrapper:
llgfr %r2,%r2 # uid_t llgfr %r2,%r2 # uid_t
jg sys_setfsuid # branch to system call jg sys_setfsuid # branch to system call
.globl sys32_setfsgid_wrapper ENTRY(sys32_setfsgid_wrapper)
sys32_setfsgid_wrapper:
llgfr %r2,%r2 # gid_t llgfr %r2,%r2 # gid_t
jg sys_setfsgid # branch to system call jg sys_setfsgid # branch to system call
.globl sys32_pivot_root_wrapper ENTRY(sys32_pivot_root_wrapper)
sys32_pivot_root_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
jg sys_pivot_root # branch to system call jg sys_pivot_root # branch to system call
.globl sys32_mincore_wrapper ENTRY(sys32_mincore_wrapper)
sys32_mincore_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgfr %r3,%r3 # size_t llgfr %r3,%r3 # size_t
llgtr %r4,%r4 # unsigned char * llgtr %r4,%r4 # unsigned char *
jg sys_mincore # branch to system call jg sys_mincore # branch to system call
.globl sys32_madvise_wrapper ENTRY(sys32_madvise_wrapper)
sys32_madvise_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgfr %r3,%r3 # size_t llgfr %r3,%r3 # size_t
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_madvise # branch to system call jg sys_madvise # branch to system call
.globl sys32_getdents64_wrapper ENTRY(sys32_getdents64_wrapper)
sys32_getdents64_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # void * llgtr %r3,%r3 # void *
llgfr %r4,%r4 # unsigned int llgfr %r4,%r4 # unsigned int
jg sys_getdents64 # branch to system call jg sys_getdents64 # branch to system call
.globl compat_sys_fcntl64_wrapper ENTRY(compat_sys_fcntl64_wrapper)
compat_sys_fcntl64_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
jg compat_sys_fcntl64 # branch to system call jg compat_sys_fcntl64 # branch to system call
.globl sys32_stat64_wrapper ENTRY(sys32_stat64_wrapper)
sys32_stat64_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # struct stat64 * llgtr %r3,%r3 # struct stat64 *
jg sys32_stat64 # branch to system call jg sys32_stat64 # branch to system call
.globl sys32_lstat64_wrapper ENTRY(sys32_lstat64_wrapper)
sys32_lstat64_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # struct stat64 * llgtr %r3,%r3 # struct stat64 *
jg sys32_lstat64 # branch to system call jg sys32_lstat64 # branch to system call
.globl sys32_stime_wrapper ENTRY(sys32_stime_wrapper)
sys32_stime_wrapper:
llgtr %r2,%r2 # long * llgtr %r2,%r2 # long *
jg compat_sys_stime # branch to system call jg compat_sys_stime # branch to system call
.globl sys32_sysctl_wrapper ENTRY(sys32_sysctl_wrapper)
sys32_sysctl_wrapper:
llgtr %r2,%r2 # struct compat_sysctl_args * llgtr %r2,%r2 # struct compat_sysctl_args *
jg compat_sys_sysctl jg compat_sys_sysctl
.globl sys32_fstat64_wrapper ENTRY(sys32_fstat64_wrapper)
sys32_fstat64_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgtr %r3,%r3 # struct stat64 * llgtr %r3,%r3 # struct stat64 *
jg sys32_fstat64 # branch to system call jg sys32_fstat64 # branch to system call
.globl compat_sys_futex_wrapper ENTRY(compat_sys_futex_wrapper)
compat_sys_futex_wrapper:
llgtr %r2,%r2 # u32 * llgtr %r2,%r2 # u32 *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
...@@ -1105,8 +938,7 @@ compat_sys_futex_wrapper: ...@@ -1105,8 +938,7 @@ compat_sys_futex_wrapper:
stg %r0,160(%r15) stg %r0,160(%r15)
jg compat_sys_futex # branch to system call jg compat_sys_futex # branch to system call
.globl sys32_setxattr_wrapper ENTRY(sys32_setxattr_wrapper)
sys32_setxattr_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgtr %r4,%r4 # void * llgtr %r4,%r4 # void *
...@@ -1114,8 +946,7 @@ sys32_setxattr_wrapper: ...@@ -1114,8 +946,7 @@ sys32_setxattr_wrapper:
lgfr %r6,%r6 # int lgfr %r6,%r6 # int
jg sys_setxattr jg sys_setxattr
.globl sys32_lsetxattr_wrapper ENTRY(sys32_lsetxattr_wrapper)
sys32_lsetxattr_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgtr %r4,%r4 # void * llgtr %r4,%r4 # void *
...@@ -1123,8 +954,7 @@ sys32_lsetxattr_wrapper: ...@@ -1123,8 +954,7 @@ sys32_lsetxattr_wrapper:
lgfr %r6,%r6 # int lgfr %r6,%r6 # int
jg sys_lsetxattr jg sys_lsetxattr
.globl sys32_fsetxattr_wrapper ENTRY(sys32_fsetxattr_wrapper)
sys32_fsetxattr_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgtr %r4,%r4 # void * llgtr %r4,%r4 # void *
...@@ -1132,124 +962,106 @@ sys32_fsetxattr_wrapper: ...@@ -1132,124 +962,106 @@ sys32_fsetxattr_wrapper:
lgfr %r6,%r6 # int lgfr %r6,%r6 # int
jg sys_fsetxattr jg sys_fsetxattr
.globl sys32_getxattr_wrapper ENTRY(sys32_getxattr_wrapper)
sys32_getxattr_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgtr %r4,%r4 # void * llgtr %r4,%r4 # void *
llgfr %r5,%r5 # size_t llgfr %r5,%r5 # size_t
jg sys_getxattr jg sys_getxattr
.globl sys32_lgetxattr_wrapper ENTRY(sys32_lgetxattr_wrapper)
sys32_lgetxattr_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgtr %r4,%r4 # void * llgtr %r4,%r4 # void *
llgfr %r5,%r5 # size_t llgfr %r5,%r5 # size_t
jg sys_lgetxattr jg sys_lgetxattr
.globl sys32_fgetxattr_wrapper ENTRY(sys32_fgetxattr_wrapper)
sys32_fgetxattr_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgtr %r4,%r4 # void * llgtr %r4,%r4 # void *
llgfr %r5,%r5 # size_t llgfr %r5,%r5 # size_t
jg sys_fgetxattr jg sys_fgetxattr
.globl sys32_listxattr_wrapper ENTRY(sys32_listxattr_wrapper)
sys32_listxattr_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgfr %r4,%r4 # size_t llgfr %r4,%r4 # size_t
jg sys_listxattr jg sys_listxattr
.globl sys32_llistxattr_wrapper ENTRY(sys32_llistxattr_wrapper)
sys32_llistxattr_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgfr %r4,%r4 # size_t llgfr %r4,%r4 # size_t
jg sys_llistxattr jg sys_llistxattr
.globl sys32_flistxattr_wrapper ENTRY(sys32_flistxattr_wrapper)
sys32_flistxattr_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgfr %r4,%r4 # size_t llgfr %r4,%r4 # size_t
jg sys_flistxattr jg sys_flistxattr
.globl sys32_removexattr_wrapper ENTRY(sys32_removexattr_wrapper)
sys32_removexattr_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
jg sys_removexattr jg sys_removexattr
.globl sys32_lremovexattr_wrapper ENTRY(sys32_lremovexattr_wrapper)
sys32_lremovexattr_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
jg sys_lremovexattr jg sys_lremovexattr
.globl sys32_fremovexattr_wrapper ENTRY(sys32_fremovexattr_wrapper)
sys32_fremovexattr_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
jg sys_fremovexattr jg sys_fremovexattr
.globl sys32_sched_setaffinity_wrapper ENTRY(sys32_sched_setaffinity_wrapper)
sys32_sched_setaffinity_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
llgtr %r4,%r4 # unsigned long * llgtr %r4,%r4 # unsigned long *
jg compat_sys_sched_setaffinity jg compat_sys_sched_setaffinity
.globl sys32_sched_getaffinity_wrapper ENTRY(sys32_sched_getaffinity_wrapper)
sys32_sched_getaffinity_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
llgtr %r4,%r4 # unsigned long * llgtr %r4,%r4 # unsigned long *
jg compat_sys_sched_getaffinity jg compat_sys_sched_getaffinity
.globl sys32_exit_group_wrapper ENTRY(sys32_exit_group_wrapper)
sys32_exit_group_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
jg sys_exit_group # branch to system call jg sys_exit_group # branch to system call
.globl sys32_set_tid_address_wrapper ENTRY(sys32_set_tid_address_wrapper)
sys32_set_tid_address_wrapper:
llgtr %r2,%r2 # int * llgtr %r2,%r2 # int *
jg sys_set_tid_address # branch to system call jg sys_set_tid_address # branch to system call
.globl sys_epoll_create_wrapper ENTRY(sys_epoll_create_wrapper)
sys_epoll_create_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
jg sys_epoll_create # branch to system call jg sys_epoll_create # branch to system call
.globl sys_epoll_ctl_wrapper ENTRY(sys_epoll_ctl_wrapper)
sys_epoll_ctl_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
llgtr %r5,%r5 # struct epoll_event * llgtr %r5,%r5 # struct epoll_event *
jg sys_epoll_ctl # branch to system call jg sys_epoll_ctl # branch to system call
.globl sys_epoll_wait_wrapper ENTRY(sys_epoll_wait_wrapper)
sys_epoll_wait_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # struct epoll_event * llgtr %r3,%r3 # struct epoll_event *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
lgfr %r5,%r5 # int lgfr %r5,%r5 # int
jg sys_epoll_wait # branch to system call jg sys_epoll_wait # branch to system call
.globl sys32_lookup_dcookie_wrapper ENTRY(sys32_lookup_dcookie_wrapper)
sys32_lookup_dcookie_wrapper:
sllg %r2,%r2,32 # get high word of 64bit dcookie sllg %r2,%r2,32 # get high word of 64bit dcookie
or %r2,%r3 # get low word of 64bit dcookie or %r2,%r3 # get low word of 64bit dcookie
llgtr %r3,%r4 # char * llgtr %r3,%r4 # char *
llgfr %r4,%r5 # size_t llgfr %r4,%r5 # size_t
jg sys_lookup_dcookie jg sys_lookup_dcookie
.globl sys32_fadvise64_wrapper ENTRY(sys32_fadvise64_wrapper)
sys32_fadvise64_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
sllg %r3,%r3,32 # get high word of 64bit loff_t sllg %r3,%r3,32 # get high word of 64bit loff_t
or %r3,%r4 # get low word of 64bit loff_t or %r3,%r4 # get low word of 64bit loff_t
...@@ -1257,81 +1069,68 @@ sys32_fadvise64_wrapper: ...@@ -1257,81 +1069,68 @@ sys32_fadvise64_wrapper:
lgfr %r5,%r6 # int lgfr %r5,%r6 # int
jg sys32_fadvise64 jg sys32_fadvise64
.globl sys32_fadvise64_64_wrapper ENTRY(sys32_fadvise64_64_wrapper)
sys32_fadvise64_64_wrapper:
llgtr %r2,%r2 # struct fadvise64_64_args * llgtr %r2,%r2 # struct fadvise64_64_args *
jg sys32_fadvise64_64 jg sys32_fadvise64_64
.globl sys32_clock_settime_wrapper ENTRY(sys32_clock_settime_wrapper)
sys32_clock_settime_wrapper:
lgfr %r2,%r2 # clockid_t (int) lgfr %r2,%r2 # clockid_t (int)
llgtr %r3,%r3 # struct compat_timespec * llgtr %r3,%r3 # struct compat_timespec *
jg compat_sys_clock_settime jg compat_sys_clock_settime
.globl sys32_clock_gettime_wrapper ENTRY(sys32_clock_gettime_wrapper)
sys32_clock_gettime_wrapper:
lgfr %r2,%r2 # clockid_t (int) lgfr %r2,%r2 # clockid_t (int)
llgtr %r3,%r3 # struct compat_timespec * llgtr %r3,%r3 # struct compat_timespec *
jg compat_sys_clock_gettime jg compat_sys_clock_gettime
.globl sys32_clock_getres_wrapper ENTRY(sys32_clock_getres_wrapper)
sys32_clock_getres_wrapper:
lgfr %r2,%r2 # clockid_t (int) lgfr %r2,%r2 # clockid_t (int)
llgtr %r3,%r3 # struct compat_timespec * llgtr %r3,%r3 # struct compat_timespec *
jg compat_sys_clock_getres jg compat_sys_clock_getres
.globl sys32_clock_nanosleep_wrapper ENTRY(sys32_clock_nanosleep_wrapper)
sys32_clock_nanosleep_wrapper:
lgfr %r2,%r2 # clockid_t (int) lgfr %r2,%r2 # clockid_t (int)
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgtr %r4,%r4 # struct compat_timespec * llgtr %r4,%r4 # struct compat_timespec *
llgtr %r5,%r5 # struct compat_timespec * llgtr %r5,%r5 # struct compat_timespec *
jg compat_sys_clock_nanosleep jg compat_sys_clock_nanosleep
.globl sys32_timer_create_wrapper ENTRY(sys32_timer_create_wrapper)
sys32_timer_create_wrapper:
lgfr %r2,%r2 # timer_t (int) lgfr %r2,%r2 # timer_t (int)
llgtr %r3,%r3 # struct compat_sigevent * llgtr %r3,%r3 # struct compat_sigevent *
llgtr %r4,%r4 # timer_t * llgtr %r4,%r4 # timer_t *
jg compat_sys_timer_create jg compat_sys_timer_create
.globl sys32_timer_settime_wrapper ENTRY(sys32_timer_settime_wrapper)
sys32_timer_settime_wrapper:
lgfr %r2,%r2 # timer_t (int) lgfr %r2,%r2 # timer_t (int)
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgtr %r4,%r4 # struct compat_itimerspec * llgtr %r4,%r4 # struct compat_itimerspec *
llgtr %r5,%r5 # struct compat_itimerspec * llgtr %r5,%r5 # struct compat_itimerspec *
jg compat_sys_timer_settime jg compat_sys_timer_settime
.globl sys32_timer_gettime_wrapper ENTRY(sys32_timer_gettime_wrapper)
sys32_timer_gettime_wrapper:
lgfr %r2,%r2 # timer_t (int) lgfr %r2,%r2 # timer_t (int)
llgtr %r3,%r3 # struct compat_itimerspec * llgtr %r3,%r3 # struct compat_itimerspec *
jg compat_sys_timer_gettime jg compat_sys_timer_gettime
.globl sys32_timer_getoverrun_wrapper ENTRY(sys32_timer_getoverrun_wrapper)
sys32_timer_getoverrun_wrapper:
lgfr %r2,%r2 # timer_t (int) lgfr %r2,%r2 # timer_t (int)
jg sys_timer_getoverrun jg sys_timer_getoverrun
.globl sys32_timer_delete_wrapper ENTRY(sys32_timer_delete_wrapper)
sys32_timer_delete_wrapper:
lgfr %r2,%r2 # timer_t (int) lgfr %r2,%r2 # timer_t (int)
jg sys_timer_delete jg sys_timer_delete
.globl sys32_io_setup_wrapper ENTRY(sys32_io_setup_wrapper)
sys32_io_setup_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # u32 * llgtr %r3,%r3 # u32 *
jg compat_sys_io_setup jg compat_sys_io_setup
.globl sys32_io_destroy_wrapper ENTRY(sys32_io_destroy_wrapper)
sys32_io_destroy_wrapper:
llgfr %r2,%r2 # (aio_context_t) u32 llgfr %r2,%r2 # (aio_context_t) u32
jg sys_io_destroy jg sys_io_destroy
.globl sys32_io_getevents_wrapper ENTRY(sys32_io_getevents_wrapper)
sys32_io_getevents_wrapper:
llgfr %r2,%r2 # (aio_context_t) u32 llgfr %r2,%r2 # (aio_context_t) u32
lgfr %r3,%r3 # long lgfr %r3,%r3 # long
lgfr %r4,%r4 # long lgfr %r4,%r4 # long
...@@ -1339,49 +1138,42 @@ sys32_io_getevents_wrapper: ...@@ -1339,49 +1138,42 @@ sys32_io_getevents_wrapper:
llgtr %r6,%r6 # struct compat_timespec * llgtr %r6,%r6 # struct compat_timespec *
jg compat_sys_io_getevents jg compat_sys_io_getevents
.globl sys32_io_submit_wrapper ENTRY(sys32_io_submit_wrapper)
sys32_io_submit_wrapper:
llgfr %r2,%r2 # (aio_context_t) u32 llgfr %r2,%r2 # (aio_context_t) u32
lgfr %r3,%r3 # long lgfr %r3,%r3 # long
llgtr %r4,%r4 # struct iocb ** llgtr %r4,%r4 # struct iocb **
jg compat_sys_io_submit jg compat_sys_io_submit
.globl sys32_io_cancel_wrapper ENTRY(sys32_io_cancel_wrapper)
sys32_io_cancel_wrapper:
llgfr %r2,%r2 # (aio_context_t) u32 llgfr %r2,%r2 # (aio_context_t) u32
llgtr %r3,%r3 # struct iocb * llgtr %r3,%r3 # struct iocb *
llgtr %r4,%r4 # struct io_event * llgtr %r4,%r4 # struct io_event *
jg sys_io_cancel jg sys_io_cancel
.globl compat_sys_statfs64_wrapper ENTRY(compat_sys_statfs64_wrapper)
compat_sys_statfs64_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgfr %r3,%r3 # compat_size_t llgfr %r3,%r3 # compat_size_t
llgtr %r4,%r4 # struct compat_statfs64 * llgtr %r4,%r4 # struct compat_statfs64 *
jg compat_sys_statfs64 jg compat_sys_statfs64
.globl compat_sys_fstatfs64_wrapper ENTRY(compat_sys_fstatfs64_wrapper)
compat_sys_fstatfs64_wrapper:
llgfr %r2,%r2 # unsigned int fd llgfr %r2,%r2 # unsigned int fd
llgfr %r3,%r3 # compat_size_t llgfr %r3,%r3 # compat_size_t
llgtr %r4,%r4 # struct compat_statfs64 * llgtr %r4,%r4 # struct compat_statfs64 *
jg compat_sys_fstatfs64 jg compat_sys_fstatfs64
.globl compat_sys_mq_open_wrapper ENTRY(compat_sys_mq_open_wrapper)
compat_sys_mq_open_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgfr %r4,%r4 # mode_t llgfr %r4,%r4 # mode_t
llgtr %r5,%r5 # struct compat_mq_attr * llgtr %r5,%r5 # struct compat_mq_attr *
jg compat_sys_mq_open jg compat_sys_mq_open
.globl sys32_mq_unlink_wrapper ENTRY(sys32_mq_unlink_wrapper)
sys32_mq_unlink_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
jg sys_mq_unlink jg sys_mq_unlink
.globl compat_sys_mq_timedsend_wrapper ENTRY(compat_sys_mq_timedsend_wrapper)
compat_sys_mq_timedsend_wrapper:
lgfr %r2,%r2 # mqd_t lgfr %r2,%r2 # mqd_t
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
llgfr %r4,%r4 # size_t llgfr %r4,%r4 # size_t
...@@ -1389,8 +1181,7 @@ compat_sys_mq_timedsend_wrapper: ...@@ -1389,8 +1181,7 @@ compat_sys_mq_timedsend_wrapper:
llgtr %r6,%r6 # const struct compat_timespec * llgtr %r6,%r6 # const struct compat_timespec *
jg compat_sys_mq_timedsend jg compat_sys_mq_timedsend
.globl compat_sys_mq_timedreceive_wrapper ENTRY(compat_sys_mq_timedreceive_wrapper)
compat_sys_mq_timedreceive_wrapper:
lgfr %r2,%r2 # mqd_t lgfr %r2,%r2 # mqd_t
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgfr %r4,%r4 # size_t llgfr %r4,%r4 # size_t
...@@ -1398,21 +1189,18 @@ compat_sys_mq_timedreceive_wrapper: ...@@ -1398,21 +1189,18 @@ compat_sys_mq_timedreceive_wrapper:
llgtr %r6,%r6 # const struct compat_timespec * llgtr %r6,%r6 # const struct compat_timespec *
jg compat_sys_mq_timedreceive jg compat_sys_mq_timedreceive
.globl compat_sys_mq_notify_wrapper ENTRY(compat_sys_mq_notify_wrapper)
compat_sys_mq_notify_wrapper:
lgfr %r2,%r2 # mqd_t lgfr %r2,%r2 # mqd_t
llgtr %r3,%r3 # struct compat_sigevent * llgtr %r3,%r3 # struct compat_sigevent *
jg compat_sys_mq_notify jg compat_sys_mq_notify
.globl compat_sys_mq_getsetattr_wrapper ENTRY(compat_sys_mq_getsetattr_wrapper)
compat_sys_mq_getsetattr_wrapper:
lgfr %r2,%r2 # mqd_t lgfr %r2,%r2 # mqd_t
llgtr %r3,%r3 # struct compat_mq_attr * llgtr %r3,%r3 # struct compat_mq_attr *
llgtr %r4,%r4 # struct compat_mq_attr * llgtr %r4,%r4 # struct compat_mq_attr *
jg compat_sys_mq_getsetattr jg compat_sys_mq_getsetattr
.globl compat_sys_add_key_wrapper ENTRY(compat_sys_add_key_wrapper)
compat_sys_add_key_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
llgtr %r4,%r4 # const void * llgtr %r4,%r4 # const void *
...@@ -1420,16 +1208,14 @@ compat_sys_add_key_wrapper: ...@@ -1420,16 +1208,14 @@ compat_sys_add_key_wrapper:
llgfr %r6,%r6 # (key_serial_t) u32 llgfr %r6,%r6 # (key_serial_t) u32
jg sys_add_key jg sys_add_key
.globl compat_sys_request_key_wrapper ENTRY(compat_sys_request_key_wrapper)
compat_sys_request_key_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
llgtr %r4,%r4 # const void * llgtr %r4,%r4 # const void *
llgfr %r5,%r5 # (key_serial_t) u32 llgfr %r5,%r5 # (key_serial_t) u32
jg sys_request_key jg sys_request_key
.globl sys32_remap_file_pages_wrapper ENTRY(sys32_remap_file_pages_wrapper)
sys32_remap_file_pages_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
...@@ -1437,8 +1223,7 @@ sys32_remap_file_pages_wrapper: ...@@ -1437,8 +1223,7 @@ sys32_remap_file_pages_wrapper:
llgfr %r6,%r6 # unsigned long llgfr %r6,%r6 # unsigned long
jg sys_remap_file_pages jg sys_remap_file_pages
.globl compat_sys_waitid_wrapper ENTRY(compat_sys_waitid_wrapper)
compat_sys_waitid_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # pid_t lgfr %r3,%r3 # pid_t
llgtr %r4,%r4 # siginfo_emu31_t * llgtr %r4,%r4 # siginfo_emu31_t *
...@@ -1446,65 +1231,56 @@ compat_sys_waitid_wrapper: ...@@ -1446,65 +1231,56 @@ compat_sys_waitid_wrapper:
llgtr %r6,%r6 # struct rusage_emu31 * llgtr %r6,%r6 # struct rusage_emu31 *
jg compat_sys_waitid jg compat_sys_waitid
.globl compat_sys_kexec_load_wrapper ENTRY(compat_sys_kexec_load_wrapper)
compat_sys_kexec_load_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
llgtr %r4,%r4 # struct kexec_segment * llgtr %r4,%r4 # struct kexec_segment *
llgfr %r5,%r5 # unsigned long llgfr %r5,%r5 # unsigned long
jg compat_sys_kexec_load jg compat_sys_kexec_load
.globl sys_ioprio_set_wrapper ENTRY(sys_ioprio_set_wrapper)
sys_ioprio_set_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_ioprio_set jg sys_ioprio_set
.globl sys_ioprio_get_wrapper ENTRY(sys_ioprio_get_wrapper)
sys_ioprio_get_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_ioprio_get jg sys_ioprio_get
.globl sys_inotify_add_watch_wrapper ENTRY(sys_inotify_add_watch_wrapper)
sys_inotify_add_watch_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
llgfr %r4,%r4 # u32 llgfr %r4,%r4 # u32
jg sys_inotify_add_watch jg sys_inotify_add_watch
.globl sys_inotify_rm_watch_wrapper ENTRY(sys_inotify_rm_watch_wrapper)
sys_inotify_rm_watch_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgfr %r3,%r3 # u32 llgfr %r3,%r3 # u32
jg sys_inotify_rm_watch jg sys_inotify_rm_watch
.globl compat_sys_openat_wrapper ENTRY(compat_sys_openat_wrapper)
compat_sys_openat_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
lgfr %r5,%r5 # int lgfr %r5,%r5 # int
jg compat_sys_openat jg compat_sys_openat
.globl sys_mkdirat_wrapper ENTRY(sys_mkdirat_wrapper)
sys_mkdirat_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_mkdirat jg sys_mkdirat
.globl sys_mknodat_wrapper ENTRY(sys_mknodat_wrapper)
sys_mknodat_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
llgfr %r5,%r5 # unsigned int llgfr %r5,%r5 # unsigned int
jg sys_mknodat jg sys_mknodat
.globl sys_fchownat_wrapper ENTRY(sys_fchownat_wrapper)
sys_fchownat_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
llgfr %r4,%r4 # uid_t llgfr %r4,%r4 # uid_t
...@@ -1512,38 +1288,33 @@ sys_fchownat_wrapper: ...@@ -1512,38 +1288,33 @@ sys_fchownat_wrapper:
lgfr %r6,%r6 # int lgfr %r6,%r6 # int
jg sys_fchownat jg sys_fchownat
.globl compat_sys_futimesat_wrapper ENTRY(compat_sys_futimesat_wrapper)
compat_sys_futimesat_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgtr %r4,%r4 # struct timeval * llgtr %r4,%r4 # struct timeval *
jg compat_sys_futimesat jg compat_sys_futimesat
.globl sys32_fstatat64_wrapper ENTRY(sys32_fstatat64_wrapper)
sys32_fstatat64_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgtr %r4,%r4 # struct stat64 * llgtr %r4,%r4 # struct stat64 *
lgfr %r5,%r5 # int lgfr %r5,%r5 # int
jg sys32_fstatat64 jg sys32_fstatat64
.globl sys_unlinkat_wrapper ENTRY(sys_unlinkat_wrapper)
sys_unlinkat_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_unlinkat jg sys_unlinkat
.globl sys_renameat_wrapper ENTRY(sys_renameat_wrapper)
sys_renameat_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
llgtr %r5,%r5 # const char * llgtr %r5,%r5 # const char *
jg sys_renameat jg sys_renameat
.globl sys_linkat_wrapper ENTRY(sys_linkat_wrapper)
sys_linkat_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
...@@ -1551,37 +1322,32 @@ sys_linkat_wrapper: ...@@ -1551,37 +1322,32 @@ sys_linkat_wrapper:
lgfr %r6,%r6 # int lgfr %r6,%r6 # int
jg sys_linkat jg sys_linkat
.globl sys_symlinkat_wrapper ENTRY(sys_symlinkat_wrapper)
sys_symlinkat_wrapper:
llgtr %r2,%r2 # const char * llgtr %r2,%r2 # const char *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgtr %r4,%r4 # const char * llgtr %r4,%r4 # const char *
jg sys_symlinkat jg sys_symlinkat
.globl sys_readlinkat_wrapper ENTRY(sys_readlinkat_wrapper)
sys_readlinkat_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
llgtr %r4,%r4 # char * llgtr %r4,%r4 # char *
lgfr %r5,%r5 # int lgfr %r5,%r5 # int
jg sys_readlinkat jg sys_readlinkat
.globl sys_fchmodat_wrapper ENTRY(sys_fchmodat_wrapper)
sys_fchmodat_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
llgfr %r4,%r4 # mode_t llgfr %r4,%r4 # mode_t
jg sys_fchmodat jg sys_fchmodat
.globl sys_faccessat_wrapper ENTRY(sys_faccessat_wrapper)
sys_faccessat_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const char * llgtr %r3,%r3 # const char *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_faccessat jg sys_faccessat
.globl compat_sys_pselect6_wrapper ENTRY(compat_sys_pselect6_wrapper)
compat_sys_pselect6_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # fd_set * llgtr %r3,%r3 # fd_set *
llgtr %r4,%r4 # fd_set * llgtr %r4,%r4 # fd_set *
...@@ -1591,8 +1357,7 @@ compat_sys_pselect6_wrapper: ...@@ -1591,8 +1357,7 @@ compat_sys_pselect6_wrapper:
stg %r0,160(%r15) stg %r0,160(%r15)
jg compat_sys_pselect6 jg compat_sys_pselect6
.globl compat_sys_ppoll_wrapper ENTRY(compat_sys_ppoll_wrapper)
compat_sys_ppoll_wrapper:
llgtr %r2,%r2 # struct pollfd * llgtr %r2,%r2 # struct pollfd *
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
llgtr %r4,%r4 # struct timespec * llgtr %r4,%r4 # struct timespec *
...@@ -1600,26 +1365,22 @@ compat_sys_ppoll_wrapper: ...@@ -1600,26 +1365,22 @@ compat_sys_ppoll_wrapper:
llgfr %r6,%r6 # size_t llgfr %r6,%r6 # size_t
jg compat_sys_ppoll jg compat_sys_ppoll
.globl sys_unshare_wrapper ENTRY(sys_unshare_wrapper)
sys_unshare_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
jg sys_unshare jg sys_unshare
.globl compat_sys_set_robust_list_wrapper ENTRY(compat_sys_set_robust_list_wrapper)
compat_sys_set_robust_list_wrapper:
llgtr %r2,%r2 # struct compat_robust_list_head * llgtr %r2,%r2 # struct compat_robust_list_head *
llgfr %r3,%r3 # size_t llgfr %r3,%r3 # size_t
jg compat_sys_set_robust_list jg compat_sys_set_robust_list
.globl compat_sys_get_robust_list_wrapper ENTRY(compat_sys_get_robust_list_wrapper)
compat_sys_get_robust_list_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # compat_uptr_t_t * llgtr %r3,%r3 # compat_uptr_t_t *
llgtr %r4,%r4 # compat_size_t * llgtr %r4,%r4 # compat_size_t *
jg compat_sys_get_robust_list jg compat_sys_get_robust_list
.globl sys_splice_wrapper ENTRY(sys_splice_wrapper)
sys_splice_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # loff_t * llgtr %r3,%r3 # loff_t *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
...@@ -1629,8 +1390,7 @@ sys_splice_wrapper: ...@@ -1629,8 +1390,7 @@ sys_splice_wrapper:
stg %r0,160(%r15) stg %r0,160(%r15)
jg sys_splice jg sys_splice
.globl sys_sync_file_range_wrapper ENTRY(sys_sync_file_range_wrapper)
sys_sync_file_range_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
sllg %r3,%r3,32 # get high word of 64bit loff_t sllg %r3,%r3,32 # get high word of 64bit loff_t
or %r3,%r4 # get low word of 64bit loff_t or %r3,%r4 # get low word of 64bit loff_t
...@@ -1639,31 +1399,27 @@ sys_sync_file_range_wrapper: ...@@ -1639,31 +1399,27 @@ sys_sync_file_range_wrapper:
llgf %r5,164(%r15) # unsigned int llgf %r5,164(%r15) # unsigned int
jg sys_sync_file_range jg sys_sync_file_range
.globl sys_tee_wrapper ENTRY(sys_tee_wrapper)
sys_tee_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgfr %r4,%r4 # size_t llgfr %r4,%r4 # size_t
llgfr %r5,%r5 # unsigned int llgfr %r5,%r5 # unsigned int
jg sys_tee jg sys_tee
.globl compat_sys_vmsplice_wrapper ENTRY(compat_sys_vmsplice_wrapper)
compat_sys_vmsplice_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # compat_iovec * llgtr %r3,%r3 # compat_iovec *
llgfr %r4,%r4 # unsigned int llgfr %r4,%r4 # unsigned int
llgfr %r5,%r5 # unsigned int llgfr %r5,%r5 # unsigned int
jg compat_sys_vmsplice jg compat_sys_vmsplice
.globl sys_getcpu_wrapper ENTRY(sys_getcpu_wrapper)
sys_getcpu_wrapper:
llgtr %r2,%r2 # unsigned * llgtr %r2,%r2 # unsigned *
llgtr %r3,%r3 # unsigned * llgtr %r3,%r3 # unsigned *
llgtr %r4,%r4 # struct getcpu_cache * llgtr %r4,%r4 # struct getcpu_cache *
jg sys_getcpu jg sys_getcpu
.globl compat_sys_epoll_pwait_wrapper ENTRY(compat_sys_epoll_pwait_wrapper)
compat_sys_epoll_pwait_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # struct compat_epoll_event * llgtr %r3,%r3 # struct compat_epoll_event *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
...@@ -1673,34 +1429,29 @@ compat_sys_epoll_pwait_wrapper: ...@@ -1673,34 +1429,29 @@ compat_sys_epoll_pwait_wrapper:
stg %r0,160(%r15) stg %r0,160(%r15)
jg compat_sys_epoll_pwait jg compat_sys_epoll_pwait
.globl compat_sys_utimes_wrapper ENTRY(compat_sys_utimes_wrapper)
compat_sys_utimes_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # struct compat_timeval * llgtr %r3,%r3 # struct compat_timeval *
jg compat_sys_utimes jg compat_sys_utimes
.globl compat_sys_utimensat_wrapper ENTRY(compat_sys_utimensat_wrapper)
compat_sys_utimensat_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgtr %r3,%r3 # char * llgtr %r3,%r3 # char *
llgtr %r4,%r4 # struct compat_timespec * llgtr %r4,%r4 # struct compat_timespec *
lgfr %r5,%r5 # int lgfr %r5,%r5 # int
jg compat_sys_utimensat jg compat_sys_utimensat
.globl compat_sys_signalfd_wrapper ENTRY(compat_sys_signalfd_wrapper)
compat_sys_signalfd_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # compat_sigset_t * llgtr %r3,%r3 # compat_sigset_t *
llgfr %r4,%r4 # compat_size_t llgfr %r4,%r4 # compat_size_t
jg compat_sys_signalfd jg compat_sys_signalfd
.globl sys_eventfd_wrapper ENTRY(sys_eventfd_wrapper)
sys_eventfd_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
jg sys_eventfd jg sys_eventfd
.globl sys_fallocate_wrapper ENTRY(sys_fallocate_wrapper)
sys_fallocate_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
sllg %r4,%r4,32 # get high word of 64bit loff_t sllg %r4,%r4,32 # get high word of 64bit loff_t
...@@ -1709,94 +1460,80 @@ sys_fallocate_wrapper: ...@@ -1709,94 +1460,80 @@ sys_fallocate_wrapper:
l %r5,164(%r15) # get low word of 64bit loff_t l %r5,164(%r15) # get low word of 64bit loff_t
jg sys_fallocate jg sys_fallocate
.globl sys_timerfd_create_wrapper ENTRY(sys_timerfd_create_wrapper)
sys_timerfd_create_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_timerfd_create jg sys_timerfd_create
.globl compat_sys_timerfd_settime_wrapper ENTRY(compat_sys_timerfd_settime_wrapper)
compat_sys_timerfd_settime_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgtr %r4,%r4 # struct compat_itimerspec * llgtr %r4,%r4 # struct compat_itimerspec *
llgtr %r5,%r5 # struct compat_itimerspec * llgtr %r5,%r5 # struct compat_itimerspec *
jg compat_sys_timerfd_settime jg compat_sys_timerfd_settime
.globl compat_sys_timerfd_gettime_wrapper ENTRY(compat_sys_timerfd_gettime_wrapper)
compat_sys_timerfd_gettime_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # struct compat_itimerspec * llgtr %r3,%r3 # struct compat_itimerspec *
jg compat_sys_timerfd_gettime jg compat_sys_timerfd_gettime
.globl compat_sys_signalfd4_wrapper ENTRY(compat_sys_signalfd4_wrapper)
compat_sys_signalfd4_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # compat_sigset_t * llgtr %r3,%r3 # compat_sigset_t *
llgfr %r4,%r4 # compat_size_t llgfr %r4,%r4 # compat_size_t
lgfr %r5,%r5 # int lgfr %r5,%r5 # int
jg compat_sys_signalfd4 jg compat_sys_signalfd4
.globl sys_eventfd2_wrapper ENTRY(sys_eventfd2_wrapper)
sys_eventfd2_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_eventfd2 jg sys_eventfd2
.globl sys_inotify_init1_wrapper ENTRY(sys_inotify_init1_wrapper)
sys_inotify_init1_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
jg sys_inotify_init1 jg sys_inotify_init1
.globl sys_pipe2_wrapper ENTRY(sys_pipe2_wrapper)
sys_pipe2_wrapper:
llgtr %r2,%r2 # u32 * llgtr %r2,%r2 # u32 *
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_pipe2 # branch to system call jg sys_pipe2 # branch to system call
.globl sys_dup3_wrapper ENTRY(sys_dup3_wrapper)
sys_dup3_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_dup3 # branch to system call jg sys_dup3 # branch to system call
.globl sys_epoll_create1_wrapper ENTRY(sys_epoll_create1_wrapper)
sys_epoll_create1_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
jg sys_epoll_create1 # branch to system call jg sys_epoll_create1 # branch to system call
.globl sys32_readahead_wrapper ENTRY(sys32_readahead_wrapper)
sys32_readahead_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgfr %r3,%r3 # u32 llgfr %r3,%r3 # u32
llgfr %r4,%r4 # u32 llgfr %r4,%r4 # u32
lgfr %r5,%r5 # s32 lgfr %r5,%r5 # s32
jg sys32_readahead # branch to system call jg sys32_readahead # branch to system call
.globl sys32_sendfile64_wrapper ENTRY(sys32_sendfile64_wrapper)
sys32_sendfile64_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
llgtr %r4,%r4 # compat_loff_t * llgtr %r4,%r4 # compat_loff_t *
lgfr %r5,%r5 # s32 lgfr %r5,%r5 # s32
jg sys32_sendfile64 # branch to system call jg sys32_sendfile64 # branch to system call
.globl sys_tkill_wrapper ENTRY(sys_tkill_wrapper)
sys_tkill_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
lgfr %r3,%r3 # int lgfr %r3,%r3 # int
jg sys_tkill # branch to system call jg sys_tkill # branch to system call
.globl sys_tgkill_wrapper ENTRY(sys_tgkill_wrapper)
sys_tgkill_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
lgfr %r3,%r3 # pid_t lgfr %r3,%r3 # pid_t
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg sys_tgkill # branch to system call jg sys_tgkill # branch to system call
.globl compat_sys_keyctl_wrapper ENTRY(compat_sys_keyctl_wrapper)
compat_sys_keyctl_wrapper:
llgfr %r2,%r2 # u32 llgfr %r2,%r2 # u32
llgfr %r3,%r3 # u32 llgfr %r3,%r3 # u32
llgfr %r4,%r4 # u32 llgfr %r4,%r4 # u32
...@@ -1804,8 +1541,7 @@ compat_sys_keyctl_wrapper: ...@@ -1804,8 +1541,7 @@ compat_sys_keyctl_wrapper:
llgfr %r6,%r6 # u32 llgfr %r6,%r6 # u32
jg compat_sys_keyctl # branch to system call jg compat_sys_keyctl # branch to system call
.globl compat_sys_preadv_wrapper ENTRY(compat_sys_preadv_wrapper)
compat_sys_preadv_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgtr %r3,%r3 # compat_iovec * llgtr %r3,%r3 # compat_iovec *
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
...@@ -1813,8 +1549,7 @@ compat_sys_preadv_wrapper: ...@@ -1813,8 +1549,7 @@ compat_sys_preadv_wrapper:
llgfr %r6,%r6 # u32 llgfr %r6,%r6 # u32
jg compat_sys_preadv # branch to system call jg compat_sys_preadv # branch to system call
.globl compat_sys_pwritev_wrapper ENTRY(compat_sys_pwritev_wrapper)
compat_sys_pwritev_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgtr %r3,%r3 # compat_iovec * llgtr %r3,%r3 # compat_iovec *
llgfr %r4,%r4 # unsigned long llgfr %r4,%r4 # unsigned long
...@@ -1822,16 +1557,14 @@ compat_sys_pwritev_wrapper: ...@@ -1822,16 +1557,14 @@ compat_sys_pwritev_wrapper:
llgfr %r6,%r6 # u32 llgfr %r6,%r6 # u32
jg compat_sys_pwritev # branch to system call jg compat_sys_pwritev # branch to system call
.globl compat_sys_rt_tgsigqueueinfo_wrapper ENTRY(compat_sys_rt_tgsigqueueinfo_wrapper)
compat_sys_rt_tgsigqueueinfo_wrapper:
lgfr %r2,%r2 # compat_pid_t lgfr %r2,%r2 # compat_pid_t
lgfr %r3,%r3 # compat_pid_t lgfr %r3,%r3 # compat_pid_t
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
llgtr %r5,%r5 # struct compat_siginfo * llgtr %r5,%r5 # struct compat_siginfo *
jg compat_sys_rt_tgsigqueueinfo_wrapper # branch to system call jg compat_sys_rt_tgsigqueueinfo_wrapper # branch to system call
.globl sys_perf_event_open_wrapper ENTRY(sys_perf_event_open_wrapper)
sys_perf_event_open_wrapper:
llgtr %r2,%r2 # const struct perf_event_attr * llgtr %r2,%r2 # const struct perf_event_attr *
lgfr %r3,%r3 # pid_t lgfr %r3,%r3 # pid_t
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
...@@ -1839,29 +1572,25 @@ sys_perf_event_open_wrapper: ...@@ -1839,29 +1572,25 @@ sys_perf_event_open_wrapper:
llgfr %r6,%r6 # unsigned long llgfr %r6,%r6 # unsigned long
jg sys_perf_event_open # branch to system call jg sys_perf_event_open # branch to system call
.globl sys_clone_wrapper ENTRY(sys_clone_wrapper)
sys_clone_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
llgfr %r3,%r3 # unsigned long llgfr %r3,%r3 # unsigned long
llgtr %r4,%r4 # int * llgtr %r4,%r4 # int *
llgtr %r5,%r5 # int * llgtr %r5,%r5 # int *
jg sys_clone # branch to system call jg sys_clone # branch to system call
.globl sys32_execve_wrapper ENTRY(sys32_execve_wrapper)
sys32_execve_wrapper:
llgtr %r2,%r2 # char * llgtr %r2,%r2 # char *
llgtr %r3,%r3 # compat_uptr_t * llgtr %r3,%r3 # compat_uptr_t *
llgtr %r4,%r4 # compat_uptr_t * llgtr %r4,%r4 # compat_uptr_t *
jg sys32_execve # branch to system call jg sys32_execve # branch to system call
.globl sys_fanotify_init_wrapper ENTRY(sys_fanotify_init_wrapper)
sys_fanotify_init_wrapper:
llgfr %r2,%r2 # unsigned int llgfr %r2,%r2 # unsigned int
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
jg sys_fanotify_init # branch to system call jg sys_fanotify_init # branch to system call
.globl sys_fanotify_mark_wrapper ENTRY(sys_fanotify_mark_wrapper)
sys_fanotify_mark_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
sllg %r4,%r4,32 # get high word of 64bit mask sllg %r4,%r4,32 # get high word of 64bit mask
...@@ -1870,16 +1599,14 @@ sys_fanotify_mark_wrapper: ...@@ -1870,16 +1599,14 @@ sys_fanotify_mark_wrapper:
llgt %r6,164(%r15) # char * llgt %r6,164(%r15) # char *
jg sys_fanotify_mark # branch to system call jg sys_fanotify_mark # branch to system call
.globl sys_prlimit64_wrapper ENTRY(sys_prlimit64_wrapper)
sys_prlimit64_wrapper:
lgfr %r2,%r2 # pid_t lgfr %r2,%r2 # pid_t
llgfr %r3,%r3 # unsigned int llgfr %r3,%r3 # unsigned int
llgtr %r4,%r4 # const struct rlimit64 __user * llgtr %r4,%r4 # const struct rlimit64 __user *
llgtr %r5,%r5 # struct rlimit64 __user * llgtr %r5,%r5 # struct rlimit64 __user *
jg sys_prlimit64 # branch to system call jg sys_prlimit64 # branch to system call
.globl sys_name_to_handle_at_wrapper ENTRY(sys_name_to_handle_at_wrapper)
sys_name_to_handle_at_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # const char __user * llgtr %r3,%r3 # const char __user *
llgtr %r4,%r4 # struct file_handle __user * llgtr %r4,%r4 # struct file_handle __user *
...@@ -1887,21 +1614,18 @@ sys_name_to_handle_at_wrapper: ...@@ -1887,21 +1614,18 @@ sys_name_to_handle_at_wrapper:
lgfr %r6,%r6 # int lgfr %r6,%r6 # int
jg sys_name_to_handle_at jg sys_name_to_handle_at
.globl compat_sys_open_by_handle_at_wrapper ENTRY(compat_sys_open_by_handle_at_wrapper)
compat_sys_open_by_handle_at_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
llgtr %r3,%r3 # struct file_handle __user * llgtr %r3,%r3 # struct file_handle __user *
lgfr %r4,%r4 # int lgfr %r4,%r4 # int
jg compat_sys_open_by_handle_at jg compat_sys_open_by_handle_at
.globl compat_sys_clock_adjtime_wrapper ENTRY(compat_sys_clock_adjtime_wrapper)
compat_sys_clock_adjtime_wrapper:
lgfr %r2,%r2 # clockid_t (int) lgfr %r2,%r2 # clockid_t (int)
llgtr %r3,%r3 # struct compat_timex __user * llgtr %r3,%r3 # struct compat_timex __user *
jg compat_sys_clock_adjtime jg compat_sys_clock_adjtime
.globl sys_syncfs_wrapper ENTRY(sys_syncfs_wrapper)
sys_syncfs_wrapper:
lgfr %r2,%r2 # int lgfr %r2,%r2 # int
jg sys_syncfs jg sys_syncfs
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
* Heiko Carstens <heiko.carstens@de.ibm.com> * Heiko Carstens <heiko.carstens@de.ibm.com>
*/ */
#include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/linkage.h>
#include <asm/cache.h> #include <asm/cache.h>
#include <asm/errno.h> #include <asm/errno.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
...@@ -197,8 +197,7 @@ STACK_SIZE = 1 << STACK_SHIFT ...@@ -197,8 +197,7 @@ STACK_SIZE = 1 << STACK_SHIFT
* Returns: * Returns:
* gpr2 = prev * gpr2 = prev
*/ */
.globl __switch_to ENTRY(__switch_to)
__switch_to:
basr %r1,0 basr %r1,0
0: l %r4,__THREAD_info(%r2) # get thread_info of prev 0: l %r4,__THREAD_info(%r2) # get thread_info of prev
l %r5,__THREAD_info(%r3) # get thread_info of next l %r5,__THREAD_info(%r3) # get thread_info of next
...@@ -224,8 +223,7 @@ __critical_start: ...@@ -224,8 +223,7 @@ __critical_start:
* are executed with interrupts enabled. * are executed with interrupts enabled.
*/ */
.globl system_call ENTRY(system_call)
system_call:
stpt __LC_SYNC_ENTER_TIMER stpt __LC_SYNC_ENTER_TIMER
sysc_saveall: sysc_saveall:
SAVE_ALL_SVC __LC_SVC_OLD_PSW,__LC_SAVE_AREA SAVE_ALL_SVC __LC_SVC_OLD_PSW,__LC_SAVE_AREA
...@@ -388,8 +386,7 @@ sysc_tracenogo: ...@@ -388,8 +386,7 @@ sysc_tracenogo:
# #
# a new process exits the kernel with ret_from_fork # a new process exits the kernel with ret_from_fork
# #
.globl ret_from_fork ENTRY(ret_from_fork)
ret_from_fork:
l %r13,__LC_SVC_NEW_PSW+4 l %r13,__LC_SVC_NEW_PSW+4
l %r12,__LC_THREAD_INFO # load pointer to thread_info struct l %r12,__LC_THREAD_INFO # load pointer to thread_info struct
tm SP_PSW+1(%r15),0x01 # forking a kernel thread ? tm SP_PSW+1(%r15),0x01 # forking a kernel thread ?
...@@ -405,8 +402,7 @@ ret_from_fork: ...@@ -405,8 +402,7 @@ ret_from_fork:
# kernel_execve function needs to deal with pt_regs that is not # kernel_execve function needs to deal with pt_regs that is not
# at the usual place # at the usual place
# #
.globl kernel_execve ENTRY(kernel_execve)
kernel_execve:
stm %r12,%r15,48(%r15) stm %r12,%r15,48(%r15)
lr %r14,%r15 lr %r14,%r15
l %r13,__LC_SVC_NEW_PSW+4 l %r13,__LC_SVC_NEW_PSW+4
...@@ -438,8 +434,7 @@ kernel_execve: ...@@ -438,8 +434,7 @@ kernel_execve:
* Program check handler routine * Program check handler routine
*/ */
.globl pgm_check_handler ENTRY(pgm_check_handler)
pgm_check_handler:
/* /*
* First we need to check for a special case: * First we need to check for a special case:
* Single stepping an instruction that disables the PER event mask will * Single stepping an instruction that disables the PER event mask will
...@@ -565,8 +560,7 @@ kernel_per: ...@@ -565,8 +560,7 @@ kernel_per:
* IO interrupt handler routine * IO interrupt handler routine
*/ */
.globl io_int_handler ENTRY(io_int_handler)
io_int_handler:
stck __LC_INT_CLOCK stck __LC_INT_CLOCK
stpt __LC_ASYNC_ENTER_TIMER stpt __LC_ASYNC_ENTER_TIMER
SAVE_ALL_ASYNC __LC_IO_OLD_PSW,__LC_SAVE_AREA+16 SAVE_ALL_ASYNC __LC_IO_OLD_PSW,__LC_SAVE_AREA+16
...@@ -703,8 +697,7 @@ io_notify_resume: ...@@ -703,8 +697,7 @@ io_notify_resume:
* External interrupt handler routine * External interrupt handler routine
*/ */
.globl ext_int_handler ENTRY(ext_int_handler)
ext_int_handler:
stck __LC_INT_CLOCK stck __LC_INT_CLOCK
stpt __LC_ASYNC_ENTER_TIMER stpt __LC_ASYNC_ENTER_TIMER
SAVE_ALL_ASYNC __LC_EXT_OLD_PSW,__LC_SAVE_AREA+16 SAVE_ALL_ASYNC __LC_EXT_OLD_PSW,__LC_SAVE_AREA+16
...@@ -731,8 +724,7 @@ __critical_end: ...@@ -731,8 +724,7 @@ __critical_end:
* Machine check handler routines * Machine check handler routines
*/ */
.globl mcck_int_handler ENTRY(mcck_int_handler)
mcck_int_handler:
stck __LC_MCCK_CLOCK stck __LC_MCCK_CLOCK
spt __LC_CPU_TIMER_SAVE_AREA # revalidate cpu timer spt __LC_CPU_TIMER_SAVE_AREA # revalidate cpu timer
lm %r0,%r15,__LC_GPREGS_SAVE_AREA # revalidate gprs lm %r0,%r15,__LC_GPREGS_SAVE_AREA # revalidate gprs
...@@ -818,8 +810,7 @@ mcck_return: ...@@ -818,8 +810,7 @@ mcck_return:
*/ */
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
__CPUINIT __CPUINIT
.globl restart_int_handler ENTRY(restart_int_handler)
restart_int_handler:
basr %r1,0 basr %r1,0
restart_base: restart_base:
spt restart_vtime-restart_base(%r1) spt restart_vtime-restart_base(%r1)
...@@ -848,8 +839,7 @@ restart_vtime: ...@@ -848,8 +839,7 @@ restart_vtime:
/* /*
* If we do not run with SMP enabled, let the new CPU crash ... * If we do not run with SMP enabled, let the new CPU crash ...
*/ */
.globl restart_int_handler ENTRY(restart_int_handler)
restart_int_handler:
basr %r1,0 basr %r1,0
restart_base: restart_base:
lpsw restart_crash-restart_base(%r1) lpsw restart_crash-restart_base(%r1)
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
* Heiko Carstens <heiko.carstens@de.ibm.com> * Heiko Carstens <heiko.carstens@de.ibm.com>
*/ */
#include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/linkage.h>
#include <asm/cache.h> #include <asm/cache.h>
#include <asm/errno.h> #include <asm/errno.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
...@@ -219,8 +219,7 @@ _TIF_EXIT_SIE = (_TIF_SIGPENDING | _TIF_NEED_RESCHED | _TIF_MCCK_PENDING) ...@@ -219,8 +219,7 @@ _TIF_EXIT_SIE = (_TIF_SIGPENDING | _TIF_NEED_RESCHED | _TIF_MCCK_PENDING)
* Returns: * Returns:
* gpr2 = prev * gpr2 = prev
*/ */
.globl __switch_to ENTRY(__switch_to)
__switch_to:
lg %r4,__THREAD_info(%r2) # get thread_info of prev lg %r4,__THREAD_info(%r2) # get thread_info of prev
lg %r5,__THREAD_info(%r3) # get thread_info of next lg %r5,__THREAD_info(%r3) # get thread_info of next
tm __TI_flags+7(%r4),_TIF_MCCK_PENDING # machine check pending? tm __TI_flags+7(%r4),_TIF_MCCK_PENDING # machine check pending?
...@@ -245,8 +244,7 @@ __critical_start: ...@@ -245,8 +244,7 @@ __critical_start:
* are executed with interrupts enabled. * are executed with interrupts enabled.
*/ */
.globl system_call ENTRY(system_call)
system_call:
stpt __LC_SYNC_ENTER_TIMER stpt __LC_SYNC_ENTER_TIMER
sysc_saveall: sysc_saveall:
SAVE_ALL_SVC __LC_SVC_OLD_PSW,__LC_SAVE_AREA SAVE_ALL_SVC __LC_SVC_OLD_PSW,__LC_SAVE_AREA
...@@ -408,8 +406,7 @@ sysc_tracenogo: ...@@ -408,8 +406,7 @@ sysc_tracenogo:
# #
# a new process exits the kernel with ret_from_fork # a new process exits the kernel with ret_from_fork
# #
.globl ret_from_fork ENTRY(ret_from_fork)
ret_from_fork:
lg %r13,__LC_SVC_NEW_PSW+8 lg %r13,__LC_SVC_NEW_PSW+8
lg %r12,__LC_THREAD_INFO # load pointer to thread_info struct lg %r12,__LC_THREAD_INFO # load pointer to thread_info struct
tm SP_PSW+1(%r15),0x01 # forking a kernel thread ? tm SP_PSW+1(%r15),0x01 # forking a kernel thread ?
...@@ -424,8 +421,7 @@ ret_from_fork: ...@@ -424,8 +421,7 @@ ret_from_fork:
# kernel_execve function needs to deal with pt_regs that is not # kernel_execve function needs to deal with pt_regs that is not
# at the usual place # at the usual place
# #
.globl kernel_execve ENTRY(kernel_execve)
kernel_execve:
stmg %r12,%r15,96(%r15) stmg %r12,%r15,96(%r15)
lgr %r14,%r15 lgr %r14,%r15
aghi %r15,-SP_SIZE aghi %r15,-SP_SIZE
...@@ -455,8 +451,7 @@ kernel_execve: ...@@ -455,8 +451,7 @@ kernel_execve:
* Program check handler routine * Program check handler routine
*/ */
.globl pgm_check_handler ENTRY(pgm_check_handler)
pgm_check_handler:
/* /*
* First we need to check for a special case: * First we need to check for a special case:
* Single stepping an instruction that disables the PER event mask will * Single stepping an instruction that disables the PER event mask will
...@@ -584,8 +579,7 @@ kernel_per: ...@@ -584,8 +579,7 @@ kernel_per:
/* /*
* IO interrupt handler routine * IO interrupt handler routine
*/ */
.globl io_int_handler ENTRY(io_int_handler)
io_int_handler:
stck __LC_INT_CLOCK stck __LC_INT_CLOCK
stpt __LC_ASYNC_ENTER_TIMER stpt __LC_ASYNC_ENTER_TIMER
SAVE_ALL_ASYNC __LC_IO_OLD_PSW,__LC_SAVE_AREA+40 SAVE_ALL_ASYNC __LC_IO_OLD_PSW,__LC_SAVE_AREA+40
...@@ -719,8 +713,7 @@ io_notify_resume: ...@@ -719,8 +713,7 @@ io_notify_resume:
/* /*
* External interrupt handler routine * External interrupt handler routine
*/ */
.globl ext_int_handler ENTRY(ext_int_handler)
ext_int_handler:
stck __LC_INT_CLOCK stck __LC_INT_CLOCK
stpt __LC_ASYNC_ENTER_TIMER stpt __LC_ASYNC_ENTER_TIMER
SAVE_ALL_ASYNC __LC_EXT_OLD_PSW,__LC_SAVE_AREA+40 SAVE_ALL_ASYNC __LC_EXT_OLD_PSW,__LC_SAVE_AREA+40
...@@ -749,8 +742,7 @@ __critical_end: ...@@ -749,8 +742,7 @@ __critical_end:
/* /*
* Machine check handler routines * Machine check handler routines
*/ */
.globl mcck_int_handler ENTRY(mcck_int_handler)
mcck_int_handler:
stck __LC_MCCK_CLOCK stck __LC_MCCK_CLOCK
la %r1,4095 # revalidate r1 la %r1,4095 # revalidate r1
spt __LC_CPU_TIMER_SAVE_AREA-4095(%r1) # revalidate cpu timer spt __LC_CPU_TIMER_SAVE_AREA-4095(%r1) # revalidate cpu timer
...@@ -836,8 +828,7 @@ mcck_done: ...@@ -836,8 +828,7 @@ mcck_done:
*/ */
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
__CPUINIT __CPUINIT
.globl restart_int_handler ENTRY(restart_int_handler)
restart_int_handler:
basr %r1,0 basr %r1,0
restart_base: restart_base:
spt restart_vtime-restart_base(%r1) spt restart_vtime-restart_base(%r1)
...@@ -864,8 +855,7 @@ restart_vtime: ...@@ -864,8 +855,7 @@ restart_vtime:
/* /*
* If we do not run with SMP enabled, let the new CPU crash ... * If we do not run with SMP enabled, let the new CPU crash ...
*/ */
.globl restart_int_handler ENTRY(restart_int_handler)
restart_int_handler:
basr %r1,0 basr %r1,0
restart_base: restart_base:
lpswe restart_crash-restart_base(%r1) lpswe restart_crash-restart_base(%r1)
...@@ -1055,8 +1045,7 @@ cleanup_io_restore_insn: ...@@ -1055,8 +1045,7 @@ cleanup_io_restore_insn:
* %r2 pointer to sie control block * %r2 pointer to sie control block
* %r3 guest register save area * %r3 guest register save area
*/ */
.globl sie64a ENTRY(sie64a)
sie64a:
stmg %r6,%r14,__SF_GPRS(%r15) # save kernel registers stmg %r6,%r14,__SF_GPRS(%r15) # save kernel registers
stg %r2,__SF_EMPTY(%r15) # save control block pointer stg %r2,__SF_EMPTY(%r15) # save control block pointer
stg %r3,__SF_EMPTY+8(%r15) # save guest register save area stg %r3,__SF_EMPTY+8(%r15) # save guest register save area
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/page.h> #include <asm/page.h>
...@@ -383,8 +384,7 @@ iplstart: ...@@ -383,8 +384,7 @@ iplstart:
# doesn't need a builtin ipl record. # doesn't need a builtin ipl record.
# #
.org 0x800 .org 0x800
.globl start ENTRY(start)
start:
stm %r0,%r15,0x07b0 # store registers stm %r0,%r15,0x07b0 # store registers
basr %r12,%r0 basr %r12,%r0
.base: .base:
...@@ -448,8 +448,7 @@ start: ...@@ -448,8 +448,7 @@ start:
# or linload or SALIPL # or linload or SALIPL
# #
.org 0x10000 .org 0x10000
.globl startup ENTRY(startup)
startup:
basr %r13,0 # get base basr %r13,0 # get base
.LPG0: .LPG0:
xc 0x200(256),0x200 # partially clear lowcore xc 0x200(256),0x200 # partially clear lowcore
......
...@@ -11,13 +11,13 @@ ...@@ -11,13 +11,13 @@
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/page.h> #include <asm/page.h>
__HEAD __HEAD
.globl startup_continue ENTRY(startup_continue)
startup_continue:
basr %r13,0 # get base basr %r13,0 # get base
.LPG1: .LPG1:
...@@ -78,8 +78,7 @@ startup_continue: ...@@ -78,8 +78,7 @@ startup_continue:
.Lbase_cc: .Lbase_cc:
.long sched_clock_base_cc .long sched_clock_base_cc
.globl _ehead ENTRY(_ehead)
_ehead:
#ifdef CONFIG_SHARED_KERNEL #ifdef CONFIG_SHARED_KERNEL
.org 0x100000 - 0x11000 # head.o ends at 0x11000 .org 0x100000 - 0x11000 # head.o ends at 0x11000
...@@ -88,8 +87,8 @@ _ehead: ...@@ -88,8 +87,8 @@ _ehead:
# #
# startup-code, running in absolute addressing mode # startup-code, running in absolute addressing mode
# #
.globl _stext ENTRY(_stext)
_stext: basr %r13,0 # get base basr %r13,0 # get base
.LPG3: .LPG3:
# check control registers # check control registers
stctl %c0,%c15,0(%r15) stctl %c0,%c15,0(%r15)
......
...@@ -11,13 +11,13 @@ ...@@ -11,13 +11,13 @@
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/page.h> #include <asm/page.h>
__HEAD __HEAD
.globl startup_continue ENTRY(startup_continue)
startup_continue:
larl %r1,sched_clock_base_cc larl %r1,sched_clock_base_cc
mvc 0(8,%r1),__LC_LAST_UPDATE_CLOCK mvc 0(8,%r1),__LC_LAST_UPDATE_CLOCK
larl %r13,.LPG1 # get base larl %r13,.LPG1 # get base
...@@ -76,8 +76,7 @@ startup_continue: ...@@ -76,8 +76,7 @@ startup_continue:
.long 0x80000000,0,0,0 # invalid access-list entries .long 0x80000000,0,0,0 # invalid access-list entries
.endr .endr
.globl _ehead ENTRY(_ehead)
_ehead:
#ifdef CONFIG_SHARED_KERNEL #ifdef CONFIG_SHARED_KERNEL
.org 0x100000 - 0x11000 # head.o ends at 0x11000 .org 0x100000 - 0x11000 # head.o ends at 0x11000
...@@ -86,8 +85,8 @@ _ehead: ...@@ -86,8 +85,8 @@ _ehead:
# #
# startup-code, running in absolute addressing mode # startup-code, running in absolute addressing mode
# #
.globl _stext ENTRY(_stext)
_stext: basr %r13,0 # get base basr %r13,0 # get base
.LPG3: .LPG3:
# check control registers # check control registers
stctg %c0,%c15,0(%r15) stctg %c0,%c15,0(%r15)
......
...@@ -5,21 +5,19 @@ ...@@ -5,21 +5,19 @@
* *
*/ */
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
.section .kprobes.text, "ax" .section .kprobes.text, "ax"
.globl ftrace_stub ENTRY(ftrace_stub)
ftrace_stub:
br %r14 br %r14
.globl _mcount ENTRY(_mcount)
_mcount:
#ifdef CONFIG_DYNAMIC_FTRACE #ifdef CONFIG_DYNAMIC_FTRACE
br %r14 br %r14
.globl ftrace_caller ENTRY(ftrace_caller)
ftrace_caller:
#endif #endif
stm %r2,%r5,16(%r15) stm %r2,%r5,16(%r15)
bras %r1,2f bras %r1,2f
...@@ -41,8 +39,7 @@ ftrace_caller: ...@@ -41,8 +39,7 @@ ftrace_caller:
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
l %r2,100(%r15) l %r2,100(%r15)
l %r3,152(%r15) l %r3,152(%r15)
.globl ftrace_graph_caller ENTRY(ftrace_graph_caller)
ftrace_graph_caller:
# The bras instruction gets runtime patched to call prepare_ftrace_return. # The bras instruction gets runtime patched to call prepare_ftrace_return.
# See ftrace_enable_ftrace_graph_caller. The patched instruction is: # See ftrace_enable_ftrace_graph_caller. The patched instruction is:
# bras %r14,prepare_ftrace_return # bras %r14,prepare_ftrace_return
...@@ -56,8 +53,7 @@ ftrace_graph_caller: ...@@ -56,8 +53,7 @@ ftrace_graph_caller:
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
.globl return_to_handler ENTRY(return_to_handler)
return_to_handler:
stm %r2,%r5,16(%r15) stm %r2,%r5,16(%r15)
st %r14,56(%r15) st %r14,56(%r15)
lr %r0,%r15 lr %r0,%r15
......
...@@ -5,21 +5,19 @@ ...@@ -5,21 +5,19 @@
* *
*/ */
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
.section .kprobes.text, "ax" .section .kprobes.text, "ax"
.globl ftrace_stub ENTRY(ftrace_stub)
ftrace_stub:
br %r14 br %r14
.globl _mcount ENTRY(_mcount)
_mcount:
#ifdef CONFIG_DYNAMIC_FTRACE #ifdef CONFIG_DYNAMIC_FTRACE
br %r14 br %r14
.globl ftrace_caller ENTRY(ftrace_caller)
ftrace_caller:
#endif #endif
larl %r1,function_trace_stop larl %r1,function_trace_stop
icm %r1,0xf,0(%r1) icm %r1,0xf,0(%r1)
...@@ -37,8 +35,7 @@ ftrace_caller: ...@@ -37,8 +35,7 @@ ftrace_caller:
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
lg %r2,168(%r15) lg %r2,168(%r15)
lg %r3,272(%r15) lg %r3,272(%r15)
.globl ftrace_graph_caller ENTRY(ftrace_graph_caller)
ftrace_graph_caller:
# The bras instruction gets runtime patched to call prepare_ftrace_return. # The bras instruction gets runtime patched to call prepare_ftrace_return.
# See ftrace_enable_ftrace_graph_caller. The patched instruction is: # See ftrace_enable_ftrace_graph_caller. The patched instruction is:
# bras %r14,prepare_ftrace_return # bras %r14,prepare_ftrace_return
...@@ -52,8 +49,7 @@ ftrace_graph_caller: ...@@ -52,8 +49,7 @@ ftrace_graph_caller:
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
.globl return_to_handler ENTRY(return_to_handler)
return_to_handler:
stmg %r2,%r5,32(%r15) stmg %r2,%r5,32(%r15)
lgr %r1,%r15 lgr %r1,%r15
aghi %r15,-160 aghi %r15,-160
......
...@@ -6,14 +6,15 @@ ...@@ -6,14 +6,15 @@
* Author(s): Holger Smolinski (Holger.Smolinski@de.ibm.com) * Author(s): Holger Smolinski (Holger.Smolinski@de.ibm.com)
*/ */
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
# #
# do_reipl_asm # do_reipl_asm
# Parameter: r2 = schid of reipl device # Parameter: r2 = schid of reipl device
# #
.globl do_reipl_asm ENTRY(do_reipl_asm)
do_reipl_asm: basr %r13,0 basr %r13,0
.Lpg0: lpsw .Lnewpsw-.Lpg0(%r13) .Lpg0: lpsw .Lnewpsw-.Lpg0(%r13)
.Lpg1: # do store status of all registers .Lpg1: # do store status of all registers
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
* Denis Joseph Barrow, * Denis Joseph Barrow,
*/ */
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
# #
...@@ -11,8 +12,8 @@ ...@@ -11,8 +12,8 @@
# Parameter: r2 = schid of reipl device # Parameter: r2 = schid of reipl device
# #
.globl do_reipl_asm ENTRY(do_reipl_asm)
do_reipl_asm: basr %r13,0 basr %r13,0
.Lpg0: lpswe .Lnewpsw-.Lpg0(%r13) .Lpg0: lpswe .Lnewpsw-.Lpg0(%r13)
.Lpg1: # do store status of all registers .Lpg1: # do store status of all registers
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
* *
*/ */
#include <linux/linkage.h>
/* /*
* moves the new kernel to its destination... * moves the new kernel to its destination...
* %r2 = pointer to first kimage_entry_t * %r2 = pointer to first kimage_entry_t
...@@ -22,8 +24,7 @@ ...@@ -22,8 +24,7 @@
*/ */
.text .text
.globl relocate_kernel ENTRY(relocate_kernel)
relocate_kernel:
basr %r13,0 # base address basr %r13,0 # base address
.base: .base:
stnsm sys_msk-.base(%r13),0xfb # disable DAT stnsm sys_msk-.base(%r13),0xfb # disable DAT
...@@ -112,6 +113,7 @@ ...@@ -112,6 +113,7 @@
.byte 0 .byte 0
.align 8 .align 8
relocate_kernel_end: relocate_kernel_end:
.align 8
.globl relocate_kernel_len .globl relocate_kernel_len
relocate_kernel_len: relocate_kernel_len:
.quad relocate_kernel_end - relocate_kernel .quad relocate_kernel_end - relocate_kernel
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
* *
*/ */
#include <linux/linkage.h>
/* /*
* moves the new kernel to its destination... * moves the new kernel to its destination...
* %r2 = pointer to first kimage_entry_t * %r2 = pointer to first kimage_entry_t
...@@ -23,8 +25,7 @@ ...@@ -23,8 +25,7 @@
*/ */
.text .text
.globl relocate_kernel ENTRY(relocate_kernel)
relocate_kernel:
basr %r13,0 # base address basr %r13,0 # base address
.base: .base:
stnsm sys_msk-.base(%r13),0xfb # disable DAT stnsm sys_msk-.base(%r13),0xfb # disable DAT
...@@ -115,6 +116,7 @@ ...@@ -115,6 +116,7 @@
.byte 0 .byte 0
.align 8 .align 8
relocate_kernel_end: relocate_kernel_end:
.align 8
.globl relocate_kernel_len .globl relocate_kernel_len
relocate_kernel_len: relocate_kernel_len:
.quad relocate_kernel_end - relocate_kernel .quad relocate_kernel_end - relocate_kernel
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
* *
*/ */
#include <linux/linkage.h>
LC_EXT_NEW_PSW = 0x58 # addr of ext int handler LC_EXT_NEW_PSW = 0x58 # addr of ext int handler
LC_EXT_NEW_PSW_64 = 0x1b0 # addr of ext int handler 64 bit LC_EXT_NEW_PSW_64 = 0x1b0 # addr of ext int handler 64 bit
LC_EXT_INT_PARAM = 0x80 # addr of ext int parameter LC_EXT_INT_PARAM = 0x80 # addr of ext int parameter
...@@ -260,8 +262,7 @@ _sclp_print: ...@@ -260,8 +262,7 @@ _sclp_print:
# R2 = 0 on success, 1 on failure # R2 = 0 on success, 1 on failure
# #
.globl _sclp_print_early ENTRY(_sclp_print_early)
_sclp_print_early:
stm %r6,%r15,24(%r15) # save registers stm %r6,%r15,24(%r15) # save registers
ahi %r15,-96 # create stack frame ahi %r15,-96 # create stack frame
#ifdef CONFIG_64BIT #ifdef CONFIG_64BIT
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
* *
*/ */
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
...@@ -16,9 +17,7 @@ ...@@ -16,9 +17,7 @@
# %r6 - destination cpu # %r6 - destination cpu
.section .text .section .text
.align 4 ENTRY(smp_switch_to_cpu)
.globl smp_switch_to_cpu
smp_switch_to_cpu:
stm %r6,%r15,__SF_GPRS(%r15) stm %r6,%r15,__SF_GPRS(%r15)
lr %r1,%r15 lr %r1,%r15
ahi %r15,-STACK_FRAME_OVERHEAD ahi %r15,-STACK_FRAME_OVERHEAD
...@@ -33,8 +32,7 @@ smp_switch_to_cpu: ...@@ -33,8 +32,7 @@ smp_switch_to_cpu:
brc 2,2b /* busy, try again */ brc 2,2b /* busy, try again */
3: j 3b 3: j 3b
.globl smp_restart_cpu ENTRY(smp_restart_cpu)
smp_restart_cpu:
basr %r13,0 basr %r13,0
0: la %r1,.gprregs_addr-0b(%r13) 0: la %r1,.gprregs_addr-0b(%r13)
l %r1,0(%r1) l %r1,0(%r1)
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
* *
*/ */
#include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
...@@ -16,9 +17,7 @@ ...@@ -16,9 +17,7 @@
# %r6 - destination cpu # %r6 - destination cpu
.section .text .section .text
.align 4 ENTRY(smp_switch_to_cpu)
.globl smp_switch_to_cpu
smp_switch_to_cpu:
stmg %r6,%r15,__SF_GPRS(%r15) stmg %r6,%r15,__SF_GPRS(%r15)
lgr %r1,%r15 lgr %r1,%r15
aghi %r15,-STACK_FRAME_OVERHEAD aghi %r15,-STACK_FRAME_OVERHEAD
...@@ -31,8 +30,7 @@ smp_switch_to_cpu: ...@@ -31,8 +30,7 @@ smp_switch_to_cpu:
brc 2,2b /* busy, try again */ brc 2,2b /* busy, try again */
3: j 3b 3: j 3b
.globl smp_restart_cpu ENTRY(smp_restart_cpu)
smp_restart_cpu:
larl %r1,.gprregs larl %r1,.gprregs
lmg %r0,%r15,0(%r1) lmg %r0,%r15,0(%r1)
1: sigp %r0,%r5,__SIGP_SENSE /* Wait for calling CPU */ 1: sigp %r0,%r5,__SIGP_SENSE /* Wait for calling CPU */
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* Michael Holzheu <holzheu@linux.vnet.ibm.com> * Michael Holzheu <holzheu@linux.vnet.ibm.com>
*/ */
#include <linux/linkage.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
...@@ -22,9 +23,7 @@ ...@@ -22,9 +23,7 @@
* This function runs with disabled interrupts. * This function runs with disabled interrupts.
*/ */
.section .text .section .text
.align 4 ENTRY(swsusp_arch_suspend)
.globl swsusp_arch_suspend
swsusp_arch_suspend:
stmg %r6,%r15,__SF_GPRS(%r15) stmg %r6,%r15,__SF_GPRS(%r15)
lgr %r1,%r15 lgr %r1,%r15
aghi %r15,-STACK_FRAME_OVERHEAD aghi %r15,-STACK_FRAME_OVERHEAD
...@@ -112,8 +111,7 @@ swsusp_arch_suspend: ...@@ -112,8 +111,7 @@ swsusp_arch_suspend:
* Then we return to the function that called swsusp_arch_suspend(). * Then we return to the function that called swsusp_arch_suspend().
* swsusp_arch_resume() runs with disabled interrupts. * swsusp_arch_resume() runs with disabled interrupts.
*/ */
.globl swsusp_arch_resume ENTRY(swsusp_arch_resume)
swsusp_arch_resume:
stmg %r6,%r15,__SF_GPRS(%r15) stmg %r6,%r15,__SF_GPRS(%r15)
lgr %r1,%r15 lgr %r1,%r15
aghi %r15,-STACK_FRAME_OVERHEAD aghi %r15,-STACK_FRAME_OVERHEAD
......
# S/390 __udiv_qrnnd # S/390 __udiv_qrnnd
#include <linux/linkage.h>
# r2 : &__r # r2 : &__r
# r3 : upper half of 64 bit word n # r3 : upper half of 64 bit word n
# r4 : lower half of 64 bit word n # r4 : lower half of 64 bit word n
...@@ -8,8 +10,7 @@ ...@@ -8,8 +10,7 @@
# the quotient q is to be returned # the quotient q is to be returned
.text .text
.globl __udiv_qrnnd ENTRY(__udiv_qrnnd)
__udiv_qrnnd:
st %r2,24(%r15) # store pointer to reminder for later st %r2,24(%r15) # store pointer to reminder for later
lr %r0,%r3 # reload n lr %r0,%r3 # reload n
lr %r1,%r4 lr %r1,%r4
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment