compat_wrapper.S 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451
  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 sys_fadvise64
  1046. .globl sys32_fadvise64_64_wrapper
  1047. sys32_fadvise64_64_wrapper:
  1048. llgtr %r2,%r2 # struct fadvise64_64_args *
  1049. jg s390_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