compat_wrapper.S 35.4 KB
Newer Older
L
Linus Torvalds 已提交
1 2 3
/*
*    wrapper for 31 bit compatible system calls.
*
4
*    Copyright IBM Corp. 2000, 2006
L
Linus Torvalds 已提交
5
*    Author(s): Gerhard Tonn (ton@de.ibm.com),
H
Heiko Carstens 已提交
6 7
*		Thomas Spatzier (tspat@de.ibm.com)
*/
L
Linus Torvalds 已提交
8

9 10 11
#include <linux/linkage.h>

ENTRY(sys32_exit_wrapper)
L
Linus Torvalds 已提交
12 13
	lgfr	%r2,%r2			# int
	jg	sys_exit		# branch to sys_exit
H
Heiko Carstens 已提交
14

15
ENTRY(sys32_read_wrapper)
L
Linus Torvalds 已提交
16 17 18 19 20
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# char *
	llgfr	%r4,%r4			# size_t
	jg	sys32_read		# branch to sys_read

21
ENTRY(sys32_write_wrapper)
L
Linus Torvalds 已提交
22 23 24 25 26
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# const char *
	llgfr	%r4,%r4			# size_t
	jg	sys32_write		# branch to system call

27
ENTRY(sys32_close_wrapper)
L
Linus Torvalds 已提交
28 29 30
	llgfr	%r2,%r2			# unsigned int
	jg	sys_close		# branch to system call

31
ENTRY(sys32_creat_wrapper)
L
Linus Torvalds 已提交
32 33 34 35
	llgtr	%r2,%r2			# const char *
	lgfr	%r3,%r3			# int
	jg	sys_creat		# branch to system call

36
ENTRY(sys32_link_wrapper)
L
Linus Torvalds 已提交
37 38 39 40
	llgtr	%r2,%r2			# const char *
	llgtr	%r3,%r3			# const char *
	jg	sys_link		# branch to system call

41
ENTRY(sys32_unlink_wrapper)
L
Linus Torvalds 已提交
42 43 44
	llgtr	%r2,%r2			# const char *
	jg	sys_unlink		# branch to system call

45
ENTRY(sys32_chdir_wrapper)
L
Linus Torvalds 已提交
46 47 48
	llgtr	%r2,%r2			# const char *
	jg	sys_chdir		# branch to system call

49
ENTRY(sys32_time_wrapper)
L
Linus Torvalds 已提交
50 51 52
	llgtr	%r2,%r2			# int *
	jg	compat_sys_time		# branch to system call

53
ENTRY(sys32_mknod_wrapper)
L
Linus Torvalds 已提交
54
	llgtr	%r2,%r2			# const char *
H
Heiko Carstens 已提交
55
	lgfr	%r3,%r3			# int
L
Linus Torvalds 已提交
56 57 58
	llgfr	%r4,%r4			# dev
	jg	sys_mknod		# branch to system call

59
ENTRY(sys32_chmod_wrapper)
L
Linus Torvalds 已提交
60 61 62 63
	llgtr	%r2,%r2			# const char *
	llgfr	%r3,%r3			# mode_t
	jg	sys_chmod		# branch to system call

H
Heiko Carstens 已提交
64
#sys32_getpid_wrapper				# void
L
Linus Torvalds 已提交
65

66
ENTRY(sys32_mount_wrapper)
L
Linus Torvalds 已提交
67 68 69 70 71 72 73
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# char *
	llgtr	%r4,%r4			# char *
	llgfr	%r5,%r5			# unsigned long
	llgtr	%r6,%r6			# void *
	jg	compat_sys_mount	# branch to system call

74
ENTRY(sys32_oldumount_wrapper)
L
Linus Torvalds 已提交
75 76 77
	llgtr	%r2,%r2			# char *
	jg	sys_oldumount		# branch to system call

78
ENTRY(sys32_setuid16_wrapper)
H
Heiko Carstens 已提交
79
	llgfr	%r2,%r2			# __kernel_old_uid_emu31_t
L
Linus Torvalds 已提交
80 81
	jg	sys32_setuid16		# branch to system call

H
Heiko Carstens 已提交
82
#sys32_getuid16_wrapper			# void
L
Linus Torvalds 已提交
83

84
ENTRY(sys32_ptrace_wrapper)
L
Linus Torvalds 已提交
85 86 87 88
	lgfr	%r2,%r2			# long
	lgfr	%r3,%r3			# long
	llgtr	%r4,%r4			# long
	llgfr	%r5,%r5			# long
R
Roland McGrath 已提交
89
	jg	compat_sys_ptrace	# branch to system call
L
Linus Torvalds 已提交
90

91
ENTRY(sys32_alarm_wrapper)
L
Linus Torvalds 已提交
92 93 94
	llgfr	%r2,%r2			# unsigned int
	jg	sys_alarm		# branch to system call

95
ENTRY(compat_sys_utime_wrapper)
L
Linus Torvalds 已提交
96 97 98 99
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# struct compat_utimbuf *
	jg	compat_sys_utime	# branch to system call

100
ENTRY(sys32_access_wrapper)
L
Linus Torvalds 已提交
101 102 103 104
	llgtr	%r2,%r2			# const char *
	lgfr	%r3,%r3			# int
	jg	sys_access		# branch to system call

105
ENTRY(sys32_nice_wrapper)
L
Linus Torvalds 已提交
106 107 108
	lgfr	%r2,%r2			# int
	jg	sys_nice		# branch to system call

H
Heiko Carstens 已提交
109
#sys32_sync_wrapper			# void
L
Linus Torvalds 已提交
110

111
ENTRY(sys32_kill_wrapper)
L
Linus Torvalds 已提交
112 113 114 115
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	jg	sys_kill		# branch to system call

116
ENTRY(sys32_rename_wrapper)
L
Linus Torvalds 已提交
117 118 119 120
	llgtr	%r2,%r2			# const char *
	llgtr	%r3,%r3			# const char *
	jg	sys_rename		# branch to system call

121
ENTRY(sys32_mkdir_wrapper)
L
Linus Torvalds 已提交
122 123 124 125
	llgtr	%r2,%r2			# const char *
	lgfr	%r3,%r3			# int
	jg	sys_mkdir		# branch to system call

126
ENTRY(sys32_rmdir_wrapper)
L
Linus Torvalds 已提交
127 128 129
	llgtr	%r2,%r2			# const char *
	jg	sys_rmdir		# branch to system call

130
ENTRY(sys32_dup_wrapper)
L
Linus Torvalds 已提交
131 132 133
	llgfr	%r2,%r2			# unsigned int
	jg	sys_dup			# branch to system call

134
ENTRY(sys32_pipe_wrapper)
L
Linus Torvalds 已提交
135 136 137
	llgtr	%r2,%r2			# u32 *
	jg	sys_pipe		# branch to system call

138
ENTRY(compat_sys_times_wrapper)
L
Linus Torvalds 已提交
139 140 141
	llgtr	%r2,%r2			# struct compat_tms *
	jg	compat_sys_times	# branch to system call

142
ENTRY(sys32_brk_wrapper)
L
Linus Torvalds 已提交
143 144 145
	llgtr	%r2,%r2			# unsigned long
	jg	sys_brk			# branch to system call

H
Heiko Carstens 已提交
146
#sys32_getgid16_wrapper			# void
L
Linus Torvalds 已提交
147

148
ENTRY(sys32_signal_wrapper)
H
Heiko Carstens 已提交
149
	lgfr	%r2,%r2			# int
L
Linus Torvalds 已提交
150 151 152
	llgtr	%r3,%r3			# __sighandler_t
	jg	sys_signal

H
Heiko Carstens 已提交
153
#sys32_geteuid16_wrapper		# void
L
Linus Torvalds 已提交
154

H
Heiko Carstens 已提交
155
#sys32_getegid16_wrapper		# void
L
Linus Torvalds 已提交
156

157
ENTRY(sys32_acct_wrapper)
L
Linus Torvalds 已提交
158 159 160
	llgtr	%r2,%r2			# char *
	jg	sys_acct		# branch to system call

161
ENTRY(sys32_umount_wrapper)
L
Linus Torvalds 已提交
162 163 164 165
	llgtr	%r2,%r2			# char *
	lgfr	%r3,%r3			# int
	jg	sys_umount		# branch to system call

166
ENTRY(compat_sys_ioctl_wrapper)
L
Linus Torvalds 已提交
167 168 169 170 171
	llgfr	%r2,%r2			# unsigned int
	llgfr	%r3,%r3			# unsigned int
	llgfr	%r4,%r4			# unsigned int
	jg	compat_sys_ioctl	# branch to system call

172
ENTRY(compat_sys_fcntl_wrapper)
L
Linus Torvalds 已提交
173
	llgfr	%r2,%r2			# unsigned int
H
Heiko Carstens 已提交
174
	llgfr	%r3,%r3			# unsigned int
L
Linus Torvalds 已提交
175 176 177
	llgfr	%r4,%r4			# unsigned long
	jg	compat_sys_fcntl	# branch to system call

178
ENTRY(sys32_setpgid_wrapper)
L
Linus Torvalds 已提交
179 180 181 182
	lgfr	%r2,%r2			# pid_t
	lgfr	%r3,%r3			# pid_t
	jg	sys_setpgid		# branch to system call

183
ENTRY(sys32_umask_wrapper)
L
Linus Torvalds 已提交
184 185 186
	lgfr	%r2,%r2			# int
	jg	sys_umask		# branch to system call

187
ENTRY(sys32_chroot_wrapper)
L
Linus Torvalds 已提交
188 189 190
	llgtr	%r2,%r2			# char *
	jg	sys_chroot		# branch to system call

191
ENTRY(sys32_ustat_wrapper)
H
Heiko Carstens 已提交
192
	llgfr	%r2,%r2			# dev_t
L
Linus Torvalds 已提交
193
	llgtr	%r3,%r3			# struct ustat *
C
Christoph Hellwig 已提交
194
	jg	compat_sys_ustat
L
Linus Torvalds 已提交
195

196
ENTRY(sys32_dup2_wrapper)
L
Linus Torvalds 已提交
197 198 199 200
	llgfr	%r2,%r2			# unsigned int
	llgfr	%r3,%r3			# unsigned int
	jg	sys_dup2		# branch to system call

H
Heiko Carstens 已提交
201
#sys32_getppid_wrapper			# void
L
Linus Torvalds 已提交
202

H
Heiko Carstens 已提交
203
#sys32_getpgrp_wrapper			# void
L
Linus Torvalds 已提交
204

H
Heiko Carstens 已提交
205
#sys32_setsid_wrapper			# void
L
Linus Torvalds 已提交
206

207
ENTRY(sys32_setreuid16_wrapper)
H
Heiko Carstens 已提交
208 209
	llgfr	%r2,%r2			# __kernel_old_uid_emu31_t
	llgfr	%r3,%r3			# __kernel_old_uid_emu31_t
L
Linus Torvalds 已提交
210 211
	jg	sys32_setreuid16	# branch to system call

212
ENTRY(sys_sigsuspend_wrapper)
213 214 215 216
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	llgfr	%r4,%r4			# old_sigset_t
	jg	sys_sigsuspend
L
Linus Torvalds 已提交
217

218
ENTRY(compat_sys_sigpending_wrapper)
L
Linus Torvalds 已提交
219 220 221
	llgtr	%r2,%r2			# compat_old_sigset_t *
	jg	compat_sys_sigpending	# branch to system call

222
ENTRY(sys32_sethostname_wrapper)
L
Linus Torvalds 已提交
223 224 225 226
	llgtr	%r2,%r2			# char *
	lgfr	%r3,%r3			# int
	jg	sys_sethostname		# branch to system call

227
ENTRY(compat_sys_setrlimit_wrapper)
L
Linus Torvalds 已提交
228 229 230 231
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# struct rlimit_emu31 *
	jg	compat_sys_setrlimit	# branch to system call

232
ENTRY(compat_sys_old_getrlimit_wrapper)
L
Linus Torvalds 已提交
233 234 235 236
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# struct rlimit_emu31 *
	jg	compat_sys_old_getrlimit # branch to system call

237
ENTRY(compat_sys_getrlimit_wrapper)
L
Linus Torvalds 已提交
238 239 240 241
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# struct rlimit_emu31 *
	jg	compat_sys_getrlimit	# branch to system call

242
ENTRY(sys32_mmap2_wrapper)
L
Linus Torvalds 已提交
243 244 245
	llgtr	%r2,%r2			# struct mmap_arg_struct_emu31 *
	jg	sys32_mmap2			# branch to system call

246
ENTRY(compat_sys_gettimeofday_wrapper)
L
Linus Torvalds 已提交
247 248
	llgtr	%r2,%r2			# struct timeval_emu31 *
	llgtr	%r3,%r3			# struct timezone *
249
	jg	compat_sys_gettimeofday	# branch to system call
L
Linus Torvalds 已提交
250

251
ENTRY(compat_sys_settimeofday_wrapper)
L
Linus Torvalds 已提交
252 253
	llgtr	%r2,%r2			# struct timeval_emu31 *
	llgtr	%r3,%r3			# struct timezone *
254
	jg	compat_sys_settimeofday	# branch to system call
L
Linus Torvalds 已提交
255

256
ENTRY(sys32_getgroups16_wrapper)
L
Linus Torvalds 已提交
257 258 259 260
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# __kernel_old_gid_emu31_t *
	jg	sys32_getgroups16	# branch to system call

261
ENTRY(sys32_setgroups16_wrapper)
L
Linus Torvalds 已提交
262 263 264 265
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# __kernel_old_gid_emu31_t *
	jg	sys32_setgroups16	# branch to system call

266
ENTRY(sys32_symlink_wrapper)
L
Linus Torvalds 已提交
267 268 269 270
	llgtr	%r2,%r2			# const char *
	llgtr	%r3,%r3			# const char *
	jg	sys_symlink		# branch to system call

271
ENTRY(sys32_readlink_wrapper)
L
Linus Torvalds 已提交
272 273 274 275 276
	llgtr	%r2,%r2			# const char *
	llgtr	%r3,%r3			# char *
	lgfr	%r4,%r4			# int
	jg	sys_readlink		# branch to system call

277
ENTRY(sys32_uselib_wrapper)
L
Linus Torvalds 已提交
278 279 280
	llgtr	%r2,%r2			# const char *
	jg	sys_uselib		# branch to system call

281
ENTRY(sys32_swapon_wrapper)
L
Linus Torvalds 已提交
282 283 284 285
	llgtr	%r2,%r2			# const char *
	lgfr	%r3,%r3			# int
	jg	sys_swapon		# branch to system call

286
ENTRY(sys32_reboot_wrapper)
L
Linus Torvalds 已提交
287 288 289 290 291 292
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	llgfr	%r4,%r4			# unsigned int
	llgtr	%r5,%r5			# void *
	jg	sys_reboot		# branch to system call

293
ENTRY(old32_readdir_wrapper)
L
Linus Torvalds 已提交
294 295 296 297 298
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# void *
	llgfr	%r4,%r4			# unsigned int
	jg	compat_sys_old_readdir	# branch to system call

299
ENTRY(old32_mmap_wrapper)
L
Linus Torvalds 已提交
300 301 302
	llgtr	%r2,%r2			# struct mmap_arg_struct_emu31 *
	jg	old32_mmap		# branch to system call

303
ENTRY(sys32_munmap_wrapper)
L
Linus Torvalds 已提交
304
	llgfr	%r2,%r2			# unsigned long
H
Heiko Carstens 已提交
305
	llgfr	%r3,%r3			# size_t
L
Linus Torvalds 已提交
306 307
	jg	sys_munmap		# branch to system call

308
ENTRY(sys32_fchmod_wrapper)
L
Linus Torvalds 已提交
309 310 311 312
	llgfr	%r2,%r2			# unsigned int
	llgfr	%r3,%r3			# mode_t
	jg	sys_fchmod		# branch to system call

313
ENTRY(sys32_getpriority_wrapper)
L
Linus Torvalds 已提交
314 315 316 317
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	jg	sys_getpriority		# branch to system call

318
ENTRY(sys32_setpriority_wrapper)
L
Linus Torvalds 已提交
319 320 321 322 323
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	lgfr	%r4,%r4			# int
	jg	sys_setpriority		# branch to system call

324
ENTRY(compat_sys_statfs_wrapper)
L
Linus Torvalds 已提交
325 326 327 328
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# struct compat_statfs *
	jg	compat_sys_statfs	# branch to system call

329
ENTRY(compat_sys_fstatfs_wrapper)
L
Linus Torvalds 已提交
330 331 332 333
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# struct compat_statfs *
	jg	compat_sys_fstatfs	# branch to system call

334
ENTRY(compat_sys_socketcall_wrapper)
L
Linus Torvalds 已提交
335 336 337 338
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# u32 *
	jg	compat_sys_socketcall	# branch to system call

339
ENTRY(sys32_syslog_wrapper)
L
Linus Torvalds 已提交
340 341 342 343 344
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# char *
	lgfr	%r4,%r4			# int
	jg	sys_syslog		# branch to system call

345
ENTRY(compat_sys_newstat_wrapper)
L
Linus Torvalds 已提交
346 347 348 349
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# struct stat_emu31 *
	jg	compat_sys_newstat	# branch to system call

350
ENTRY(compat_sys_newlstat_wrapper)
L
Linus Torvalds 已提交
351 352 353 354
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# struct stat_emu31 *
	jg	compat_sys_newlstat	# branch to system call

355
ENTRY(compat_sys_newfstat_wrapper)
L
Linus Torvalds 已提交
356 357 358 359
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# struct stat_emu31 *
	jg	compat_sys_newfstat	# branch to system call

H
Heiko Carstens 已提交
360
#sys32_vhangup_wrapper			# void
L
Linus Torvalds 已提交
361

362
ENTRY(sys32_swapoff_wrapper)
L
Linus Torvalds 已提交
363 364 365
	llgtr	%r2,%r2			# const char *
	jg	sys_swapoff		# branch to system call

366
ENTRY(compat_sys_sysinfo_wrapper)
L
Linus Torvalds 已提交
367
	llgtr	%r2,%r2			# struct sysinfo_emu31 *
368
	jg	compat_sys_sysinfo	# branch to system call
L
Linus Torvalds 已提交
369

370
ENTRY(sys32_fsync_wrapper)
L
Linus Torvalds 已提交
371 372 373
	llgfr	%r2,%r2			# unsigned int
	jg	sys_fsync		# branch to system call

H
Heiko Carstens 已提交
374
#sys32_sigreturn_wrapper		# done in sigreturn_glue
L
Linus Torvalds 已提交
375

H
Heiko Carstens 已提交
376
#sys32_clone_wrapper			# done in clone_glue
L
Linus Torvalds 已提交
377

378
ENTRY(sys32_setdomainname_wrapper)
L
Linus Torvalds 已提交
379 380 381 382
	llgtr	%r2,%r2			# char *
	lgfr	%r3,%r3			# int
	jg	sys_setdomainname	# branch to system call

383
ENTRY(sys32_newuname_wrapper)
L
Linus Torvalds 已提交
384
	llgtr	%r2,%r2			# struct new_utsname *
385
	jg	sys_newuname		# branch to system call
L
Linus Torvalds 已提交
386

387
ENTRY(compat_sys_adjtimex_wrapper)
388 389
	llgtr	%r2,%r2			# struct compat_timex *
	jg	compat_sys_adjtimex	# branch to system call
L
Linus Torvalds 已提交
390

391
ENTRY(sys32_mprotect_wrapper)
L
Linus Torvalds 已提交
392 393 394 395 396
	llgtr	%r2,%r2			# unsigned long (actually pointer
	llgfr	%r3,%r3			# size_t
	llgfr	%r4,%r4			# unsigned long
	jg	sys_mprotect		# branch to system call

397
ENTRY(sys_init_module_wrapper)
L
Linus Torvalds 已提交
398 399 400
	llgtr	%r2,%r2			# void *
	llgfr	%r3,%r3			# unsigned long
	llgtr	%r4,%r4			# char *
401
	jg	sys_init_module		# branch to system call
L
Linus Torvalds 已提交
402

403
ENTRY(sys_delete_module_wrapper)
L
Linus Torvalds 已提交
404 405
	llgtr	%r2,%r2			# const char *
	llgfr	%r3,%r3			# unsigned int
406
	jg	sys_delete_module	# branch to system call
L
Linus Torvalds 已提交
407

408
ENTRY(sys32_quotactl_wrapper)
L
Linus Torvalds 已提交
409 410 411 412 413 414
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# const char *
	llgfr	%r4,%r4			# qid_t
	llgtr	%r5,%r5			# caddr_t
	jg	sys_quotactl		# branch to system call

415
ENTRY(sys32_getpgid_wrapper)
L
Linus Torvalds 已提交
416 417 418
	lgfr	%r2,%r2			# pid_t
	jg	sys_getpgid		# branch to system call

419
ENTRY(sys32_fchdir_wrapper)
L
Linus Torvalds 已提交
420 421 422
	llgfr	%r2,%r2			# unsigned int
	jg	sys_fchdir		# branch to system call

423
ENTRY(sys32_bdflush_wrapper)
L
Linus Torvalds 已提交
424 425 426 427
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# long
	jg	sys_bdflush		# branch to system call

428
ENTRY(sys32_sysfs_wrapper)
L
Linus Torvalds 已提交
429 430 431 432 433
	lgfr	%r2,%r2			# int
	llgfr	%r3,%r3			# unsigned long
	llgfr	%r4,%r4			# unsigned long
	jg	sys_sysfs		# branch to system call

434
ENTRY(sys32_personality_wrapper)
435
	llgfr	%r2,%r2			# unsigned int
436
	jg	sys_s390_personality	# branch to system call
L
Linus Torvalds 已提交
437

438
ENTRY(sys32_setfsuid16_wrapper)
H
Heiko Carstens 已提交
439
	llgfr	%r2,%r2			# __kernel_old_uid_emu31_t
L
Linus Torvalds 已提交
440 441
	jg	sys32_setfsuid16	# branch to system call

442
ENTRY(sys32_setfsgid16_wrapper)
H
Heiko Carstens 已提交
443
	llgfr	%r2,%r2			# __kernel_old_gid_emu31_t
L
Linus Torvalds 已提交
444 445
	jg	sys32_setfsgid16	# branch to system call

446
ENTRY(sys32_llseek_wrapper)
L
Linus Torvalds 已提交
447 448 449 450 451 452 453
	llgfr	%r2,%r2			# unsigned int
	llgfr	%r3,%r3			# unsigned long
	llgfr	%r4,%r4			# unsigned long
	llgtr	%r5,%r5			# loff_t *
	llgfr	%r6,%r6			# unsigned int
	jg	sys_llseek		# branch to system call

454
ENTRY(sys32_getdents_wrapper)
L
Linus Torvalds 已提交
455 456 457 458 459
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# void *
	llgfr	%r4,%r4			# unsigned int
	jg	compat_sys_getdents	# branch to system call

460
ENTRY(compat_sys_select_wrapper)
L
Linus Torvalds 已提交
461 462 463 464 465 466 467
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# compat_fd_set *
	llgtr	%r4,%r4			# compat_fd_set *
	llgtr	%r5,%r5			# compat_fd_set *
	llgtr	%r6,%r6			# struct compat_timeval *
	jg	compat_sys_select	# branch to system call

468
ENTRY(sys32_flock_wrapper)
L
Linus Torvalds 已提交
469 470 471 472
	llgfr	%r2,%r2			# unsigned int
	llgfr	%r3,%r3			# unsigned int
	jg	sys_flock		# branch to system call

473
ENTRY(sys32_msync_wrapper)
L
Linus Torvalds 已提交
474 475 476 477 478
	llgfr	%r2,%r2			# unsigned long
	llgfr	%r3,%r3			# size_t
	lgfr	%r4,%r4			# int
	jg	sys_msync		# branch to system call

479
ENTRY(compat_sys_readv_wrapper)
L
Linus Torvalds 已提交
480 481 482 483 484
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const struct compat_iovec *
	llgfr	%r4,%r4			# unsigned long
	jg	compat_sys_readv	# branch to system call

485
ENTRY(compat_sys_writev_wrapper)
L
Linus Torvalds 已提交
486 487 488 489 490
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const struct compat_iovec *
	llgfr	%r4,%r4			# unsigned long
	jg	compat_sys_writev	# branch to system call

491
ENTRY(sys32_getsid_wrapper)
L
Linus Torvalds 已提交
492 493 494
	lgfr	%r2,%r2			# pid_t
	jg	sys_getsid		# branch to system call

495
ENTRY(sys32_fdatasync_wrapper)
L
Linus Torvalds 已提交
496 497 498
	llgfr	%r2,%r2			# unsigned int
	jg	sys_fdatasync		# branch to system call

499
ENTRY(sys32_mlock_wrapper)
L
Linus Torvalds 已提交
500 501 502 503
	llgfr	%r2,%r2			# unsigned long
	llgfr	%r3,%r3			# size_t
	jg	sys_mlock		# branch to system call

504
ENTRY(sys32_munlock_wrapper)
L
Linus Torvalds 已提交
505 506 507 508
	llgfr	%r2,%r2			# unsigned long
	llgfr	%r3,%r3			# size_t
	jg	sys_munlock		# branch to system call

509
ENTRY(sys32_mlockall_wrapper)
L
Linus Torvalds 已提交
510 511 512
	lgfr	%r2,%r2			# int
	jg	sys_mlockall		# branch to system call

H
Heiko Carstens 已提交
513
#sys32_munlockall_wrapper		# void
L
Linus Torvalds 已提交
514

515
ENTRY(sys32_sched_setparam_wrapper)
L
Linus Torvalds 已提交
516 517 518 519
	lgfr	%r2,%r2			# pid_t
	llgtr	%r3,%r3			# struct sched_param *
	jg	sys_sched_setparam	# branch to system call

520
ENTRY(sys32_sched_getparam_wrapper)
L
Linus Torvalds 已提交
521 522 523 524
	lgfr	%r2,%r2			# pid_t
	llgtr	%r3,%r3			# struct sched_param *
	jg	sys_sched_getparam	# branch to system call

525
ENTRY(sys32_sched_setscheduler_wrapper)
L
Linus Torvalds 已提交
526 527 528 529 530
	lgfr	%r2,%r2			# pid_t
	lgfr	%r3,%r3			# int
	llgtr	%r4,%r4			# struct sched_param *
	jg	sys_sched_setscheduler	# branch to system call

531
ENTRY(sys32_sched_getscheduler_wrapper)
L
Linus Torvalds 已提交
532 533 534
	lgfr	%r2,%r2			# pid_t
	jg	sys_sched_getscheduler	# branch to system call

H
Heiko Carstens 已提交
535
#sys32_sched_yield_wrapper		# void
L
Linus Torvalds 已提交
536

537
ENTRY(sys32_sched_get_priority_max_wrapper)
L
Linus Torvalds 已提交
538 539 540
	lgfr	%r2,%r2			# int
	jg	sys_sched_get_priority_max	# branch to system call

541
ENTRY(sys32_sched_get_priority_min_wrapper)
L
Linus Torvalds 已提交
542 543 544
	lgfr	%r2,%r2			# int
	jg	sys_sched_get_priority_min	# branch to system call

545
ENTRY(compat_sys_nanosleep_wrapper)
L
Linus Torvalds 已提交
546 547 548 549
	llgtr	%r2,%r2			# struct compat_timespec *
	llgtr	%r3,%r3			# struct compat_timespec *
	jg	compat_sys_nanosleep		# branch to system call

550
ENTRY(sys32_mremap_wrapper)
L
Linus Torvalds 已提交
551 552 553 554 555 556 557
	llgfr	%r2,%r2			# unsigned long
	llgfr	%r3,%r3			# unsigned long
	llgfr	%r4,%r4			# unsigned long
	llgfr	%r5,%r5			# unsigned long
	llgfr	%r6,%r6			# unsigned long
	jg	sys_mremap		# branch to system call

558
ENTRY(sys32_setresuid16_wrapper)
H
Heiko Carstens 已提交
559 560 561
	llgfr	%r2,%r2			# __kernel_old_uid_emu31_t
	llgfr	%r3,%r3			# __kernel_old_uid_emu31_t
	llgfr	%r4,%r4			# __kernel_old_uid_emu31_t
L
Linus Torvalds 已提交
562 563
	jg	sys32_setresuid16	# branch to system call

564
ENTRY(sys32_getresuid16_wrapper)
L
Linus Torvalds 已提交
565 566 567 568 569
	llgtr	%r2,%r2			# __kernel_old_uid_emu31_t *
	llgtr	%r3,%r3			# __kernel_old_uid_emu31_t *
	llgtr	%r4,%r4			# __kernel_old_uid_emu31_t *
	jg	sys32_getresuid16	# branch to system call

570
ENTRY(sys32_poll_wrapper)
H
Heiko Carstens 已提交
571 572
	llgtr	%r2,%r2			# struct pollfd *
	llgfr	%r3,%r3			# unsigned int
573
	lgfr	%r4,%r4			# int
L
Linus Torvalds 已提交
574 575
	jg	sys_poll		# branch to system call

576
ENTRY(sys32_setresgid16_wrapper)
H
Heiko Carstens 已提交
577 578 579
	llgfr	%r2,%r2			# __kernel_old_gid_emu31_t
	llgfr	%r3,%r3			# __kernel_old_gid_emu31_t
	llgfr	%r4,%r4			# __kernel_old_gid_emu31_t
L
Linus Torvalds 已提交
580 581
	jg	sys32_setresgid16	# branch to system call

582
ENTRY(sys32_getresgid16_wrapper)
L
Linus Torvalds 已提交
583 584 585 586 587
	llgtr	%r2,%r2			# __kernel_old_gid_emu31_t *
	llgtr	%r3,%r3			# __kernel_old_gid_emu31_t *
	llgtr	%r4,%r4			# __kernel_old_gid_emu31_t *
	jg	sys32_getresgid16	# branch to system call

588
ENTRY(sys32_prctl_wrapper)
L
Linus Torvalds 已提交
589 590 591 592 593 594 595
	lgfr	%r2,%r2			# int
	llgfr	%r3,%r3			# unsigned long
	llgfr	%r4,%r4			# unsigned long
	llgfr	%r5,%r5			# unsigned long
	llgfr	%r6,%r6			# unsigned long
	jg	sys_prctl		# branch to system call

H
Heiko Carstens 已提交
596
#sys32_rt_sigreturn_wrapper		# done in rt_sigreturn_glue
L
Linus Torvalds 已提交
597

598
ENTRY(sys32_pread64_wrapper)
L
Linus Torvalds 已提交
599 600 601 602 603 604 605
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# char *
	llgfr	%r4,%r4			# size_t
	llgfr	%r5,%r5			# u32
	llgfr	%r6,%r6			# u32
	jg	sys32_pread64		# branch to system call

606
ENTRY(sys32_pwrite64_wrapper)
L
Linus Torvalds 已提交
607 608 609 610 611 612 613
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# const char *
	llgfr	%r4,%r4			# size_t
	llgfr	%r5,%r5			# u32
	llgfr	%r6,%r6			# u32
	jg	sys32_pwrite64		# branch to system call

614
ENTRY(sys32_getcwd_wrapper)
L
Linus Torvalds 已提交
615 616 617 618
	llgtr	%r2,%r2			# char *
	llgfr	%r3,%r3			# unsigned long
	jg	sys_getcwd		# branch to system call

619
ENTRY(sys32_capget_wrapper)
L
Linus Torvalds 已提交
620 621 622 623
	llgtr	%r2,%r2			# cap_user_header_t
	llgtr	%r3,%r3			# cap_user_data_t
	jg	sys_capget		# branch to system call

624
ENTRY(sys32_capset_wrapper)
L
Linus Torvalds 已提交
625 626 627 628
	llgtr	%r2,%r2			# cap_user_header_t
	llgtr	%r3,%r3			# const cap_user_data_t
	jg	sys_capset		# branch to system call

H
Heiko Carstens 已提交
629
#sys32_vfork_wrapper			# done in vfork_glue
L
Linus Torvalds 已提交
630

631
ENTRY(sys32_truncate64_wrapper)
L
Linus Torvalds 已提交
632 633 634 635 636
	llgtr	%r2,%r2			# const char *
	llgfr	%r3,%r3			# unsigned long
	llgfr	%r4,%r4			# unsigned long
	jg	sys32_truncate64	# branch to system call

637
ENTRY(sys32_ftruncate64_wrapper)
L
Linus Torvalds 已提交
638 639 640 641 642
	llgfr	%r2,%r2			# unsigned int
	llgfr	%r3,%r3			# unsigned long
	llgfr	%r4,%r4			# unsigned long
	jg	sys32_ftruncate64	# branch to system call

643
ENTRY(sys32_lchown_wrapper)
L
Linus Torvalds 已提交
644 645 646 647 648
	llgtr	%r2,%r2			# const char *
	llgfr	%r3,%r3			# uid_t
	llgfr	%r4,%r4			# gid_t
	jg	sys_lchown		# branch to system call

H
Heiko Carstens 已提交
649 650 651 652
#sys32_getuid_wrapper			# void
#sys32_getgid_wrapper			# void
#sys32_geteuid_wrapper			# void
#sys32_getegid_wrapper			# void
L
Linus Torvalds 已提交
653

654
ENTRY(sys32_setreuid_wrapper)
L
Linus Torvalds 已提交
655 656 657 658
	llgfr	%r2,%r2			# uid_t
	llgfr	%r3,%r3			# uid_t
	jg	sys_setreuid		# branch to system call

659
ENTRY(sys32_setregid_wrapper)
L
Linus Torvalds 已提交
660 661 662 663
	llgfr	%r2,%r2			# gid_t
	llgfr	%r3,%r3			# gid_t
	jg	sys_setregid		# branch to system call

664
ENTRY(sys32_getgroups_wrapper)
L
Linus Torvalds 已提交
665 666 667 668
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# gid_t *
	jg	sys_getgroups		# branch to system call

669
ENTRY(sys32_setgroups_wrapper)
L
Linus Torvalds 已提交
670 671 672 673
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# gid_t *
	jg	sys_setgroups		# branch to system call

674
ENTRY(sys32_fchown_wrapper)
L
Linus Torvalds 已提交
675 676 677 678 679
	llgfr	%r2,%r2			# unsigned int
	llgfr	%r3,%r3			# uid_t
	llgfr	%r4,%r4			# gid_t
	jg	sys_fchown		# branch to system call

680
ENTRY(sys32_setresuid_wrapper)
L
Linus Torvalds 已提交
681 682 683 684 685
	llgfr	%r2,%r2			# uid_t
	llgfr	%r3,%r3			# uid_t
	llgfr	%r4,%r4			# uid_t
	jg	sys_setresuid		# branch to system call

686
ENTRY(sys32_getresuid_wrapper)
L
Linus Torvalds 已提交
687 688 689 690 691
	llgtr	%r2,%r2			# uid_t *
	llgtr	%r3,%r3			# uid_t *
	llgtr	%r4,%r4			# uid_t *
	jg	sys_getresuid		# branch to system call

692
ENTRY(sys32_setresgid_wrapper)
L
Linus Torvalds 已提交
693 694 695 696 697
	llgfr	%r2,%r2			# gid_t
	llgfr	%r3,%r3			# gid_t
	llgfr	%r4,%r4			# gid_t
	jg	sys_setresgid		# branch to system call

698
ENTRY(sys32_getresgid_wrapper)
L
Linus Torvalds 已提交
699 700 701 702 703
	llgtr	%r2,%r2			# gid_t *
	llgtr	%r3,%r3			# gid_t *
	llgtr	%r4,%r4			# gid_t *
	jg	sys_getresgid		# branch to system call

704
ENTRY(sys32_chown_wrapper)
L
Linus Torvalds 已提交
705 706 707 708 709
	llgtr	%r2,%r2			# const char *
	llgfr	%r3,%r3			# uid_t
	llgfr	%r4,%r4			# gid_t
	jg	sys_chown		# branch to system call

710
ENTRY(sys32_setuid_wrapper)
L
Linus Torvalds 已提交
711 712 713
	llgfr	%r2,%r2			# uid_t
	jg	sys_setuid		# branch to system call

714
ENTRY(sys32_setgid_wrapper)
L
Linus Torvalds 已提交
715 716 717
	llgfr	%r2,%r2			# gid_t
	jg	sys_setgid		# branch to system call

718
ENTRY(sys32_setfsuid_wrapper)
L
Linus Torvalds 已提交
719 720 721
	llgfr	%r2,%r2			# uid_t
	jg	sys_setfsuid		# branch to system call

722
ENTRY(sys32_setfsgid_wrapper)
L
Linus Torvalds 已提交
723 724 725
	llgfr	%r2,%r2			# gid_t
	jg	sys_setfsgid		# branch to system call

726
ENTRY(sys32_pivot_root_wrapper)
L
Linus Torvalds 已提交
727 728 729 730
	llgtr	%r2,%r2			# const char *
	llgtr	%r3,%r3			# const char *
	jg	sys_pivot_root		# branch to system call

731
ENTRY(sys32_mincore_wrapper)
L
Linus Torvalds 已提交
732 733 734 735 736
	llgfr	%r2,%r2			# unsigned long
	llgfr	%r3,%r3			# size_t
	llgtr	%r4,%r4			# unsigned char *
	jg	sys_mincore		# branch to system call

737
ENTRY(sys32_madvise_wrapper)
L
Linus Torvalds 已提交
738 739 740 741 742
	llgfr	%r2,%r2			# unsigned long
	llgfr	%r3,%r3			# size_t
	lgfr	%r4,%r4			# int
	jg	sys_madvise		# branch to system call

743
ENTRY(sys32_getdents64_wrapper)
L
Linus Torvalds 已提交
744 745 746 747 748
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# void *
	llgfr	%r4,%r4			# unsigned int
	jg	sys_getdents64		# branch to system call

749
ENTRY(compat_sys_fcntl64_wrapper)
L
Linus Torvalds 已提交
750
	llgfr	%r2,%r2			# unsigned int
H
Heiko Carstens 已提交
751
	llgfr	%r3,%r3			# unsigned int
L
Linus Torvalds 已提交
752 753 754
	llgfr	%r4,%r4			# unsigned long
	jg	compat_sys_fcntl64	# branch to system call

755
ENTRY(sys32_stat64_wrapper)
L
Linus Torvalds 已提交
756 757 758 759
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# struct stat64 *
	jg	sys32_stat64		# branch to system call

760
ENTRY(sys32_lstat64_wrapper)
L
Linus Torvalds 已提交
761 762 763 764
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# struct stat64 *
	jg	sys32_lstat64		# branch to system call

765
ENTRY(sys32_stime_wrapper)
L
Linus Torvalds 已提交
766 767 768
	llgtr	%r2,%r2			# long *
	jg	compat_sys_stime	# branch to system call

769
ENTRY(sys32_fstat64_wrapper)
L
Linus Torvalds 已提交
770 771 772 773
	llgfr	%r2,%r2			# unsigned long
	llgtr	%r3,%r3			# struct stat64 *
	jg	sys32_fstat64		# branch to system call

774
ENTRY(sys32_setxattr_wrapper)
L
Linus Torvalds 已提交
775 776 777 778 779 780 781
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# char *
	llgtr	%r4,%r4			# void *
	llgfr	%r5,%r5			# size_t
	lgfr	%r6,%r6			# int
	jg	sys_setxattr

782
ENTRY(sys32_lsetxattr_wrapper)
L
Linus Torvalds 已提交
783 784 785 786 787 788 789
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# char *
	llgtr	%r4,%r4			# void *
	llgfr	%r5,%r5			# size_t
	lgfr	%r6,%r6			# int
	jg	sys_lsetxattr

790
ENTRY(sys32_fsetxattr_wrapper)
L
Linus Torvalds 已提交
791 792 793 794 795 796 797
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# char *
	llgtr	%r4,%r4			# void *
	llgfr	%r5,%r5			# size_t
	lgfr	%r6,%r6			# int
	jg	sys_fsetxattr

798
ENTRY(sys32_getxattr_wrapper)
L
Linus Torvalds 已提交
799 800 801 802 803 804
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# char *
	llgtr	%r4,%r4			# void *
	llgfr	%r5,%r5			# size_t
	jg	sys_getxattr

805
ENTRY(sys32_lgetxattr_wrapper)
L
Linus Torvalds 已提交
806 807 808 809 810 811
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# char *
	llgtr	%r4,%r4			# void *
	llgfr	%r5,%r5			# size_t
	jg	sys_lgetxattr

812
ENTRY(sys32_fgetxattr_wrapper)
L
Linus Torvalds 已提交
813 814 815 816 817 818
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# char *
	llgtr	%r4,%r4			# void *
	llgfr	%r5,%r5			# size_t
	jg	sys_fgetxattr

819
ENTRY(sys32_listxattr_wrapper)
L
Linus Torvalds 已提交
820 821 822 823 824
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# char *
	llgfr	%r4,%r4			# size_t
	jg	sys_listxattr

825
ENTRY(sys32_llistxattr_wrapper)
L
Linus Torvalds 已提交
826 827 828 829 830
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# char *
	llgfr	%r4,%r4			# size_t
	jg	sys_llistxattr

831
ENTRY(sys32_flistxattr_wrapper)
L
Linus Torvalds 已提交
832 833 834 835 836
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# char *
	llgfr	%r4,%r4			# size_t
	jg	sys_flistxattr

837
ENTRY(sys32_removexattr_wrapper)
L
Linus Torvalds 已提交
838 839 840 841
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# char *
	jg	sys_removexattr

842
ENTRY(sys32_lremovexattr_wrapper)
L
Linus Torvalds 已提交
843 844 845 846
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# char *
	jg	sys_lremovexattr

847
ENTRY(sys32_fremovexattr_wrapper)
L
Linus Torvalds 已提交
848 849 850 851
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# char *
	jg	sys_fremovexattr

852
ENTRY(sys32_sched_setaffinity_wrapper)
L
Linus Torvalds 已提交
853 854 855 856 857
	lgfr	%r2,%r2			# int
	llgfr	%r3,%r3			# unsigned int
	llgtr	%r4,%r4			# unsigned long *
	jg	compat_sys_sched_setaffinity

858
ENTRY(sys32_sched_getaffinity_wrapper)
L
Linus Torvalds 已提交
859 860 861 862 863
	lgfr	%r2,%r2			# int
	llgfr	%r3,%r3			# unsigned int
	llgtr	%r4,%r4			# unsigned long *
	jg	compat_sys_sched_getaffinity

864
ENTRY(sys32_exit_group_wrapper)
L
Linus Torvalds 已提交
865 866 867
	lgfr	%r2,%r2			# int
	jg	sys_exit_group		# branch to system call

868
ENTRY(sys32_set_tid_address_wrapper)
L
Linus Torvalds 已提交
869 870 871
	llgtr	%r2,%r2			# int *
	jg	sys_set_tid_address	# branch to system call

872
ENTRY(sys_epoll_create_wrapper)
L
Linus Torvalds 已提交
873 874 875
	lgfr	%r2,%r2			# int
	jg	sys_epoll_create	# branch to system call

876
ENTRY(sys_epoll_ctl_wrapper)
L
Linus Torvalds 已提交
877 878 879 880 881 882
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	lgfr	%r4,%r4			# int
	llgtr	%r5,%r5			# struct epoll_event *
	jg	sys_epoll_ctl		# branch to system call

883
ENTRY(sys_epoll_wait_wrapper)
L
Linus Torvalds 已提交
884 885 886 887 888 889
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# struct epoll_event *
	lgfr	%r4,%r4			# int
	lgfr	%r5,%r5			# int
	jg	sys_epoll_wait		# branch to system call

890
ENTRY(sys32_fadvise64_wrapper)
L
Linus Torvalds 已提交
891 892 893 894 895
	lgfr	%r2,%r2			# int
	sllg	%r3,%r3,32		# get high word of 64bit loff_t
	or	%r3,%r4			# get low word of 64bit loff_t
	llgfr	%r4,%r5			# size_t (unsigned long)
	lgfr	%r5,%r6			# int
896
	jg	sys32_fadvise64
L
Linus Torvalds 已提交
897

898
ENTRY(sys32_fadvise64_64_wrapper)
L
Linus Torvalds 已提交
899
	llgtr	%r2,%r2			# struct fadvise64_64_args *
900
	jg	sys32_fadvise64_64
L
Linus Torvalds 已提交
901

902
ENTRY(sys32_clock_settime_wrapper)
L
Linus Torvalds 已提交
903 904 905 906
	lgfr	%r2,%r2			# clockid_t (int)
	llgtr	%r3,%r3			# struct compat_timespec *
	jg	compat_sys_clock_settime

907
ENTRY(sys32_clock_gettime_wrapper)
L
Linus Torvalds 已提交
908 909 910 911
	lgfr	%r2,%r2			# clockid_t (int)
	llgtr	%r3,%r3			# struct compat_timespec *
	jg	compat_sys_clock_gettime

912
ENTRY(sys32_clock_getres_wrapper)
L
Linus Torvalds 已提交
913 914 915 916
	lgfr	%r2,%r2			# clockid_t (int)
	llgtr	%r3,%r3			# struct compat_timespec *
	jg	compat_sys_clock_getres

917
ENTRY(sys32_clock_nanosleep_wrapper)
L
Linus Torvalds 已提交
918 919 920 921 922 923
	lgfr	%r2,%r2			# clockid_t (int)
	lgfr	%r3,%r3			# int
	llgtr	%r4,%r4			# struct compat_timespec *
	llgtr	%r5,%r5			# struct compat_timespec *
	jg	compat_sys_clock_nanosleep

924
ENTRY(sys32_timer_create_wrapper)
L
Linus Torvalds 已提交
925 926 927
	lgfr	%r2,%r2			# timer_t (int)
	llgtr	%r3,%r3			# struct compat_sigevent *
	llgtr	%r4,%r4			# timer_t *
928
	jg	compat_sys_timer_create
L
Linus Torvalds 已提交
929

930
ENTRY(sys32_timer_settime_wrapper)
L
Linus Torvalds 已提交
931 932 933 934 935 936
	lgfr	%r2,%r2			# timer_t (int)
	lgfr	%r3,%r3			# int
	llgtr	%r4,%r4			# struct compat_itimerspec *
	llgtr	%r5,%r5			# struct compat_itimerspec *
	jg	compat_sys_timer_settime

937
ENTRY(sys32_timer_gettime_wrapper)
L
Linus Torvalds 已提交
938 939 940 941
	lgfr	%r2,%r2			# timer_t (int)
	llgtr	%r3,%r3			# struct compat_itimerspec *
	jg	compat_sys_timer_gettime

942
ENTRY(sys32_timer_getoverrun_wrapper)
L
Linus Torvalds 已提交
943 944 945
	lgfr	%r2,%r2			# timer_t (int)
	jg	sys_timer_getoverrun

946
ENTRY(sys32_timer_delete_wrapper)
L
Linus Torvalds 已提交
947 948 949
	lgfr	%r2,%r2			# timer_t (int)
	jg	sys_timer_delete

950
ENTRY(sys32_io_setup_wrapper)
L
Linus Torvalds 已提交
951 952 953 954
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# u32 *
	jg	compat_sys_io_setup

955
ENTRY(sys32_io_destroy_wrapper)
L
Linus Torvalds 已提交
956 957 958
	llgfr	%r2,%r2			# (aio_context_t) u32
	jg	sys_io_destroy

959
ENTRY(sys32_io_getevents_wrapper)
L
Linus Torvalds 已提交
960 961 962 963 964 965 966
	llgfr	%r2,%r2			# (aio_context_t) u32
	lgfr	%r3,%r3			# long
	lgfr	%r4,%r4			# long
	llgtr	%r5,%r5			# struct io_event *
	llgtr	%r6,%r6			# struct compat_timespec *
	jg	compat_sys_io_getevents

967
ENTRY(sys32_io_submit_wrapper)
L
Linus Torvalds 已提交
968 969 970 971 972
	llgfr	%r2,%r2			# (aio_context_t) u32
	lgfr	%r3,%r3			# long
	llgtr	%r4,%r4			# struct iocb **
	jg	compat_sys_io_submit

973
ENTRY(sys32_io_cancel_wrapper)
L
Linus Torvalds 已提交
974 975 976 977 978
	llgfr	%r2,%r2			# (aio_context_t) u32
	llgtr	%r3,%r3			# struct iocb *
	llgtr	%r4,%r4			# struct io_event *
	jg	sys_io_cancel

979
ENTRY(compat_sys_statfs64_wrapper)
L
Linus Torvalds 已提交
980 981 982 983 984
	llgtr	%r2,%r2			# const char *
	llgfr	%r3,%r3			# compat_size_t
	llgtr	%r4,%r4			# struct compat_statfs64 *
	jg	compat_sys_statfs64

985
ENTRY(compat_sys_fstatfs64_wrapper)
L
Linus Torvalds 已提交
986 987 988 989 990
	llgfr	%r2,%r2			# unsigned int fd
	llgfr	%r3,%r3			# compat_size_t
	llgtr	%r4,%r4			# struct compat_statfs64 *
	jg	compat_sys_fstatfs64

991
ENTRY(compat_sys_mq_open_wrapper)
L
Linus Torvalds 已提交
992 993 994 995 996 997
	llgtr	%r2,%r2			# const char *
	lgfr	%r3,%r3			# int
	llgfr	%r4,%r4			# mode_t
	llgtr	%r5,%r5			# struct compat_mq_attr *
	jg	compat_sys_mq_open

998
ENTRY(sys32_mq_unlink_wrapper)
L
Linus Torvalds 已提交
999 1000 1001
	llgtr	%r2,%r2			# const char *
	jg	sys_mq_unlink

1002
ENTRY(compat_sys_mq_timedsend_wrapper)
L
Linus Torvalds 已提交
1003 1004 1005 1006 1007 1008 1009
	lgfr	%r2,%r2			# mqd_t
	llgtr	%r3,%r3			# const char *
	llgfr	%r4,%r4			# size_t
	llgfr	%r5,%r5			# unsigned int
	llgtr	%r6,%r6			# const struct compat_timespec *
	jg	compat_sys_mq_timedsend

1010
ENTRY(compat_sys_mq_timedreceive_wrapper)
L
Linus Torvalds 已提交
1011 1012 1013 1014 1015 1016 1017
	lgfr	%r2,%r2			# mqd_t
	llgtr	%r3,%r3			# char *
	llgfr	%r4,%r4			# size_t
	llgtr	%r5,%r5			# unsigned int *
	llgtr	%r6,%r6			# const struct compat_timespec *
	jg	compat_sys_mq_timedreceive

1018
ENTRY(compat_sys_mq_notify_wrapper)
L
Linus Torvalds 已提交
1019 1020 1021 1022
	lgfr	%r2,%r2			# mqd_t
	llgtr	%r3,%r3			# struct compat_sigevent *
	jg	compat_sys_mq_notify

1023
ENTRY(compat_sys_mq_getsetattr_wrapper)
L
Linus Torvalds 已提交
1024 1025 1026 1027 1028
	lgfr	%r2,%r2			# mqd_t
	llgtr	%r3,%r3			# struct compat_mq_attr *
	llgtr	%r4,%r4			# struct compat_mq_attr *
	jg	compat_sys_mq_getsetattr

1029
ENTRY(compat_sys_add_key_wrapper)
L
Linus Torvalds 已提交
1030 1031 1032 1033 1034 1035 1036
	llgtr	%r2,%r2			# const char *
	llgtr	%r3,%r3			# const char *
	llgtr	%r4,%r4			# const void *
	llgfr	%r5,%r5			# size_t
	llgfr	%r6,%r6			# (key_serial_t) u32
	jg	sys_add_key

1037
ENTRY(compat_sys_request_key_wrapper)
L
Linus Torvalds 已提交
1038 1039 1040 1041 1042 1043
	llgtr	%r2,%r2			# const char *
	llgtr	%r3,%r3			# const char *
	llgtr	%r4,%r4			# const void *
	llgfr	%r5,%r5			# (key_serial_t) u32
	jg	sys_request_key

1044
ENTRY(sys32_remap_file_pages_wrapper)
L
Linus Torvalds 已提交
1045 1046 1047 1048 1049 1050 1051
	llgfr	%r2,%r2			# unsigned long
	llgfr	%r3,%r3			# unsigned long
	llgfr	%r4,%r4			# unsigned long
	llgfr	%r5,%r5			# unsigned long
	llgfr	%r6,%r6			# unsigned long
	jg	sys_remap_file_pages

1052
ENTRY(compat_sys_kexec_load_wrapper)
H
Heiko Carstens 已提交
1053 1054 1055 1056 1057
	llgfr	%r2,%r2			# unsigned long
	llgfr	%r3,%r3			# unsigned long
	llgtr	%r4,%r4			# struct kexec_segment *
	llgfr	%r5,%r5			# unsigned long
	jg	compat_sys_kexec_load
1058

1059
ENTRY(sys_ioprio_set_wrapper)
1060 1061 1062 1063 1064
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	lgfr	%r4,%r4			# int
	jg	sys_ioprio_set

1065
ENTRY(sys_ioprio_get_wrapper)
1066 1067 1068 1069
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	jg	sys_ioprio_get

1070
ENTRY(sys_inotify_add_watch_wrapper)
1071 1072 1073 1074 1075
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char *
	llgfr	%r4,%r4			# u32
	jg	sys_inotify_add_watch

1076
ENTRY(sys_inotify_rm_watch_wrapper)
1077 1078 1079
	lgfr	%r2,%r2			# int
	llgfr	%r3,%r3			# u32
	jg	sys_inotify_rm_watch
1080

1081
ENTRY(sys_mkdirat_wrapper)
1082 1083 1084 1085 1086
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char *
	lgfr	%r4,%r4			# int
	jg	sys_mkdirat

1087
ENTRY(sys_mknodat_wrapper)
1088 1089 1090 1091 1092 1093
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char *
	lgfr	%r4,%r4			# int
	llgfr	%r5,%r5			# unsigned int
	jg	sys_mknodat

1094
ENTRY(sys_fchownat_wrapper)
1095 1096 1097 1098 1099 1100 1101
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char *
	llgfr	%r4,%r4			# uid_t
	llgfr	%r5,%r5			# gid_t
	lgfr	%r6,%r6			# int
	jg	sys_fchownat

1102
ENTRY(compat_sys_futimesat_wrapper)
1103
	llgfr	%r2,%r2			# unsigned int
1104 1105 1106 1107
	llgtr	%r3,%r3			# char *
	llgtr	%r4,%r4			# struct timeval *
	jg	compat_sys_futimesat

1108
ENTRY(sys32_fstatat64_wrapper)
1109
	llgfr	%r2,%r2			# unsigned int
1110
	llgtr	%r3,%r3			# char *
H
Heiko Carstens 已提交
1111
	llgtr	%r4,%r4			# struct stat64 *
1112
	lgfr	%r5,%r5			# int
1113
	jg	sys32_fstatat64
1114

1115
ENTRY(sys_unlinkat_wrapper)
1116 1117 1118 1119 1120
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char *
	lgfr	%r4,%r4			# int
	jg	sys_unlinkat

1121
ENTRY(sys_renameat_wrapper)
1122 1123 1124 1125 1126 1127
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char *
	lgfr	%r4,%r4			# int
	llgtr	%r5,%r5			# const char *
	jg	sys_renameat

1128
ENTRY(sys_linkat_wrapper)
1129 1130 1131 1132
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char *
	lgfr	%r4,%r4			# int
	llgtr	%r5,%r5			# const char *
1133
	lgfr	%r6,%r6			# int
1134 1135
	jg	sys_linkat

1136
ENTRY(sys_symlinkat_wrapper)
1137 1138 1139 1140 1141
	llgtr	%r2,%r2			# const char *
	lgfr	%r3,%r3			# int
	llgtr	%r4,%r4			# const char *
	jg	sys_symlinkat

1142
ENTRY(sys_readlinkat_wrapper)
1143 1144 1145 1146 1147 1148
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char *
	llgtr	%r4,%r4			# char *
	lgfr	%r5,%r5			# int
	jg	sys_readlinkat

1149
ENTRY(sys_fchmodat_wrapper)
1150 1151 1152 1153 1154
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char *
	llgfr	%r4,%r4			# mode_t
	jg	sys_fchmodat

1155
ENTRY(sys_faccessat_wrapper)
1156 1157 1158 1159 1160
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char *
	lgfr	%r4,%r4			# int
	jg	sys_faccessat

1161
ENTRY(compat_sys_pselect6_wrapper)
1162 1163 1164 1165 1166 1167 1168 1169 1170
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# fd_set *
	llgtr	%r4,%r4			# fd_set *
	llgtr	%r5,%r5			# fd_set *
	llgtr	%r6,%r6			# struct timespec *
	llgt	%r0,164(%r15)		# void *
	stg	%r0,160(%r15)
	jg	compat_sys_pselect6

1171
ENTRY(compat_sys_ppoll_wrapper)
1172 1173 1174 1175 1176 1177
	llgtr	%r2,%r2			# struct pollfd *
	llgfr	%r3,%r3			# unsigned int
	llgtr	%r4,%r4			# struct timespec *
	llgtr	%r5,%r5			# const sigset_t *
	llgfr	%r6,%r6			# size_t
	jg	compat_sys_ppoll
1178

1179
ENTRY(sys_unshare_wrapper)
1180 1181
	llgfr	%r2,%r2			# unsigned long
	jg	sys_unshare
1182

1183
ENTRY(sys_splice_wrapper)
1184 1185 1186 1187 1188 1189 1190 1191 1192
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# loff_t *
	lgfr	%r4,%r4			# int
	llgtr	%r5,%r5			# loff_t *
	llgfr	%r6,%r6			# size_t
	llgf	%r0,164(%r15)		# unsigned int
	stg	%r0,160(%r15)
	jg	sys_splice

1193
ENTRY(sys_sync_file_range_wrapper)
1194 1195 1196 1197 1198 1199 1200 1201
	lgfr	%r2,%r2			# int
	sllg	%r3,%r3,32		# get high word of 64bit loff_t
	or	%r3,%r4			# get low word of 64bit loff_t
	sllg	%r4,%r5,32		# get high word of 64bit loff_t
	or	%r4,%r6			# get low word of 64bit loff_t
	llgf	%r5,164(%r15)		# unsigned int
	jg	sys_sync_file_range

1202
ENTRY(sys_tee_wrapper)
1203 1204 1205 1206 1207
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	llgfr	%r4,%r4			# size_t
	llgfr	%r5,%r5			# unsigned int
	jg	sys_tee
1208

1209
ENTRY(sys_getcpu_wrapper)
1210 1211 1212
	llgtr	%r2,%r2			# unsigned *
	llgtr	%r3,%r3			# unsigned *
	llgtr	%r4,%r4			# struct getcpu_cache *
P
Paul Mundt 已提交
1213
	jg	sys_getcpu
1214

1215
ENTRY(compat_sys_utimes_wrapper)
H
Heiko Carstens 已提交
1216 1217 1218
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# struct compat_timeval *
	jg	compat_sys_utimes
H
Heiko Carstens 已提交
1219

1220
ENTRY(compat_sys_utimensat_wrapper)
H
Heiko Carstens 已提交
1221 1222 1223 1224 1225
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# char *
	llgtr	%r4,%r4			# struct compat_timespec *
	lgfr	%r5,%r5			# int
	jg	compat_sys_utimensat
1226

1227
ENTRY(sys_eventfd_wrapper)
1228 1229
	llgfr	%r2,%r2			# unsigned int
	jg	sys_eventfd
1230

1231
ENTRY(sys_fallocate_wrapper)
1232 1233 1234 1235 1236 1237 1238
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	sllg	%r4,%r4,32		# get high word of 64bit loff_t
	lr	%r4,%r5			# get low word of 64bit loff_t
	sllg	%r5,%r6,32		# get high word of 64bit loff_t
	l	%r5,164(%r15)		# get low word of 64bit loff_t
	jg	sys_fallocate
1239

1240
ENTRY(sys_timerfd_create_wrapper)
1241 1242 1243 1244
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	jg	sys_timerfd_create

1245
ENTRY(sys_eventfd2_wrapper)
H
Heiko Carstens 已提交
1246 1247 1248 1249
	llgfr	%r2,%r2			# unsigned int
	lgfr	%r3,%r3			# int
	jg	sys_eventfd2

1250
ENTRY(sys_inotify_init1_wrapper)
H
Heiko Carstens 已提交
1251 1252 1253
	lgfr	%r2,%r2			# int
	jg	sys_inotify_init1

1254
ENTRY(sys_pipe2_wrapper)
H
Heiko Carstens 已提交
1255 1256 1257 1258
	llgtr	%r2,%r2			# u32 *
	lgfr	%r3,%r3			# int
	jg	sys_pipe2		# branch to system call

1259
ENTRY(sys_dup3_wrapper)
H
Heiko Carstens 已提交
1260 1261 1262 1263 1264
	llgfr	%r2,%r2			# unsigned int
	llgfr	%r3,%r3			# unsigned int
	lgfr	%r4,%r4			# int
	jg	sys_dup3		# branch to system call

1265
ENTRY(sys_epoll_create1_wrapper)
H
Heiko Carstens 已提交
1266 1267
	lgfr	%r2,%r2			# int
	jg	sys_epoll_create1	# branch to system call
1268

1269
ENTRY(sys32_readahead_wrapper)
1270 1271 1272 1273 1274 1275
	lgfr	%r2,%r2			# int
	llgfr	%r3,%r3			# u32
	llgfr	%r4,%r4			# u32
	lgfr	%r5,%r5			# s32
	jg	sys32_readahead		# branch to system call

1276
ENTRY(sys_tkill_wrapper)
1277 1278 1279 1280
	lgfr	%r2,%r2			# pid_t
	lgfr	%r3,%r3			# int
	jg	sys_tkill		# branch to system call

1281
ENTRY(sys_tgkill_wrapper)
1282 1283 1284 1285 1286
	lgfr	%r2,%r2			# pid_t
	lgfr	%r3,%r3			# pid_t
	lgfr	%r4,%r4			# int
	jg	sys_tgkill		# branch to system call

1287
ENTRY(compat_sys_keyctl_wrapper)
1288 1289 1290 1291 1292 1293
	llgfr	%r2,%r2			# u32
	llgfr	%r3,%r3			# u32
	llgfr	%r4,%r4			# u32
	llgfr	%r5,%r5			# u32
	llgfr	%r6,%r6			# u32
	jg	compat_sys_keyctl	# branch to system call
1294

1295
ENTRY(sys_perf_event_open_wrapper)
1296
	llgtr	%r2,%r2			# const struct perf_event_attr *
1297 1298 1299 1300
	lgfr	%r3,%r3			# pid_t
	lgfr	%r4,%r4			# int
	lgfr	%r5,%r5			# int
	llgfr	%r6,%r6			# unsigned long
1301
	jg	sys_perf_event_open	# branch to system call
1302

1303
ENTRY(sys_clone_wrapper)
1304 1305 1306 1307 1308
	llgfr	%r2,%r2			# unsigned long
	llgfr	%r3,%r3			# unsigned long
	llgtr	%r4,%r4			# int *
	llgtr	%r5,%r5			# int *
	jg	sys_clone		# branch to system call
1309

1310
ENTRY(sys32_execve_wrapper)
1311 1312 1313
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# compat_uptr_t *
	llgtr	%r4,%r4			# compat_uptr_t *
1314
	jg	compat_sys_execve	# branch to system call
1315

1316
ENTRY(sys_fanotify_init_wrapper)
1317 1318 1319 1320
	llgfr	%r2,%r2			# unsigned int
	llgfr	%r3,%r3			# unsigned int
	jg	sys_fanotify_init	# branch to system call

1321
ENTRY(sys_prlimit64_wrapper)
1322 1323 1324 1325 1326
	lgfr	%r2,%r2			# pid_t
	llgfr	%r3,%r3			# unsigned int
	llgtr	%r4,%r4			# const struct rlimit64 __user *
	llgtr	%r5,%r5			# struct rlimit64 __user *
	jg	sys_prlimit64		# branch to system call
1327

1328
ENTRY(sys_name_to_handle_at_wrapper)
1329 1330 1331 1332 1333 1334
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char __user *
	llgtr	%r4,%r4			# struct file_handle __user *
	llgtr	%r5,%r5			# int __user *
	lgfr	%r6,%r6			# int
	jg	sys_name_to_handle_at
1335

1336
ENTRY(compat_sys_clock_adjtime_wrapper)
1337 1338 1339
	lgfr	%r2,%r2			# clockid_t (int)
	llgtr	%r3,%r3			# struct compat_timex __user *
	jg	compat_sys_clock_adjtime
H
Heiko Carstens 已提交
1340

1341
ENTRY(sys_syncfs_wrapper)
H
Heiko Carstens 已提交
1342 1343
	lgfr	%r2,%r2			# int
	jg	sys_syncfs
1344

1345
ENTRY(sys_setns_wrapper)
1346 1347 1348
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	jg	sys_setns
1349 1350 1351 1352 1353 1354 1355 1356 1357

ENTRY(compat_sys_process_vm_readv_wrapper)
	lgfr	%r2,%r2			# compat_pid_t
	llgtr	%r3,%r3			# struct compat_iovec __user *
	llgfr	%r4,%r4			# unsigned long
	llgtr	%r5,%r5			# struct compat_iovec __user *
	llgfr	%r6,%r6			# unsigned long
	llgf	%r0,164(%r15)		# unsigned long
	stg	%r0,160(%r15)
1358
	jg	compat_sys_process_vm_readv
1359 1360 1361 1362 1363 1364 1365 1366 1367

ENTRY(compat_sys_process_vm_writev_wrapper)
	lgfr	%r2,%r2			# compat_pid_t
	llgtr	%r3,%r3			# struct compat_iovec __user *
	llgfr	%r4,%r4			# unsigned long
	llgtr	%r5,%r5			# struct compat_iovec __user *
	llgfr	%r6,%r6			# unsigned long
	llgf	%r0,164(%r15)		# unsigned long
	stg	%r0,160(%r15)
1368
	jg	compat_sys_process_vm_writev
1369 1370 1371 1372 1373

ENTRY(sys_s390_runtime_instr_wrapper)
	lgfr	%r2,%r2			# int
	lgfr	%r3,%r3			# int
	jg	sys_s390_runtime_instr
1374 1375 1376 1377 1378 1379 1380 1381

ENTRY(sys_kcmp_wrapper)
	lgfr	%r2,%r2			# pid_t
	lgfr	%r3,%r3			# pid_t
	lgfr	%r4,%r4			# int
	llgfr	%r5,%r5			# unsigned long
	llgfr	%r6,%r6			# unsigned long
	jg	sys_kcmp
1382 1383 1384 1385 1386 1387

ENTRY(sys_finit_module_wrapper)
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char __user *
	lgfr	%r4,%r4			# int
	jg	sys_finit_module
1388 1389 1390 1391 1392 1393 1394 1395 1396

ENTRY(sys_sched_setattr_wrapper)
	lgfr	%r2,%r2			# pid_t
	llgtr	%r3,%r3			# struct sched_attr __user *
	jg	sys_sched_setattr

ENTRY(sys_sched_getattr_wrapper)
	lgfr	%r2,%r2			# pid_t
	llgtr	%r3,%r3			# const char __user *
1397
	llgfr	%r4,%r4			# unsigned int
1398
	jg	sys_sched_getattr