compat_wrapper.S 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477
  1. /*
  2. * arch/s390/kernel/sys_wrapper31.S
  3. * wrapper for 31 bit compatible system calls.
  4. *
  5. * S390 version
  6. * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
  7. * Author(s): Gerhard Tonn (ton@de.ibm.com),
  8. * Thomas Spatzier (tspat@de.ibm.com)
  9. */
  10. .globl sys32_exit_wrapper
  11. sys32_exit_wrapper:
  12. lgfr %r2,%r2 # int
  13. jg sys_exit # branch to sys_exit
  14. .globl sys32_read_wrapper
  15. sys32_read_wrapper:
  16. llgfr %r2,%r2 # unsigned int
  17. llgtr %r3,%r3 # char *
  18. llgfr %r4,%r4 # size_t
  19. jg sys32_read # branch to sys_read
  20. .globl sys32_write_wrapper
  21. sys32_write_wrapper:
  22. llgfr %r2,%r2 # unsigned int
  23. llgtr %r3,%r3 # const char *
  24. llgfr %r4,%r4 # size_t
  25. jg sys32_write # branch to system call
  26. .globl sys32_open_wrapper
  27. sys32_open_wrapper:
  28. llgtr %r2,%r2 # const char *
  29. lgfr %r3,%r3 # int
  30. lgfr %r4,%r4 # int
  31. jg sys_open # branch to system call
  32. .globl sys32_close_wrapper
  33. sys32_close_wrapper:
  34. llgfr %r2,%r2 # unsigned int
  35. jg sys_close # branch to system call
  36. .globl sys32_creat_wrapper
  37. sys32_creat_wrapper:
  38. llgtr %r2,%r2 # const char *
  39. lgfr %r3,%r3 # int
  40. jg sys_creat # branch to system call
  41. .globl sys32_link_wrapper
  42. sys32_link_wrapper:
  43. llgtr %r2,%r2 # const char *
  44. llgtr %r3,%r3 # const char *
  45. jg sys_link # branch to system call
  46. .globl sys32_unlink_wrapper
  47. sys32_unlink_wrapper:
  48. llgtr %r2,%r2 # const char *
  49. jg sys_unlink # branch to system call
  50. .globl sys32_chdir_wrapper
  51. sys32_chdir_wrapper:
  52. llgtr %r2,%r2 # const char *
  53. jg sys_chdir # branch to system call
  54. .globl sys32_time_wrapper
  55. sys32_time_wrapper:
  56. llgtr %r2,%r2 # int *
  57. jg compat_sys_time # branch to system call
  58. .globl sys32_mknod_wrapper
  59. sys32_mknod_wrapper:
  60. llgtr %r2,%r2 # const char *
  61. lgfr %r3,%r3 # int
  62. llgfr %r4,%r4 # dev
  63. jg sys_mknod # branch to system call
  64. .globl sys32_chmod_wrapper
  65. sys32_chmod_wrapper:
  66. llgtr %r2,%r2 # const char *
  67. llgfr %r3,%r3 # mode_t
  68. jg sys_chmod # branch to system call
  69. .globl sys32_lchown16_wrapper
  70. sys32_lchown16_wrapper:
  71. llgtr %r2,%r2 # const char *
  72. llgfr %r3,%r3 # __kernel_old_uid_emu31_t
  73. llgfr %r4,%r4 # __kernel_old_uid_emu31_t
  74. jg sys32_lchown16 # branch to system call
  75. .globl sys32_lseek_wrapper
  76. sys32_lseek_wrapper:
  77. llgfr %r2,%r2 # unsigned int
  78. lgfr %r3,%r3 # off_t
  79. llgfr %r4,%r4 # unsigned int
  80. jg sys_lseek # branch to system call
  81. #sys32_getpid_wrapper # void
  82. .globl sys32_mount_wrapper
  83. sys32_mount_wrapper:
  84. llgtr %r2,%r2 # char *
  85. llgtr %r3,%r3 # char *
  86. llgtr %r4,%r4 # char *
  87. llgfr %r5,%r5 # unsigned long
  88. llgtr %r6,%r6 # void *
  89. jg compat_sys_mount # branch to system call
  90. .globl sys32_oldumount_wrapper
  91. sys32_oldumount_wrapper:
  92. llgtr %r2,%r2 # char *
  93. jg sys_oldumount # branch to system call
  94. .globl sys32_setuid16_wrapper
  95. sys32_setuid16_wrapper:
  96. llgfr %r2,%r2 # __kernel_old_uid_emu31_t
  97. jg sys32_setuid16 # branch to system call
  98. #sys32_getuid16_wrapper # void
  99. .globl sys32_ptrace_wrapper
  100. sys32_ptrace_wrapper:
  101. lgfr %r2,%r2 # long
  102. lgfr %r3,%r3 # long
  103. llgtr %r4,%r4 # long
  104. llgfr %r5,%r5 # long
  105. jg sys_ptrace # branch to system call
  106. .globl sys32_alarm_wrapper
  107. sys32_alarm_wrapper:
  108. llgfr %r2,%r2 # unsigned int
  109. jg sys_alarm # branch to system call
  110. #sys32_pause_wrapper # void
  111. .globl compat_sys_utime_wrapper
  112. compat_sys_utime_wrapper:
  113. llgtr %r2,%r2 # char *
  114. llgtr %r3,%r3 # struct compat_utimbuf *
  115. jg compat_sys_utime # branch to system call
  116. .globl sys32_access_wrapper
  117. sys32_access_wrapper:
  118. llgtr %r2,%r2 # const char *
  119. lgfr %r3,%r3 # int
  120. jg sys_access # branch to system call
  121. .globl sys32_nice_wrapper
  122. sys32_nice_wrapper:
  123. lgfr %r2,%r2 # int
  124. jg sys_nice # branch to system call
  125. #sys32_sync_wrapper # void
  126. .globl sys32_kill_wrapper
  127. sys32_kill_wrapper:
  128. lgfr %r2,%r2 # int
  129. lgfr %r3,%r3 # int
  130. jg sys_kill # branch to system call
  131. .globl sys32_rename_wrapper
  132. sys32_rename_wrapper:
  133. llgtr %r2,%r2 # const char *
  134. llgtr %r3,%r3 # const char *
  135. jg sys_rename # branch to system call
  136. .globl sys32_mkdir_wrapper
  137. sys32_mkdir_wrapper:
  138. llgtr %r2,%r2 # const char *
  139. lgfr %r3,%r3 # int
  140. jg sys_mkdir # branch to system call
  141. .globl sys32_rmdir_wrapper
  142. sys32_rmdir_wrapper:
  143. llgtr %r2,%r2 # const char *
  144. jg sys_rmdir # branch to system call
  145. .globl sys32_dup_wrapper
  146. sys32_dup_wrapper:
  147. llgfr %r2,%r2 # unsigned int
  148. jg sys_dup # branch to system call
  149. .globl sys32_pipe_wrapper
  150. sys32_pipe_wrapper:
  151. llgtr %r2,%r2 # u32 *
  152. jg sys_pipe # branch to system call
  153. .globl compat_sys_times_wrapper
  154. compat_sys_times_wrapper:
  155. llgtr %r2,%r2 # struct compat_tms *
  156. jg compat_sys_times # branch to system call
  157. .globl sys32_brk_wrapper
  158. sys32_brk_wrapper:
  159. llgtr %r2,%r2 # unsigned long
  160. jg sys_brk # branch to system call
  161. .globl sys32_setgid16_wrapper
  162. sys32_setgid16_wrapper:
  163. llgfr %r2,%r2 # __kernel_old_gid_emu31_t
  164. jg sys32_setgid16 # branch to system call
  165. #sys32_getgid16_wrapper # void
  166. .globl sys32_signal_wrapper
  167. sys32_signal_wrapper:
  168. lgfr %r2,%r2 # int
  169. llgtr %r3,%r3 # __sighandler_t
  170. jg sys_signal
  171. #sys32_geteuid16_wrapper # void
  172. #sys32_getegid16_wrapper # void
  173. .globl sys32_acct_wrapper
  174. sys32_acct_wrapper:
  175. llgtr %r2,%r2 # char *
  176. jg sys_acct # branch to system call
  177. .globl sys32_umount_wrapper
  178. sys32_umount_wrapper:
  179. llgtr %r2,%r2 # char *
  180. lgfr %r3,%r3 # int
  181. jg sys_umount # branch to system call
  182. .globl compat_sys_ioctl_wrapper
  183. compat_sys_ioctl_wrapper:
  184. llgfr %r2,%r2 # unsigned int
  185. llgfr %r3,%r3 # unsigned int
  186. llgfr %r4,%r4 # unsigned int
  187. jg compat_sys_ioctl # branch to system call
  188. .globl compat_sys_fcntl_wrapper
  189. compat_sys_fcntl_wrapper:
  190. llgfr %r2,%r2 # unsigned int
  191. llgfr %r3,%r3 # unsigned int
  192. llgfr %r4,%r4 # unsigned long
  193. jg compat_sys_fcntl # branch to system call
  194. .globl sys32_setpgid_wrapper
  195. sys32_setpgid_wrapper:
  196. lgfr %r2,%r2 # pid_t
  197. lgfr %r3,%r3 # pid_t
  198. jg sys_setpgid # branch to system call
  199. .globl sys32_umask_wrapper
  200. sys32_umask_wrapper:
  201. lgfr %r2,%r2 # int
  202. jg sys_umask # branch to system call
  203. .globl sys32_chroot_wrapper
  204. sys32_chroot_wrapper:
  205. llgtr %r2,%r2 # char *
  206. jg sys_chroot # branch to system call
  207. .globl sys32_ustat_wrapper
  208. sys32_ustat_wrapper:
  209. llgfr %r2,%r2 # dev_t
  210. llgtr %r3,%r3 # struct ustat *
  211. jg sys_ustat
  212. .globl sys32_dup2_wrapper
  213. sys32_dup2_wrapper:
  214. llgfr %r2,%r2 # unsigned int
  215. llgfr %r3,%r3 # unsigned int
  216. jg sys_dup2 # branch to system call
  217. #sys32_getppid_wrapper # void
  218. #sys32_getpgrp_wrapper # void
  219. #sys32_setsid_wrapper # void
  220. .globl sys32_sigaction_wrapper
  221. sys32_sigaction_wrapper:
  222. lgfr %r2,%r2 # int
  223. llgtr %r3,%r3 # const struct old_sigaction *
  224. llgtr %r4,%r4 # struct old_sigaction32 *
  225. jg sys32_sigaction # branch to system call
  226. .globl sys32_setreuid16_wrapper
  227. sys32_setreuid16_wrapper:
  228. llgfr %r2,%r2 # __kernel_old_uid_emu31_t
  229. llgfr %r3,%r3 # __kernel_old_uid_emu31_t
  230. jg sys32_setreuid16 # branch to system call
  231. .globl sys32_setregid16_wrapper
  232. sys32_setregid16_wrapper:
  233. llgfr %r2,%r2 # __kernel_old_gid_emu31_t
  234. llgfr %r3,%r3 # __kernel_old_gid_emu31_t
  235. jg sys32_setregid16 # branch to system call
  236. #sys32_sigsuspend_wrapper # done in sigsuspend_glue
  237. .globl compat_sys_sigpending_wrapper
  238. compat_sys_sigpending_wrapper:
  239. llgtr %r2,%r2 # compat_old_sigset_t *
  240. jg compat_sys_sigpending # branch to system call
  241. .globl sys32_sethostname_wrapper
  242. sys32_sethostname_wrapper:
  243. llgtr %r2,%r2 # char *
  244. lgfr %r3,%r3 # int
  245. jg sys_sethostname # branch to system call
  246. .globl compat_sys_setrlimit_wrapper
  247. compat_sys_setrlimit_wrapper:
  248. llgfr %r2,%r2 # unsigned int
  249. llgtr %r3,%r3 # struct rlimit_emu31 *
  250. jg compat_sys_setrlimit # branch to system call
  251. .globl compat_sys_old_getrlimit_wrapper
  252. compat_sys_old_getrlimit_wrapper:
  253. llgfr %r2,%r2 # unsigned int
  254. llgtr %r3,%r3 # struct rlimit_emu31 *
  255. jg compat_sys_old_getrlimit # branch to system call
  256. .globl compat_sys_getrlimit_wrapper
  257. compat_sys_getrlimit_wrapper:
  258. llgfr %r2,%r2 # unsigned int
  259. llgtr %r3,%r3 # struct rlimit_emu31 *
  260. jg compat_sys_getrlimit # branch to system call
  261. .globl sys32_mmap2_wrapper
  262. sys32_mmap2_wrapper:
  263. llgtr %r2,%r2 # struct mmap_arg_struct_emu31 *
  264. jg sys32_mmap2 # branch to system call
  265. .globl compat_sys_getrusage_wrapper
  266. compat_sys_getrusage_wrapper:
  267. lgfr %r2,%r2 # int
  268. llgtr %r3,%r3 # struct rusage_emu31 *
  269. jg compat_sys_getrusage # branch to system call
  270. .globl sys32_gettimeofday_wrapper
  271. sys32_gettimeofday_wrapper:
  272. llgtr %r2,%r2 # struct timeval_emu31 *
  273. llgtr %r3,%r3 # struct timezone *
  274. jg sys32_gettimeofday # branch to system call
  275. .globl sys32_settimeofday_wrapper
  276. sys32_settimeofday_wrapper:
  277. llgtr %r2,%r2 # struct timeval_emu31 *
  278. llgtr %r3,%r3 # struct timezone *
  279. jg sys32_settimeofday # branch to system call
  280. .globl sys32_getgroups16_wrapper
  281. sys32_getgroups16_wrapper:
  282. lgfr %r2,%r2 # int
  283. llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
  284. jg sys32_getgroups16 # branch to system call
  285. .globl sys32_setgroups16_wrapper
  286. sys32_setgroups16_wrapper:
  287. lgfr %r2,%r2 # int
  288. llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
  289. jg sys32_setgroups16 # branch to system call
  290. .globl sys32_symlink_wrapper
  291. sys32_symlink_wrapper:
  292. llgtr %r2,%r2 # const char *
  293. llgtr %r3,%r3 # const char *
  294. jg sys_symlink # branch to system call
  295. .globl sys32_readlink_wrapper
  296. sys32_readlink_wrapper:
  297. llgtr %r2,%r2 # const char *
  298. llgtr %r3,%r3 # char *
  299. lgfr %r4,%r4 # int
  300. jg sys_readlink # branch to system call
  301. .globl sys32_uselib_wrapper
  302. sys32_uselib_wrapper:
  303. llgtr %r2,%r2 # const char *
  304. jg sys_uselib # branch to system call
  305. .globl sys32_swapon_wrapper
  306. sys32_swapon_wrapper:
  307. llgtr %r2,%r2 # const char *
  308. lgfr %r3,%r3 # int
  309. jg sys_swapon # branch to system call
  310. .globl sys32_reboot_wrapper
  311. sys32_reboot_wrapper:
  312. lgfr %r2,%r2 # int
  313. lgfr %r3,%r3 # int
  314. llgfr %r4,%r4 # unsigned int
  315. llgtr %r5,%r5 # void *
  316. jg sys_reboot # branch to system call
  317. .globl old32_readdir_wrapper
  318. old32_readdir_wrapper:
  319. llgfr %r2,%r2 # unsigned int
  320. llgtr %r3,%r3 # void *
  321. llgfr %r4,%r4 # unsigned int
  322. jg compat_sys_old_readdir # branch to system call
  323. .globl old32_mmap_wrapper
  324. old32_mmap_wrapper:
  325. llgtr %r2,%r2 # struct mmap_arg_struct_emu31 *
  326. jg old32_mmap # branch to system call
  327. .globl sys32_munmap_wrapper
  328. sys32_munmap_wrapper:
  329. llgfr %r2,%r2 # unsigned long
  330. llgfr %r3,%r3 # size_t
  331. jg sys_munmap # branch to system call
  332. .globl sys32_truncate_wrapper
  333. sys32_truncate_wrapper:
  334. llgtr %r2,%r2 # const char *
  335. llgfr %r3,%r3 # unsigned long
  336. jg sys_truncate # branch to system call
  337. .globl sys32_ftruncate_wrapper
  338. sys32_ftruncate_wrapper:
  339. llgfr %r2,%r2 # unsigned int
  340. llgfr %r3,%r3 # unsigned long
  341. jg sys_ftruncate # branch to system call
  342. .globl sys32_fchmod_wrapper
  343. sys32_fchmod_wrapper:
  344. llgfr %r2,%r2 # unsigned int
  345. llgfr %r3,%r3 # mode_t
  346. jg sys_fchmod # branch to system call
  347. .globl sys32_fchown16_wrapper
  348. sys32_fchown16_wrapper:
  349. llgfr %r2,%r2 # unsigned int
  350. llgfr %r3,%r3 # compat_uid_t
  351. llgfr %r4,%r4 # compat_uid_t
  352. jg sys32_fchown16 # branch to system call
  353. .globl sys32_getpriority_wrapper
  354. sys32_getpriority_wrapper:
  355. lgfr %r2,%r2 # int
  356. lgfr %r3,%r3 # int
  357. jg sys_getpriority # branch to system call
  358. .globl sys32_setpriority_wrapper
  359. sys32_setpriority_wrapper:
  360. lgfr %r2,%r2 # int
  361. lgfr %r3,%r3 # int
  362. lgfr %r4,%r4 # int
  363. jg sys_setpriority # branch to system call
  364. .globl compat_sys_statfs_wrapper
  365. compat_sys_statfs_wrapper:
  366. llgtr %r2,%r2 # char *
  367. llgtr %r3,%r3 # struct compat_statfs *
  368. jg compat_sys_statfs # branch to system call
  369. .globl compat_sys_fstatfs_wrapper
  370. compat_sys_fstatfs_wrapper:
  371. llgfr %r2,%r2 # unsigned int
  372. llgtr %r3,%r3 # struct compat_statfs *
  373. jg compat_sys_fstatfs # branch to system call
  374. .globl compat_sys_socketcall_wrapper
  375. compat_sys_socketcall_wrapper:
  376. lgfr %r2,%r2 # int
  377. llgtr %r3,%r3 # u32 *
  378. jg compat_sys_socketcall # branch to system call
  379. .globl sys32_syslog_wrapper
  380. sys32_syslog_wrapper:
  381. lgfr %r2,%r2 # int
  382. llgtr %r3,%r3 # char *
  383. lgfr %r4,%r4 # int
  384. jg sys_syslog # branch to system call
  385. .globl compat_sys_setitimer_wrapper
  386. compat_sys_setitimer_wrapper:
  387. lgfr %r2,%r2 # int
  388. llgtr %r3,%r3 # struct itimerval_emu31 *
  389. llgtr %r4,%r4 # struct itimerval_emu31 *
  390. jg compat_sys_setitimer # branch to system call
  391. .globl compat_sys_getitimer_wrapper
  392. compat_sys_getitimer_wrapper:
  393. lgfr %r2,%r2 # int
  394. llgtr %r3,%r3 # struct itimerval_emu31 *
  395. jg compat_sys_getitimer # branch to system call
  396. .globl compat_sys_newstat_wrapper
  397. compat_sys_newstat_wrapper:
  398. llgtr %r2,%r2 # char *
  399. llgtr %r3,%r3 # struct stat_emu31 *
  400. jg compat_sys_newstat # branch to system call
  401. .globl compat_sys_newlstat_wrapper
  402. compat_sys_newlstat_wrapper:
  403. llgtr %r2,%r2 # char *
  404. llgtr %r3,%r3 # struct stat_emu31 *
  405. jg compat_sys_newlstat # branch to system call
  406. .globl compat_sys_newfstat_wrapper
  407. compat_sys_newfstat_wrapper:
  408. llgfr %r2,%r2 # unsigned int
  409. llgtr %r3,%r3 # struct stat_emu31 *
  410. jg compat_sys_newfstat # branch to system call
  411. #sys32_vhangup_wrapper # void
  412. .globl compat_sys_wait4_wrapper
  413. compat_sys_wait4_wrapper:
  414. lgfr %r2,%r2 # pid_t
  415. llgtr %r3,%r3 # unsigned int *
  416. lgfr %r4,%r4 # int
  417. llgtr %r5,%r5 # struct rusage *
  418. jg compat_sys_wait4 # branch to system call
  419. .globl sys32_swapoff_wrapper
  420. sys32_swapoff_wrapper:
  421. llgtr %r2,%r2 # const char *
  422. jg sys_swapoff # branch to system call
  423. .globl sys32_sysinfo_wrapper
  424. sys32_sysinfo_wrapper:
  425. llgtr %r2,%r2 # struct sysinfo_emu31 *
  426. jg sys32_sysinfo # branch to system call
  427. .globl sys32_ipc_wrapper
  428. sys32_ipc_wrapper:
  429. llgfr %r2,%r2 # uint
  430. lgfr %r3,%r3 # int
  431. lgfr %r4,%r4 # int
  432. lgfr %r5,%r5 # int
  433. llgfr %r6,%r6 # u32
  434. jg sys32_ipc # branch to system call
  435. .globl sys32_fsync_wrapper
  436. sys32_fsync_wrapper:
  437. llgfr %r2,%r2 # unsigned int
  438. jg sys_fsync # branch to system call
  439. #sys32_sigreturn_wrapper # done in sigreturn_glue
  440. #sys32_clone_wrapper # done in clone_glue
  441. .globl sys32_setdomainname_wrapper
  442. sys32_setdomainname_wrapper:
  443. llgtr %r2,%r2 # char *
  444. lgfr %r3,%r3 # int
  445. jg sys_setdomainname # branch to system call
  446. .globl sys32_newuname_wrapper
  447. sys32_newuname_wrapper:
  448. llgtr %r2,%r2 # struct new_utsname *
  449. jg s390x_newuname # branch to system call
  450. .globl sys32_adjtimex_wrapper
  451. sys32_adjtimex_wrapper:
  452. llgtr %r2,%r2 # struct timex_emu31 *
  453. jg sys32_adjtimex # branch to system call
  454. .globl sys32_mprotect_wrapper
  455. sys32_mprotect_wrapper:
  456. llgtr %r2,%r2 # unsigned long (actually pointer
  457. llgfr %r3,%r3 # size_t
  458. llgfr %r4,%r4 # unsigned long
  459. jg sys_mprotect # branch to system call
  460. .globl compat_sys_sigprocmask_wrapper
  461. compat_sys_sigprocmask_wrapper:
  462. lgfr %r2,%r2 # int
  463. llgtr %r3,%r3 # compat_old_sigset_t *
  464. llgtr %r4,%r4 # compat_old_sigset_t *
  465. jg compat_sys_sigprocmask # branch to system call
  466. .globl sys32_init_module_wrapper
  467. sys32_init_module_wrapper:
  468. llgtr %r2,%r2 # void *
  469. llgfr %r3,%r3 # unsigned long
  470. llgtr %r4,%r4 # char *
  471. jg sys32_init_module # branch to system call
  472. .globl sys32_delete_module_wrapper
  473. sys32_delete_module_wrapper:
  474. llgtr %r2,%r2 # const char *
  475. llgfr %r3,%r3 # unsigned int
  476. jg sys32_delete_module # branch to system call
  477. .globl sys32_quotactl_wrapper
  478. sys32_quotactl_wrapper:
  479. llgfr %r2,%r2 # unsigned int
  480. llgtr %r3,%r3 # const char *
  481. llgfr %r4,%r4 # qid_t
  482. llgtr %r5,%r5 # caddr_t
  483. jg sys_quotactl # branch to system call
  484. .globl sys32_getpgid_wrapper
  485. sys32_getpgid_wrapper:
  486. lgfr %r2,%r2 # pid_t
  487. jg sys_getpgid # branch to system call
  488. .globl sys32_fchdir_wrapper
  489. sys32_fchdir_wrapper:
  490. llgfr %r2,%r2 # unsigned int
  491. jg sys_fchdir # branch to system call
  492. .globl sys32_bdflush_wrapper
  493. sys32_bdflush_wrapper:
  494. lgfr %r2,%r2 # int
  495. lgfr %r3,%r3 # long
  496. jg sys_bdflush # branch to system call
  497. .globl sys32_sysfs_wrapper
  498. sys32_sysfs_wrapper:
  499. lgfr %r2,%r2 # int
  500. llgfr %r3,%r3 # unsigned long
  501. llgfr %r4,%r4 # unsigned long
  502. jg sys_sysfs # branch to system call
  503. .globl sys32_personality_wrapper
  504. sys32_personality_wrapper:
  505. llgfr %r2,%r2 # unsigned long
  506. jg s390x_personality # branch to system call
  507. .globl sys32_setfsuid16_wrapper
  508. sys32_setfsuid16_wrapper:
  509. llgfr %r2,%r2 # __kernel_old_uid_emu31_t
  510. jg sys32_setfsuid16 # branch to system call
  511. .globl sys32_setfsgid16_wrapper
  512. sys32_setfsgid16_wrapper:
  513. llgfr %r2,%r2 # __kernel_old_gid_emu31_t
  514. jg sys32_setfsgid16 # branch to system call
  515. .globl sys32_llseek_wrapper
  516. sys32_llseek_wrapper:
  517. llgfr %r2,%r2 # unsigned int
  518. llgfr %r3,%r3 # unsigned long
  519. llgfr %r4,%r4 # unsigned long
  520. llgtr %r5,%r5 # loff_t *
  521. llgfr %r6,%r6 # unsigned int
  522. jg sys_llseek # branch to system call
  523. .globl sys32_getdents_wrapper
  524. sys32_getdents_wrapper:
  525. llgfr %r2,%r2 # unsigned int
  526. llgtr %r3,%r3 # void *
  527. llgfr %r4,%r4 # unsigned int
  528. jg compat_sys_getdents # branch to system call
  529. .globl compat_sys_select_wrapper
  530. compat_sys_select_wrapper:
  531. lgfr %r2,%r2 # int
  532. llgtr %r3,%r3 # compat_fd_set *
  533. llgtr %r4,%r4 # compat_fd_set *
  534. llgtr %r5,%r5 # compat_fd_set *
  535. llgtr %r6,%r6 # struct compat_timeval *
  536. jg compat_sys_select # branch to system call
  537. .globl sys32_flock_wrapper
  538. sys32_flock_wrapper:
  539. llgfr %r2,%r2 # unsigned int
  540. llgfr %r3,%r3 # unsigned int
  541. jg sys_flock # branch to system call
  542. .globl sys32_msync_wrapper
  543. sys32_msync_wrapper:
  544. llgfr %r2,%r2 # unsigned long
  545. llgfr %r3,%r3 # size_t
  546. lgfr %r4,%r4 # int
  547. jg sys_msync # branch to system call
  548. .globl compat_sys_readv_wrapper
  549. compat_sys_readv_wrapper:
  550. lgfr %r2,%r2 # int
  551. llgtr %r3,%r3 # const struct compat_iovec *
  552. llgfr %r4,%r4 # unsigned long
  553. jg compat_sys_readv # branch to system call
  554. .globl compat_sys_writev_wrapper
  555. compat_sys_writev_wrapper:
  556. lgfr %r2,%r2 # int
  557. llgtr %r3,%r3 # const struct compat_iovec *
  558. llgfr %r4,%r4 # unsigned long
  559. jg compat_sys_writev # branch to system call
  560. .globl sys32_getsid_wrapper
  561. sys32_getsid_wrapper:
  562. lgfr %r2,%r2 # pid_t
  563. jg sys_getsid # branch to system call
  564. .globl sys32_fdatasync_wrapper
  565. sys32_fdatasync_wrapper:
  566. llgfr %r2,%r2 # unsigned int
  567. jg sys_fdatasync # branch to system call
  568. #sys32_sysctl_wrapper # tbd
  569. .globl sys32_mlock_wrapper
  570. sys32_mlock_wrapper:
  571. llgfr %r2,%r2 # unsigned long
  572. llgfr %r3,%r3 # size_t
  573. jg sys_mlock # branch to system call
  574. .globl sys32_munlock_wrapper
  575. sys32_munlock_wrapper:
  576. llgfr %r2,%r2 # unsigned long
  577. llgfr %r3,%r3 # size_t
  578. jg sys_munlock # branch to system call
  579. .globl sys32_mlockall_wrapper
  580. sys32_mlockall_wrapper:
  581. lgfr %r2,%r2 # int
  582. jg sys_mlockall # branch to system call
  583. #sys32_munlockall_wrapper # void
  584. .globl sys32_sched_setparam_wrapper
  585. sys32_sched_setparam_wrapper:
  586. lgfr %r2,%r2 # pid_t
  587. llgtr %r3,%r3 # struct sched_param *
  588. jg sys_sched_setparam # branch to system call
  589. .globl sys32_sched_getparam_wrapper
  590. sys32_sched_getparam_wrapper:
  591. lgfr %r2,%r2 # pid_t
  592. llgtr %r3,%r3 # struct sched_param *
  593. jg sys_sched_getparam # branch to system call
  594. .globl sys32_sched_setscheduler_wrapper
  595. sys32_sched_setscheduler_wrapper:
  596. lgfr %r2,%r2 # pid_t
  597. lgfr %r3,%r3 # int
  598. llgtr %r4,%r4 # struct sched_param *
  599. jg sys_sched_setscheduler # branch to system call
  600. .globl sys32_sched_getscheduler_wrapper
  601. sys32_sched_getscheduler_wrapper:
  602. lgfr %r2,%r2 # pid_t
  603. jg sys_sched_getscheduler # branch to system call
  604. #sys32_sched_yield_wrapper # void
  605. .globl sys32_sched_get_priority_max_wrapper
  606. sys32_sched_get_priority_max_wrapper:
  607. lgfr %r2,%r2 # int
  608. jg sys_sched_get_priority_max # branch to system call
  609. .globl sys32_sched_get_priority_min_wrapper
  610. sys32_sched_get_priority_min_wrapper:
  611. lgfr %r2,%r2 # int
  612. jg sys_sched_get_priority_min # branch to system call
  613. .globl sys32_sched_rr_get_interval_wrapper
  614. sys32_sched_rr_get_interval_wrapper:
  615. lgfr %r2,%r2 # pid_t
  616. llgtr %r3,%r3 # struct compat_timespec *
  617. jg sys32_sched_rr_get_interval # branch to system call
  618. .globl compat_sys_nanosleep_wrapper
  619. compat_sys_nanosleep_wrapper:
  620. llgtr %r2,%r2 # struct compat_timespec *
  621. llgtr %r3,%r3 # struct compat_timespec *
  622. jg compat_sys_nanosleep # branch to system call
  623. .globl sys32_mremap_wrapper
  624. sys32_mremap_wrapper:
  625. llgfr %r2,%r2 # unsigned long
  626. llgfr %r3,%r3 # unsigned long
  627. llgfr %r4,%r4 # unsigned long
  628. llgfr %r5,%r5 # unsigned long
  629. llgfr %r6,%r6 # unsigned long
  630. jg sys_mremap # branch to system call
  631. .globl sys32_setresuid16_wrapper
  632. sys32_setresuid16_wrapper:
  633. llgfr %r2,%r2 # __kernel_old_uid_emu31_t
  634. llgfr %r3,%r3 # __kernel_old_uid_emu31_t
  635. llgfr %r4,%r4 # __kernel_old_uid_emu31_t
  636. jg sys32_setresuid16 # branch to system call
  637. .globl sys32_getresuid16_wrapper
  638. sys32_getresuid16_wrapper:
  639. llgtr %r2,%r2 # __kernel_old_uid_emu31_t *
  640. llgtr %r3,%r3 # __kernel_old_uid_emu31_t *
  641. llgtr %r4,%r4 # __kernel_old_uid_emu31_t *
  642. jg sys32_getresuid16 # branch to system call
  643. .globl sys32_poll_wrapper
  644. sys32_poll_wrapper:
  645. llgtr %r2,%r2 # struct pollfd *
  646. llgfr %r3,%r3 # unsigned int
  647. lgfr %r4,%r4 # long
  648. jg sys_poll # branch to system call
  649. .globl compat_sys_nfsservctl_wrapper
  650. compat_sys_nfsservctl_wrapper:
  651. lgfr %r2,%r2 # int
  652. llgtr %r3,%r3 # struct compat_nfsctl_arg*
  653. llgtr %r4,%r4 # union compat_nfsctl_res*
  654. jg compat_sys_nfsservctl # branch to system call
  655. .globl sys32_setresgid16_wrapper
  656. sys32_setresgid16_wrapper:
  657. llgfr %r2,%r2 # __kernel_old_gid_emu31_t
  658. llgfr %r3,%r3 # __kernel_old_gid_emu31_t
  659. llgfr %r4,%r4 # __kernel_old_gid_emu31_t
  660. jg sys32_setresgid16 # branch to system call
  661. .globl sys32_getresgid16_wrapper
  662. sys32_getresgid16_wrapper:
  663. llgtr %r2,%r2 # __kernel_old_gid_emu31_t *
  664. llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
  665. llgtr %r4,%r4 # __kernel_old_gid_emu31_t *
  666. jg sys32_getresgid16 # branch to system call
  667. .globl sys32_prctl_wrapper
  668. sys32_prctl_wrapper:
  669. lgfr %r2,%r2 # int
  670. llgfr %r3,%r3 # unsigned long
  671. llgfr %r4,%r4 # unsigned long
  672. llgfr %r5,%r5 # unsigned long
  673. llgfr %r6,%r6 # unsigned long
  674. jg sys_prctl # branch to system call
  675. #sys32_rt_sigreturn_wrapper # done in rt_sigreturn_glue
  676. .globl sys32_rt_sigaction_wrapper
  677. sys32_rt_sigaction_wrapper:
  678. lgfr %r2,%r2 # int
  679. llgtr %r3,%r3 # const struct sigaction_emu31 *
  680. llgtr %r4,%r4 # const struct sigaction_emu31 *
  681. llgfr %r5,%r5 # size_t
  682. jg sys32_rt_sigaction # branch to system call
  683. .globl sys32_rt_sigprocmask_wrapper
  684. sys32_rt_sigprocmask_wrapper:
  685. lgfr %r2,%r2 # int
  686. llgtr %r3,%r3 # old_sigset_emu31 *
  687. llgtr %r4,%r4 # old_sigset_emu31 *
  688. llgfr %r5,%r5 # size_t
  689. jg sys32_rt_sigprocmask # branch to system call
  690. .globl sys32_rt_sigpending_wrapper
  691. sys32_rt_sigpending_wrapper:
  692. llgtr %r2,%r2 # sigset_emu31 *
  693. llgfr %r3,%r3 # size_t
  694. jg sys32_rt_sigpending # branch to system call
  695. .globl compat_sys_rt_sigtimedwait_wrapper
  696. compat_sys_rt_sigtimedwait_wrapper:
  697. llgtr %r2,%r2 # const sigset_emu31_t *
  698. llgtr %r3,%r3 # siginfo_emu31_t *
  699. llgtr %r4,%r4 # const struct compat_timespec *
  700. llgfr %r5,%r5 # size_t
  701. jg compat_sys_rt_sigtimedwait # branch to system call
  702. .globl sys32_rt_sigqueueinfo_wrapper
  703. sys32_rt_sigqueueinfo_wrapper:
  704. lgfr %r2,%r2 # int
  705. lgfr %r3,%r3 # int
  706. llgtr %r4,%r4 # siginfo_emu31_t *
  707. jg sys32_rt_sigqueueinfo # branch to system call
  708. #sys32_rt_sigsuspend_wrapper # done in rt_sigsuspend_glue
  709. .globl sys32_pread64_wrapper
  710. sys32_pread64_wrapper:
  711. llgfr %r2,%r2 # unsigned int
  712. llgtr %r3,%r3 # char *
  713. llgfr %r4,%r4 # size_t
  714. llgfr %r5,%r5 # u32
  715. llgfr %r6,%r6 # u32
  716. jg sys32_pread64 # branch to system call
  717. .globl sys32_pwrite64_wrapper
  718. sys32_pwrite64_wrapper:
  719. llgfr %r2,%r2 # unsigned int
  720. llgtr %r3,%r3 # const char *
  721. llgfr %r4,%r4 # size_t
  722. llgfr %r5,%r5 # u32
  723. llgfr %r6,%r6 # u32
  724. jg sys32_pwrite64 # branch to system call
  725. .globl sys32_chown16_wrapper
  726. sys32_chown16_wrapper:
  727. llgtr %r2,%r2 # const char *
  728. llgfr %r3,%r3 # __kernel_old_uid_emu31_t
  729. llgfr %r4,%r4 # __kernel_old_gid_emu31_t
  730. jg sys32_chown16 # branch to system call
  731. .globl sys32_getcwd_wrapper
  732. sys32_getcwd_wrapper:
  733. llgtr %r2,%r2 # char *
  734. llgfr %r3,%r3 # unsigned long
  735. jg sys_getcwd # branch to system call
  736. .globl sys32_capget_wrapper
  737. sys32_capget_wrapper:
  738. llgtr %r2,%r2 # cap_user_header_t
  739. llgtr %r3,%r3 # cap_user_data_t
  740. jg sys_capget # branch to system call
  741. .globl sys32_capset_wrapper
  742. sys32_capset_wrapper:
  743. llgtr %r2,%r2 # cap_user_header_t
  744. llgtr %r3,%r3 # const cap_user_data_t
  745. jg sys_capset # branch to system call
  746. .globl sys32_sigaltstack_wrapper
  747. sys32_sigaltstack_wrapper:
  748. llgtr %r2,%r2 # const stack_emu31_t *
  749. llgtr %r3,%r3 # stack_emu31_t *
  750. jg sys32_sigaltstack
  751. .globl sys32_sendfile_wrapper
  752. sys32_sendfile_wrapper:
  753. lgfr %r2,%r2 # int
  754. lgfr %r3,%r3 # int
  755. llgtr %r4,%r4 # __kernel_off_emu31_t *
  756. llgfr %r5,%r5 # size_t
  757. jg sys32_sendfile # branch to system call
  758. #sys32_vfork_wrapper # done in vfork_glue
  759. .globl sys32_truncate64_wrapper
  760. sys32_truncate64_wrapper:
  761. llgtr %r2,%r2 # const char *
  762. llgfr %r3,%r3 # unsigned long
  763. llgfr %r4,%r4 # unsigned long
  764. jg sys32_truncate64 # branch to system call
  765. .globl sys32_ftruncate64_wrapper
  766. sys32_ftruncate64_wrapper:
  767. llgfr %r2,%r2 # unsigned int
  768. llgfr %r3,%r3 # unsigned long
  769. llgfr %r4,%r4 # unsigned long
  770. jg sys32_ftruncate64 # branch to system call
  771. .globl sys32_lchown_wrapper
  772. sys32_lchown_wrapper:
  773. llgtr %r2,%r2 # const char *
  774. llgfr %r3,%r3 # uid_t
  775. llgfr %r4,%r4 # gid_t
  776. jg sys_lchown # branch to system call
  777. #sys32_getuid_wrapper # void
  778. #sys32_getgid_wrapper # void
  779. #sys32_geteuid_wrapper # void
  780. #sys32_getegid_wrapper # void
  781. .globl sys32_setreuid_wrapper
  782. sys32_setreuid_wrapper:
  783. llgfr %r2,%r2 # uid_t
  784. llgfr %r3,%r3 # uid_t
  785. jg sys_setreuid # branch to system call
  786. .globl sys32_setregid_wrapper
  787. sys32_setregid_wrapper:
  788. llgfr %r2,%r2 # gid_t
  789. llgfr %r3,%r3 # gid_t
  790. jg sys_setregid # branch to system call
  791. .globl sys32_getgroups_wrapper
  792. sys32_getgroups_wrapper:
  793. lgfr %r2,%r2 # int
  794. llgtr %r3,%r3 # gid_t *
  795. jg sys_getgroups # branch to system call
  796. .globl sys32_setgroups_wrapper
  797. sys32_setgroups_wrapper:
  798. lgfr %r2,%r2 # int
  799. llgtr %r3,%r3 # gid_t *
  800. jg sys_setgroups # branch to system call
  801. .globl sys32_fchown_wrapper
  802. sys32_fchown_wrapper:
  803. llgfr %r2,%r2 # unsigned int
  804. llgfr %r3,%r3 # uid_t
  805. llgfr %r4,%r4 # gid_t
  806. jg sys_fchown # branch to system call
  807. .globl sys32_setresuid_wrapper
  808. sys32_setresuid_wrapper:
  809. llgfr %r2,%r2 # uid_t
  810. llgfr %r3,%r3 # uid_t
  811. llgfr %r4,%r4 # uid_t
  812. jg sys_setresuid # branch to system call
  813. .globl sys32_getresuid_wrapper
  814. sys32_getresuid_wrapper:
  815. llgtr %r2,%r2 # uid_t *
  816. llgtr %r3,%r3 # uid_t *
  817. llgtr %r4,%r4 # uid_t *
  818. jg sys_getresuid # branch to system call
  819. .globl sys32_setresgid_wrapper
  820. sys32_setresgid_wrapper:
  821. llgfr %r2,%r2 # gid_t
  822. llgfr %r3,%r3 # gid_t
  823. llgfr %r4,%r4 # gid_t
  824. jg sys_setresgid # branch to system call
  825. .globl sys32_getresgid_wrapper
  826. sys32_getresgid_wrapper:
  827. llgtr %r2,%r2 # gid_t *
  828. llgtr %r3,%r3 # gid_t *
  829. llgtr %r4,%r4 # gid_t *
  830. jg sys_getresgid # branch to system call
  831. .globl sys32_chown_wrapper
  832. sys32_chown_wrapper:
  833. llgtr %r2,%r2 # const char *
  834. llgfr %r3,%r3 # uid_t
  835. llgfr %r4,%r4 # gid_t
  836. jg sys_chown # branch to system call
  837. .globl sys32_setuid_wrapper
  838. sys32_setuid_wrapper:
  839. llgfr %r2,%r2 # uid_t
  840. jg sys_setuid # branch to system call
  841. .globl sys32_setgid_wrapper
  842. sys32_setgid_wrapper:
  843. llgfr %r2,%r2 # gid_t
  844. jg sys_setgid # branch to system call
  845. .globl sys32_setfsuid_wrapper
  846. sys32_setfsuid_wrapper:
  847. llgfr %r2,%r2 # uid_t
  848. jg sys_setfsuid # branch to system call
  849. .globl sys32_setfsgid_wrapper
  850. sys32_setfsgid_wrapper:
  851. llgfr %r2,%r2 # gid_t
  852. jg sys_setfsgid # branch to system call
  853. .globl sys32_pivot_root_wrapper
  854. sys32_pivot_root_wrapper:
  855. llgtr %r2,%r2 # const char *
  856. llgtr %r3,%r3 # const char *
  857. jg sys_pivot_root # branch to system call
  858. .globl sys32_mincore_wrapper
  859. sys32_mincore_wrapper:
  860. llgfr %r2,%r2 # unsigned long
  861. llgfr %r3,%r3 # size_t
  862. llgtr %r4,%r4 # unsigned char *
  863. jg sys_mincore # branch to system call
  864. .globl sys32_madvise_wrapper
  865. sys32_madvise_wrapper:
  866. llgfr %r2,%r2 # unsigned long
  867. llgfr %r3,%r3 # size_t
  868. lgfr %r4,%r4 # int
  869. jg sys_madvise # branch to system call
  870. .globl sys32_getdents64_wrapper
  871. sys32_getdents64_wrapper:
  872. llgfr %r2,%r2 # unsigned int
  873. llgtr %r3,%r3 # void *
  874. llgfr %r4,%r4 # unsigned int
  875. jg sys_getdents64 # branch to system call
  876. .globl compat_sys_fcntl64_wrapper
  877. compat_sys_fcntl64_wrapper:
  878. llgfr %r2,%r2 # unsigned int
  879. llgfr %r3,%r3 # unsigned int
  880. llgfr %r4,%r4 # unsigned long
  881. jg compat_sys_fcntl64 # branch to system call
  882. .globl sys32_stat64_wrapper
  883. sys32_stat64_wrapper:
  884. llgtr %r2,%r2 # char *
  885. llgtr %r3,%r3 # struct stat64 *
  886. jg sys32_stat64 # branch to system call
  887. .globl sys32_lstat64_wrapper
  888. sys32_lstat64_wrapper:
  889. llgtr %r2,%r2 # char *
  890. llgtr %r3,%r3 # struct stat64 *
  891. jg sys32_lstat64 # branch to system call
  892. .globl sys32_stime_wrapper
  893. sys32_stime_wrapper:
  894. llgtr %r2,%r2 # long *
  895. jg compat_sys_stime # branch to system call
  896. .globl sys32_sysctl_wrapper
  897. sys32_sysctl_wrapper:
  898. llgtr %r2,%r2 # struct __sysctl_args32 *
  899. jg sys32_sysctl
  900. .globl sys32_fstat64_wrapper
  901. sys32_fstat64_wrapper:
  902. llgfr %r2,%r2 # unsigned long
  903. llgtr %r3,%r3 # struct stat64 *
  904. jg sys32_fstat64 # branch to system call
  905. .globl compat_sys_futex_wrapper
  906. compat_sys_futex_wrapper:
  907. llgtr %r2,%r2 # u32 *
  908. lgfr %r3,%r3 # int
  909. lgfr %r4,%r4 # int
  910. llgtr %r5,%r5 # struct compat_timespec *
  911. llgtr %r6,%r6 # u32 *
  912. lgf %r0,164(%r15) # int
  913. stg %r0,160(%r15)
  914. jg compat_sys_futex # branch to system call
  915. .globl sys32_setxattr_wrapper
  916. sys32_setxattr_wrapper:
  917. llgtr %r2,%r2 # char *
  918. llgtr %r3,%r3 # char *
  919. llgtr %r4,%r4 # void *
  920. llgfr %r5,%r5 # size_t
  921. lgfr %r6,%r6 # int
  922. jg sys_setxattr
  923. .globl sys32_lsetxattr_wrapper
  924. sys32_lsetxattr_wrapper:
  925. llgtr %r2,%r2 # char *
  926. llgtr %r3,%r3 # char *
  927. llgtr %r4,%r4 # void *
  928. llgfr %r5,%r5 # size_t
  929. lgfr %r6,%r6 # int
  930. jg sys_lsetxattr
  931. .globl sys32_fsetxattr_wrapper
  932. sys32_fsetxattr_wrapper:
  933. lgfr %r2,%r2 # int
  934. llgtr %r3,%r3 # char *
  935. llgtr %r4,%r4 # void *
  936. llgfr %r5,%r5 # size_t
  937. lgfr %r6,%r6 # int
  938. jg sys_fsetxattr
  939. .globl sys32_getxattr_wrapper
  940. sys32_getxattr_wrapper:
  941. llgtr %r2,%r2 # char *
  942. llgtr %r3,%r3 # char *
  943. llgtr %r4,%r4 # void *
  944. llgfr %r5,%r5 # size_t
  945. jg sys_getxattr
  946. .globl sys32_lgetxattr_wrapper
  947. sys32_lgetxattr_wrapper:
  948. llgtr %r2,%r2 # char *
  949. llgtr %r3,%r3 # char *
  950. llgtr %r4,%r4 # void *
  951. llgfr %r5,%r5 # size_t
  952. jg sys_lgetxattr
  953. .globl sys32_fgetxattr_wrapper
  954. sys32_fgetxattr_wrapper:
  955. lgfr %r2,%r2 # int
  956. llgtr %r3,%r3 # char *
  957. llgtr %r4,%r4 # void *
  958. llgfr %r5,%r5 # size_t
  959. jg sys_fgetxattr
  960. .globl sys32_listxattr_wrapper
  961. sys32_listxattr_wrapper:
  962. llgtr %r2,%r2 # char *
  963. llgtr %r3,%r3 # char *
  964. llgfr %r4,%r4 # size_t
  965. jg sys_listxattr
  966. .globl sys32_llistxattr_wrapper
  967. sys32_llistxattr_wrapper:
  968. llgtr %r2,%r2 # char *
  969. llgtr %r3,%r3 # char *
  970. llgfr %r4,%r4 # size_t
  971. jg sys_llistxattr
  972. .globl sys32_flistxattr_wrapper
  973. sys32_flistxattr_wrapper:
  974. lgfr %r2,%r2 # int
  975. llgtr %r3,%r3 # char *
  976. llgfr %r4,%r4 # size_t
  977. jg sys_flistxattr
  978. .globl sys32_removexattr_wrapper
  979. sys32_removexattr_wrapper:
  980. llgtr %r2,%r2 # char *
  981. llgtr %r3,%r3 # char *
  982. jg sys_removexattr
  983. .globl sys32_lremovexattr_wrapper
  984. sys32_lremovexattr_wrapper:
  985. llgtr %r2,%r2 # char *
  986. llgtr %r3,%r3 # char *
  987. jg sys_lremovexattr
  988. .globl sys32_fremovexattr_wrapper
  989. sys32_fremovexattr_wrapper:
  990. lgfr %r2,%r2 # int
  991. llgtr %r3,%r3 # char *
  992. jg sys_fremovexattr
  993. .globl sys32_sched_setaffinity_wrapper
  994. sys32_sched_setaffinity_wrapper:
  995. lgfr %r2,%r2 # int
  996. llgfr %r3,%r3 # unsigned int
  997. llgtr %r4,%r4 # unsigned long *
  998. jg compat_sys_sched_setaffinity
  999. .globl sys32_sched_getaffinity_wrapper
  1000. sys32_sched_getaffinity_wrapper:
  1001. lgfr %r2,%r2 # int
  1002. llgfr %r3,%r3 # unsigned int
  1003. llgtr %r4,%r4 # unsigned long *
  1004. jg compat_sys_sched_getaffinity
  1005. .globl sys32_exit_group_wrapper
  1006. sys32_exit_group_wrapper:
  1007. lgfr %r2,%r2 # int
  1008. jg sys_exit_group # branch to system call
  1009. .globl sys32_set_tid_address_wrapper
  1010. sys32_set_tid_address_wrapper:
  1011. llgtr %r2,%r2 # int *
  1012. jg sys_set_tid_address # branch to system call
  1013. .globl sys_epoll_create_wrapper
  1014. sys_epoll_create_wrapper:
  1015. lgfr %r2,%r2 # int
  1016. jg sys_epoll_create # branch to system call
  1017. .globl sys_epoll_ctl_wrapper
  1018. sys_epoll_ctl_wrapper:
  1019. lgfr %r2,%r2 # int
  1020. lgfr %r3,%r3 # int
  1021. lgfr %r4,%r4 # int
  1022. llgtr %r5,%r5 # struct epoll_event *
  1023. jg sys_epoll_ctl # branch to system call
  1024. .globl sys_epoll_wait_wrapper
  1025. sys_epoll_wait_wrapper:
  1026. lgfr %r2,%r2 # int
  1027. llgtr %r3,%r3 # struct epoll_event *
  1028. lgfr %r4,%r4 # int
  1029. lgfr %r5,%r5 # int
  1030. jg sys_epoll_wait # branch to system call
  1031. .globl sys32_lookup_dcookie_wrapper
  1032. sys32_lookup_dcookie_wrapper:
  1033. sllg %r2,%r2,32 # get high word of 64bit dcookie
  1034. or %r2,%r3 # get low word of 64bit dcookie
  1035. llgtr %r3,%r4 # char *
  1036. llgfr %r4,%r5 # size_t
  1037. jg sys_lookup_dcookie
  1038. .globl sys32_fadvise64_wrapper
  1039. sys32_fadvise64_wrapper:
  1040. lgfr %r2,%r2 # int
  1041. sllg %r3,%r3,32 # get high word of 64bit loff_t
  1042. or %r3,%r4 # get low word of 64bit loff_t
  1043. llgfr %r4,%r5 # size_t (unsigned long)
  1044. lgfr %r5,%r6 # int
  1045. jg sys32_fadvise64
  1046. .globl sys32_fadvise64_64_wrapper
  1047. sys32_fadvise64_64_wrapper:
  1048. llgtr %r2,%r2 # struct fadvise64_64_args *
  1049. jg sys32_fadvise64_64
  1050. .globl sys32_clock_settime_wrapper
  1051. sys32_clock_settime_wrapper:
  1052. lgfr %r2,%r2 # clockid_t (int)
  1053. llgtr %r3,%r3 # struct compat_timespec *
  1054. jg compat_sys_clock_settime
  1055. .globl sys32_clock_gettime_wrapper
  1056. sys32_clock_gettime_wrapper:
  1057. lgfr %r2,%r2 # clockid_t (int)
  1058. llgtr %r3,%r3 # struct compat_timespec *
  1059. jg compat_sys_clock_gettime
  1060. .globl sys32_clock_getres_wrapper
  1061. sys32_clock_getres_wrapper:
  1062. lgfr %r2,%r2 # clockid_t (int)
  1063. llgtr %r3,%r3 # struct compat_timespec *
  1064. jg compat_sys_clock_getres
  1065. .globl sys32_clock_nanosleep_wrapper
  1066. sys32_clock_nanosleep_wrapper:
  1067. lgfr %r2,%r2 # clockid_t (int)
  1068. lgfr %r3,%r3 # int
  1069. llgtr %r4,%r4 # struct compat_timespec *
  1070. llgtr %r5,%r5 # struct compat_timespec *
  1071. jg compat_sys_clock_nanosleep
  1072. .globl sys32_timer_create_wrapper
  1073. sys32_timer_create_wrapper:
  1074. lgfr %r2,%r2 # timer_t (int)
  1075. llgtr %r3,%r3 # struct compat_sigevent *
  1076. llgtr %r4,%r4 # timer_t *
  1077. jg sys32_timer_create
  1078. .globl sys32_timer_settime_wrapper
  1079. sys32_timer_settime_wrapper:
  1080. lgfr %r2,%r2 # timer_t (int)
  1081. lgfr %r3,%r3 # int
  1082. llgtr %r4,%r4 # struct compat_itimerspec *
  1083. llgtr %r5,%r5 # struct compat_itimerspec *
  1084. jg compat_sys_timer_settime
  1085. .globl sys32_timer_gettime_wrapper
  1086. sys32_timer_gettime_wrapper:
  1087. lgfr %r2,%r2 # timer_t (int)
  1088. llgtr %r3,%r3 # struct compat_itimerspec *
  1089. jg compat_sys_timer_gettime
  1090. .globl sys32_timer_getoverrun_wrapper
  1091. sys32_timer_getoverrun_wrapper:
  1092. lgfr %r2,%r2 # timer_t (int)
  1093. jg sys_timer_getoverrun
  1094. .globl sys32_timer_delete_wrapper
  1095. sys32_timer_delete_wrapper:
  1096. lgfr %r2,%r2 # timer_t (int)
  1097. jg sys_timer_delete
  1098. .globl sys32_io_setup_wrapper
  1099. sys32_io_setup_wrapper:
  1100. llgfr %r2,%r2 # unsigned int
  1101. llgtr %r3,%r3 # u32 *
  1102. jg compat_sys_io_setup
  1103. .globl sys32_io_destroy_wrapper
  1104. sys32_io_destroy_wrapper:
  1105. llgfr %r2,%r2 # (aio_context_t) u32
  1106. jg sys_io_destroy
  1107. .globl sys32_io_getevents_wrapper
  1108. sys32_io_getevents_wrapper:
  1109. llgfr %r2,%r2 # (aio_context_t) u32
  1110. lgfr %r3,%r3 # long
  1111. lgfr %r4,%r4 # long
  1112. llgtr %r5,%r5 # struct io_event *
  1113. llgtr %r6,%r6 # struct compat_timespec *
  1114. jg compat_sys_io_getevents
  1115. .globl sys32_io_submit_wrapper
  1116. sys32_io_submit_wrapper:
  1117. llgfr %r2,%r2 # (aio_context_t) u32
  1118. lgfr %r3,%r3 # long
  1119. llgtr %r4,%r4 # struct iocb **
  1120. jg compat_sys_io_submit
  1121. .globl sys32_io_cancel_wrapper
  1122. sys32_io_cancel_wrapper:
  1123. llgfr %r2,%r2 # (aio_context_t) u32
  1124. llgtr %r3,%r3 # struct iocb *
  1125. llgtr %r4,%r4 # struct io_event *
  1126. jg sys_io_cancel
  1127. .globl compat_sys_statfs64_wrapper
  1128. compat_sys_statfs64_wrapper:
  1129. llgtr %r2,%r2 # const char *
  1130. llgfr %r3,%r3 # compat_size_t
  1131. llgtr %r4,%r4 # struct compat_statfs64 *
  1132. jg compat_sys_statfs64
  1133. .globl compat_sys_fstatfs64_wrapper
  1134. compat_sys_fstatfs64_wrapper:
  1135. llgfr %r2,%r2 # unsigned int fd
  1136. llgfr %r3,%r3 # compat_size_t
  1137. llgtr %r4,%r4 # struct compat_statfs64 *
  1138. jg compat_sys_fstatfs64
  1139. .globl compat_sys_mq_open_wrapper
  1140. compat_sys_mq_open_wrapper:
  1141. llgtr %r2,%r2 # const char *
  1142. lgfr %r3,%r3 # int
  1143. llgfr %r4,%r4 # mode_t
  1144. llgtr %r5,%r5 # struct compat_mq_attr *
  1145. jg compat_sys_mq_open
  1146. .globl sys32_mq_unlink_wrapper
  1147. sys32_mq_unlink_wrapper:
  1148. llgtr %r2,%r2 # const char *
  1149. jg sys_mq_unlink
  1150. .globl compat_sys_mq_timedsend_wrapper
  1151. compat_sys_mq_timedsend_wrapper:
  1152. lgfr %r2,%r2 # mqd_t
  1153. llgtr %r3,%r3 # const char *
  1154. llgfr %r4,%r4 # size_t
  1155. llgfr %r5,%r5 # unsigned int
  1156. llgtr %r6,%r6 # const struct compat_timespec *
  1157. jg compat_sys_mq_timedsend
  1158. .globl compat_sys_mq_timedreceive_wrapper
  1159. compat_sys_mq_timedreceive_wrapper:
  1160. lgfr %r2,%r2 # mqd_t
  1161. llgtr %r3,%r3 # char *
  1162. llgfr %r4,%r4 # size_t
  1163. llgtr %r5,%r5 # unsigned int *
  1164. llgtr %r6,%r6 # const struct compat_timespec *
  1165. jg compat_sys_mq_timedreceive
  1166. .globl compat_sys_mq_notify_wrapper
  1167. compat_sys_mq_notify_wrapper:
  1168. lgfr %r2,%r2 # mqd_t
  1169. llgtr %r3,%r3 # struct compat_sigevent *
  1170. jg compat_sys_mq_notify
  1171. .globl compat_sys_mq_getsetattr_wrapper
  1172. compat_sys_mq_getsetattr_wrapper:
  1173. lgfr %r2,%r2 # mqd_t
  1174. llgtr %r3,%r3 # struct compat_mq_attr *
  1175. llgtr %r4,%r4 # struct compat_mq_attr *
  1176. jg compat_sys_mq_getsetattr
  1177. .globl compat_sys_add_key_wrapper
  1178. compat_sys_add_key_wrapper:
  1179. llgtr %r2,%r2 # const char *
  1180. llgtr %r3,%r3 # const char *
  1181. llgtr %r4,%r4 # const void *
  1182. llgfr %r5,%r5 # size_t
  1183. llgfr %r6,%r6 # (key_serial_t) u32
  1184. jg sys_add_key
  1185. .globl compat_sys_request_key_wrapper
  1186. compat_sys_request_key_wrapper:
  1187. llgtr %r2,%r2 # const char *
  1188. llgtr %r3,%r3 # const char *
  1189. llgtr %r4,%r4 # const void *
  1190. llgfr %r5,%r5 # (key_serial_t) u32
  1191. jg sys_request_key
  1192. .globl sys32_remap_file_pages_wrapper
  1193. sys32_remap_file_pages_wrapper:
  1194. llgfr %r2,%r2 # unsigned long
  1195. llgfr %r3,%r3 # unsigned long
  1196. llgfr %r4,%r4 # unsigned long
  1197. llgfr %r5,%r5 # unsigned long
  1198. llgfr %r6,%r6 # unsigned long
  1199. jg sys_remap_file_pages
  1200. .globl compat_sys_waitid_wrapper
  1201. compat_sys_waitid_wrapper:
  1202. lgfr %r2,%r2 # int
  1203. lgfr %r3,%r3 # pid_t
  1204. llgtr %r4,%r4 # siginfo_emu31_t *
  1205. lgfr %r5,%r5 # int
  1206. llgtr %r6,%r6 # struct rusage_emu31 *
  1207. jg compat_sys_waitid
  1208. .globl compat_sys_kexec_load_wrapper
  1209. compat_sys_kexec_load_wrapper:
  1210. llgfr %r2,%r2 # unsigned long
  1211. llgfr %r3,%r3 # unsigned long
  1212. llgtr %r4,%r4 # struct kexec_segment *
  1213. llgfr %r5,%r5 # unsigned long
  1214. jg compat_sys_kexec_load
  1215. .globl sys_ioprio_set_wrapper
  1216. sys_ioprio_set_wrapper:
  1217. lgfr %r2,%r2 # int
  1218. lgfr %r3,%r3 # int
  1219. lgfr %r4,%r4 # int
  1220. jg sys_ioprio_set
  1221. .globl sys_ioprio_get_wrapper
  1222. sys_ioprio_get_wrapper:
  1223. lgfr %r2,%r2 # int
  1224. lgfr %r3,%r3 # int
  1225. jg sys_ioprio_get
  1226. .globl sys_inotify_add_watch_wrapper
  1227. sys_inotify_add_watch_wrapper:
  1228. lgfr %r2,%r2 # int
  1229. llgtr %r3,%r3 # const char *
  1230. llgfr %r4,%r4 # u32
  1231. jg sys_inotify_add_watch
  1232. .globl sys_inotify_rm_watch_wrapper
  1233. sys_inotify_rm_watch_wrapper:
  1234. lgfr %r2,%r2 # int
  1235. llgfr %r3,%r3 # u32
  1236. jg sys_inotify_rm_watch