syscall_riscv64.odin 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. //+build riscv64
  2. package linux
  3. // https://github.com/riscv-collab/riscv-gnu-toolchain/blob/master/linux-headers/include/asm-generic/unistd.h
  4. SYS_io_setup :: uintptr(0)
  5. SYS_io_destroy :: uintptr(1)
  6. SYS_io_submit :: uintptr(2)
  7. SYS_io_cancel :: uintptr(3)
  8. SYS_io_getevents :: uintptr(4)
  9. SYS_setxattr :: uintptr(5)
  10. SYS_lsetxattr :: uintptr(6)
  11. SYS_fsetxattr :: uintptr(7)
  12. SYS_getxattr :: uintptr(8)
  13. SYS_lgetxattr :: uintptr(9)
  14. SYS_fgetxattr :: uintptr(10)
  15. SYS_listxattr :: uintptr(11)
  16. SYS_llistxattr :: uintptr(12)
  17. SYS_flistxattr :: uintptr(13)
  18. SYS_removexattr :: uintptr(14)
  19. SYS_lremovexattr :: uintptr(15)
  20. SYS_fremovexattr :: uintptr(16)
  21. SYS_getcwd :: uintptr(17)
  22. SYS_lookup_dcookie :: uintptr(18)
  23. SYS_eventfd2 :: uintptr(19)
  24. SYS_epoll_create1 :: uintptr(20)
  25. SYS_epoll_ctl :: uintptr(21)
  26. SYS_epoll_pwait :: uintptr(22)
  27. SYS_dup :: uintptr(23)
  28. SYS_dup3 :: uintptr(24)
  29. SYS_fcntl :: uintptr(25)
  30. SYS_inotify_init1 :: uintptr(26)
  31. SYS_inotify_add_watch :: uintptr(27)
  32. SYS_inotify_rm_watch :: uintptr(28)
  33. SYS_ioctl :: uintptr(29)
  34. SYS_ioprio_set :: uintptr(30)
  35. SYS_ioprio_get :: uintptr(31)
  36. SYS_flock :: uintptr(32)
  37. SYS_mknodat :: uintptr(33)
  38. SYS_mkdirat :: uintptr(34)
  39. SYS_unlinkat :: uintptr(35)
  40. SYS_symlinkat :: uintptr(36)
  41. SYS_linkat :: uintptr(37)
  42. SYS_renameat :: uintptr(38)
  43. SYS_umount2 :: uintptr(39)
  44. SYS_mount :: uintptr(40)
  45. SYS_pivot_root :: uintptr(41)
  46. SYS_nfsservctl :: uintptr(42)
  47. SYS_statfs :: uintptr(43)
  48. SYS_fstatfs :: uintptr(44)
  49. SYS_truncate :: uintptr(45)
  50. SYS_ftruncate :: uintptr(46)
  51. SYS_fallocate :: uintptr(47)
  52. SYS_faccessat :: uintptr(48)
  53. SYS_chdir :: uintptr(49)
  54. SYS_fchdir :: uintptr(50)
  55. SYS_chroot :: uintptr(51)
  56. SYS_fchmod :: uintptr(52)
  57. SYS_fchmodat :: uintptr(53)
  58. SYS_fchownat :: uintptr(54)
  59. SYS_fchown :: uintptr(55)
  60. SYS_openat :: uintptr(56)
  61. SYS_close :: uintptr(57)
  62. SYS_vhangup :: uintptr(58)
  63. SYS_pipe2 :: uintptr(59)
  64. SYS_quotactl :: uintptr(60)
  65. SYS_getdents64 :: uintptr(61)
  66. SYS_lseek :: uintptr(62)
  67. SYS_read :: uintptr(63)
  68. SYS_write :: uintptr(64)
  69. SYS_readv :: uintptr(65)
  70. SYS_writev :: uintptr(66)
  71. SYS_pread64 :: uintptr(67)
  72. SYS_pwrite64 :: uintptr(68)
  73. SYS_preadv :: uintptr(69)
  74. SYS_pwritev :: uintptr(70)
  75. SYS_sendfile :: uintptr(71)
  76. SYS_pselect6 :: uintptr(72)
  77. SYS_ppoll :: uintptr(73)
  78. SYS_signalfd4 :: uintptr(74)
  79. SYS_vmsplice :: uintptr(75)
  80. SYS_splice :: uintptr(76)
  81. SYS_tee :: uintptr(77)
  82. SYS_readlinkat :: uintptr(78)
  83. SYS_fstatat :: uintptr(79)
  84. SYS_fstat :: uintptr(80)
  85. SYS_sync :: uintptr(81)
  86. SYS_fsync :: uintptr(82)
  87. SYS_fdatasync :: uintptr(83)
  88. SYS_sync_file_range2 :: uintptr(84)
  89. SYS_sync_file_range :: uintptr(84)
  90. SYS_timerfd_create :: uintptr(85)
  91. SYS_timerfd_settime :: uintptr(86)
  92. SYS_timerfd_gettime :: uintptr(87)
  93. SYS_utimensat :: uintptr(88)
  94. SYS_acct :: uintptr(89)
  95. SYS_capget :: uintptr(90)
  96. SYS_capset :: uintptr(91)
  97. SYS_personality :: uintptr(92)
  98. SYS_exit :: uintptr(93)
  99. SYS_exit_group :: uintptr(94)
  100. SYS_waitid :: uintptr(95)
  101. SYS_set_tid_address :: uintptr(96)
  102. SYS_unshare :: uintptr(97)
  103. SYS_futex :: uintptr(98)
  104. SYS_set_robust_list :: uintptr(99)
  105. SYS_get_robust_list :: uintptr(100)
  106. SYS_nanosleep :: uintptr(101)
  107. SYS_getitimer :: uintptr(102)
  108. SYS_setitimer :: uintptr(103)
  109. SYS_kexec_load :: uintptr(104)
  110. SYS_init_module :: uintptr(105)
  111. SYS_delete_module :: uintptr(106)
  112. SYS_timer_create :: uintptr(107)
  113. SYS_timer_gettime :: uintptr(108)
  114. SYS_timer_getoverrun :: uintptr(109)
  115. SYS_timer_settime :: uintptr(110)
  116. SYS_timer_delete :: uintptr(111)
  117. SYS_clock_settime :: uintptr(112)
  118. SYS_clock_gettime :: uintptr(113)
  119. SYS_clock_getres :: uintptr(114)
  120. SYS_clock_nanosleep :: uintptr(115)
  121. SYS_syslog :: uintptr(116)
  122. SYS_ptrace :: uintptr(117)
  123. SYS_sched_setparam :: uintptr(118)
  124. SYS_sched_setscheduler :: uintptr(119)
  125. SYS_sched_getscheduler :: uintptr(120)
  126. SYS_sched_getparam :: uintptr(121)
  127. SYS_sched_setaffinity :: uintptr(122)
  128. SYS_sched_getaffinity :: uintptr(123)
  129. SYS_sched_yield :: uintptr(124)
  130. SYS_sched_get_priority_max :: uintptr(125)
  131. SYS_sched_get_priority_min :: uintptr(126)
  132. SYS_sched_rr_get_interval :: uintptr(127)
  133. SYS_restart_syscall :: uintptr(128)
  134. SYS_kill :: uintptr(129)
  135. SYS_tkill :: uintptr(130)
  136. SYS_tgkill :: uintptr(131)
  137. SYS_sigaltstack :: uintptr(132)
  138. SYS_rt_sigsuspend :: uintptr(133)
  139. SYS_rt_sigaction :: uintptr(134)
  140. SYS_rt_sigprocmask :: uintptr(135)
  141. SYS_rt_sigpending :: uintptr(136)
  142. SYS_rt_sigtimedwait :: uintptr(137)
  143. SYS_rt_sigqueueinfo :: uintptr(138)
  144. SYS_rt_sigreturn :: uintptr(139)
  145. SYS_setpriority :: uintptr(140)
  146. SYS_getpriority :: uintptr(141)
  147. SYS_reboot :: uintptr(142)
  148. SYS_setregid :: uintptr(143)
  149. SYS_setgid :: uintptr(144)
  150. SYS_setreuid :: uintptr(145)
  151. SYS_setuid :: uintptr(146)
  152. SYS_setresuid :: uintptr(147)
  153. SYS_getresuid :: uintptr(148)
  154. SYS_setresgid :: uintptr(149)
  155. SYS_getresgid :: uintptr(150)
  156. SYS_setfsuid :: uintptr(151)
  157. SYS_setfsgid :: uintptr(152)
  158. SYS_times :: uintptr(153)
  159. SYS_setpgid :: uintptr(154)
  160. SYS_getpgid :: uintptr(155)
  161. SYS_getsid :: uintptr(156)
  162. SYS_setsid :: uintptr(157)
  163. SYS_getgroups :: uintptr(158)
  164. SYS_setgroups :: uintptr(159)
  165. SYS_uname :: uintptr(160)
  166. SYS_sethostname :: uintptr(161)
  167. SYS_setdomainname :: uintptr(162)
  168. SYS_getrlimit :: uintptr(163)
  169. SYS_setrlimit :: uintptr(164)
  170. SYS_getrusage :: uintptr(165)
  171. SYS_umask :: uintptr(166)
  172. SYS_prctl :: uintptr(167)
  173. SYS_getcpu :: uintptr(168)
  174. SYS_gettimeofday :: uintptr(169)
  175. SYS_settimeofday :: uintptr(170)
  176. SYS_adjtimex :: uintptr(171)
  177. SYS_getpid :: uintptr(172)
  178. SYS_getppid :: uintptr(173)
  179. SYS_getuid :: uintptr(174)
  180. SYS_geteuid :: uintptr(175)
  181. SYS_getgid :: uintptr(176)
  182. SYS_getegid :: uintptr(177)
  183. SYS_gettid :: uintptr(178)
  184. SYS_sysinfo :: uintptr(179)
  185. SYS_mq_open :: uintptr(180)
  186. SYS_mq_unlink :: uintptr(181)
  187. SYS_mq_timedsend :: uintptr(182)
  188. SYS_mq_timedreceive :: uintptr(183)
  189. SYS_mq_notify :: uintptr(184)
  190. SYS_mq_getsetattr :: uintptr(185)
  191. SYS_msgget :: uintptr(186)
  192. SYS_msgctl :: uintptr(187)
  193. SYS_msgrcv :: uintptr(188)
  194. SYS_msgsnd :: uintptr(189)
  195. SYS_semget :: uintptr(190)
  196. SYS_semctl :: uintptr(191)
  197. SYS_semtimedop :: uintptr(192)
  198. SYS_semop :: uintptr(193)
  199. SYS_shmget :: uintptr(194)
  200. SYS_shmctl :: uintptr(195)
  201. SYS_shmat :: uintptr(196)
  202. SYS_shmdt :: uintptr(197)
  203. SYS_socket :: uintptr(198)
  204. SYS_socketpair :: uintptr(199)
  205. SYS_bind :: uintptr(200)
  206. SYS_listen :: uintptr(201)
  207. SYS_accept :: uintptr(202)
  208. SYS_connect :: uintptr(203)
  209. SYS_getsockname :: uintptr(204)
  210. SYS_getpeername :: uintptr(205)
  211. SYS_sendto :: uintptr(206)
  212. SYS_recvfrom :: uintptr(207)
  213. SYS_setsockopt :: uintptr(208)
  214. SYS_getsockopt :: uintptr(209)
  215. SYS_shutdown :: uintptr(210)
  216. SYS_sendmsg :: uintptr(211)
  217. SYS_recvmsg :: uintptr(212)
  218. SYS_readahead :: uintptr(213)
  219. SYS_brk :: uintptr(214)
  220. SYS_munmap :: uintptr(215)
  221. SYS_mremap :: uintptr(216)
  222. SYS_add_key :: uintptr(217)
  223. SYS_request_key :: uintptr(218)
  224. SYS_keyctl :: uintptr(219)
  225. SYS_clone :: uintptr(220)
  226. SYS_execve :: uintptr(221)
  227. SYS_mmap :: uintptr(222)
  228. SYS_fadvise64 :: uintptr(223)
  229. SYS_swapon :: uintptr(224)
  230. SYS_swapoff :: uintptr(225)
  231. SYS_mprotect :: uintptr(226)
  232. SYS_msync :: uintptr(227)
  233. SYS_mlock :: uintptr(228)
  234. SYS_munlock :: uintptr(229)
  235. SYS_mlockall :: uintptr(230)
  236. SYS_munlockall :: uintptr(231)
  237. SYS_mincore :: uintptr(232)
  238. SYS_madvise :: uintptr(233)
  239. SYS_remap_file_pages :: uintptr(234)
  240. SYS_mbind :: uintptr(235)
  241. SYS_get_mempolicy :: uintptr(236)
  242. SYS_set_mempolicy :: uintptr(237)
  243. SYS_migrate_pages :: uintptr(238)
  244. SYS_move_pages :: uintptr(239)
  245. SYS_rt_tgsigqueueinfo :: uintptr(240)
  246. SYS_perf_event_open :: uintptr(241)
  247. SYS_accept4 :: uintptr(242)
  248. SYS_recvmmsg :: uintptr(243)
  249. SYS_wait4 :: uintptr(260)
  250. SYS_prlimit64 :: uintptr(261)
  251. SYS_fanotify_init :: uintptr(262)
  252. SYS_fanotify_mark :: uintptr(263)
  253. SYS_name_to_handle_at :: uintptr(264)
  254. SYS_open_by_handle_at :: uintptr(265)
  255. SYS_clock_adjtime :: uintptr(266)
  256. SYS_syncfs :: uintptr(267)
  257. SYS_setns :: uintptr(268)
  258. SYS_sendmmsg :: uintptr(269)
  259. SYS_process_vm_readv :: uintptr(270)
  260. SYS_process_vm_writev :: uintptr(271)
  261. SYS_kcmp :: uintptr(272)
  262. SYS_finit_module :: uintptr(273)
  263. SYS_sched_setattr :: uintptr(274)
  264. SYS_sched_getattr :: uintptr(275)
  265. SYS_renameat2 :: uintptr(276)
  266. SYS_seccomp :: uintptr(277)
  267. SYS_getrandom :: uintptr(278)
  268. SYS_memfd_create :: uintptr(279)
  269. SYS_bpf :: uintptr(280)
  270. SYS_execveat :: uintptr(281)
  271. SYS_userfaultfd :: uintptr(282)
  272. SYS_membarrier :: uintptr(283)
  273. SYS_mlock2 :: uintptr(284)
  274. SYS_copy_file_range :: uintptr(285)
  275. SYS_preadv2 :: uintptr(286)
  276. SYS_pwritev2 :: uintptr(287)
  277. SYS_pkey_mprotect :: uintptr(288)
  278. SYS_pkey_alloc :: uintptr(289)
  279. SYS_pkey_free :: uintptr(290)
  280. SYS_statx :: uintptr(291)
  281. SYS_io_pgetevents :: uintptr(292)
  282. SYS_rseq :: uintptr(293)
  283. SYS_kexec_file_load :: uintptr(294)
  284. SYS_clock_gettime64 :: uintptr(403)
  285. SYS_clock_settime64 :: uintptr(404)
  286. SYS_clock_adjtime64 :: uintptr(405)
  287. SYS_clock_getres_time64 :: uintptr(406)
  288. SYS_clock_nanosleep_time64 :: uintptr(407)
  289. SYS_timer_gettime64 :: uintptr(408)
  290. SYS_timer_settime64 :: uintptr(409)
  291. SYS_timerfd_gettime64 :: uintptr(410)
  292. SYS_timerfd_settime64 :: uintptr(411)
  293. SYS_utimensat_time64 :: uintptr(412)
  294. SYS_pselect6_time64 :: uintptr(413)
  295. SYS_ppoll_time64 :: uintptr(414)
  296. SYS_io_pgetevents_time64 :: uintptr(416)
  297. SYS_recvmmsg_time64 :: uintptr(417)
  298. SYS_mq_timedsend_time64 :: uintptr(418)
  299. SYS_mq_timedreceive_time64 :: uintptr(419)
  300. SYS_semtimedop_time64 :: uintptr(420)
  301. SYS_rt_sigtimedwait_time64 :: uintptr(421)
  302. SYS_futex_time64 :: uintptr(422)
  303. SYS_sched_rr_get_interval_time64 :: uintptr(423)
  304. SYS_pidfd_send_signal :: uintptr(424)
  305. SYS_io_uring_setup :: uintptr(425)
  306. SYS_io_uring_enter :: uintptr(426)
  307. SYS_io_uring_register :: uintptr(427)
  308. SYS_open_tree :: uintptr(428)
  309. SYS_move_mount :: uintptr(429)
  310. SYS_fsopen :: uintptr(430)
  311. SYS_fsconfig :: uintptr(431)
  312. SYS_fsmount :: uintptr(432)
  313. SYS_fspick :: uintptr(433)
  314. SYS_pidfd_open :: uintptr(434)
  315. SYS_clone3 :: uintptr(435)
  316. SYS_close_range :: uintptr(436)
  317. SYS_openat2 :: uintptr(437)
  318. SYS_pidfd_getfd :: uintptr(438)
  319. SYS_faccessat2 :: uintptr(439)
  320. SYS_process_madvise :: uintptr(440)
  321. SYS_epoll_pwait2 :: uintptr(441)
  322. SYS_mount_setattr :: uintptr(442)
  323. SYS_quotactl_fd :: uintptr(443)
  324. SYS_landlock_create_ruleset :: uintptr(444)
  325. SYS_landlock_add_rule :: uintptr(445)
  326. SYS_landlock_restrict_self :: uintptr(446)
  327. SYS_memfd_secret :: uintptr(447)
  328. SYS_process_mrelease :: uintptr(448)
  329. SYS_futex_waitv :: uintptr(449)
  330. SYS_set_mempolicy_home_node :: uintptr(450)
  331. SYS_cachestat :: uintptr(451)
  332. SYS_fchmodat2 :: uintptr(452)