vki-scnums-arm64-linux.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528
  1. /*--------------------------------------------------------------------*/
  2. /*--- System call numbers for arm64-linux. ---*/
  3. /*--- vki-scnums-arm64-linux.h ---*/
  4. /*--------------------------------------------------------------------*/
  5. /*
  6. This file is part of Valgrind, a dynamic binary instrumentation
  7. framework.
  8. Copyright (C) 2013-2017 OpenWorks
  9. info@open-works.net
  10. This program is free software; you can redistribute it and/or
  11. modify it under the terms of the GNU General Public License as
  12. published by the Free Software Foundation; either version 2 of the
  13. License, or (at your option) any later version.
  14. This program is distributed in the hope that it will be useful, but
  15. WITHOUT ANY WARRANTY; without even the implied warranty of
  16. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  17. General Public License for more details.
  18. You should have received a copy of the GNU General Public License
  19. along with this program; if not, write to the Free Software
  20. Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21. 02111-1307, USA.
  22. The GNU General Public License is contained in the file COPYING.
  23. */
  24. #ifndef __VKI_SCNUMS_ARM64_LINUX_H
  25. #define __VKI_SCNUMS_ARM64_LINUX_H
  26. // From linux-3.10.5/arch/arm64/include/uapi/asm/unistd.h
  27. // is a #include of
  28. // linux-3.10.5/include/uapi/asm-generic/unistd.h
  29. #define __NR_io_setup 0
  30. #define __NR_io_destroy 1
  31. #define __NR_io_submit 2
  32. #define __NR_io_cancel 3
  33. #define __NR_io_getevents 4
  34. #define __NR_setxattr 5
  35. #define __NR_lsetxattr 6
  36. #define __NR_fsetxattr 7
  37. #define __NR_getxattr 8
  38. #define __NR_lgetxattr 9
  39. #define __NR_fgetxattr 10
  40. #define __NR_listxattr 11
  41. #define __NR_llistxattr 12
  42. #define __NR_flistxattr 13
  43. #define __NR_removexattr 14
  44. #define __NR_lremovexattr 15
  45. #define __NR_fremovexattr 16
  46. #define __NR_getcwd 17
  47. #define __NR_lookup_dcookie 18
  48. #define __NR_eventfd2 19
  49. #define __NR_epoll_create1 20
  50. #define __NR_epoll_ctl 21
  51. #define __NR_epoll_pwait 22
  52. #define __NR_dup 23
  53. #define __NR_dup3 24
  54. #define __NR3264_fcntl 25
  55. #define __NR_inotify_init1 26
  56. #define __NR_inotify_add_watch 27
  57. #define __NR_inotify_rm_watch 28
  58. #define __NR_ioctl 29
  59. #define __NR_ioprio_set 30
  60. #define __NR_ioprio_get 31
  61. #define __NR_flock 32
  62. #define __NR_mknodat 33
  63. #define __NR_mkdirat 34
  64. #define __NR_unlinkat 35
  65. #define __NR_symlinkat 36
  66. #define __NR_linkat 37
  67. #define __NR_renameat 38
  68. #define __NR_umount2 39
  69. #define __NR_mount 40
  70. #define __NR_pivot_root 41
  71. #define __NR_nfsservctl 42
  72. #define __NR3264_statfs 43
  73. #define __NR3264_fstatfs 44
  74. #define __NR3264_truncate 45
  75. #define __NR3264_ftruncate 46
  76. #define __NR_fallocate 47
  77. #define __NR_faccessat 48
  78. #define __NR_chdir 49
  79. #define __NR_fchdir 50
  80. #define __NR_chroot 51
  81. #define __NR_fchmod 52
  82. #define __NR_fchmodat 53
  83. #define __NR_fchownat 54
  84. #define __NR_fchown 55
  85. #define __NR_openat 56
  86. #define __NR_close 57
  87. #define __NR_vhangup 58
  88. #define __NR_pipe2 59
  89. #define __NR_quotactl 60
  90. #define __NR_getdents64 61
  91. #define __NR3264_lseek 62
  92. #define __NR_read 63
  93. #define __NR_write 64
  94. #define __NR_readv 65
  95. #define __NR_writev 66
  96. #define __NR_pread64 67
  97. #define __NR_pwrite64 68
  98. #define __NR_preadv 69
  99. #define __NR_pwritev 70
  100. #define __NR3264_sendfile 71
  101. #define __NR_pselect6 72
  102. #define __NR_ppoll 73
  103. #define __NR_signalfd4 74
  104. #define __NR_vmsplice 75
  105. #define __NR_splice 76
  106. #define __NR_tee 77
  107. #define __NR_readlinkat 78
  108. #define __NR3264_fstatat 79
  109. #define __NR3264_fstat 80
  110. #define __NR_sync 81
  111. #define __NR_fsync 82
  112. #define __NR_fdatasync 83
  113. //#ifdef __ARCH_WANT_SYNC_FILE_RANGE2
  114. //#define __NR_sync_file_range2 84
  115. //#else
  116. #define __NR_sync_file_range 84
  117. //#endif
  118. #define __NR_timerfd_create 85
  119. #define __NR_timerfd_settime 86
  120. #define __NR_timerfd_gettime 87
  121. #define __NR_utimensat 88
  122. #define __NR_acct 89
  123. #define __NR_capget 90
  124. #define __NR_capset 91
  125. #define __NR_personality 92
  126. #define __NR_exit 93
  127. #define __NR_exit_group 94
  128. #define __NR_waitid 95
  129. #define __NR_set_tid_address 96
  130. #define __NR_unshare 97
  131. #define __NR_futex 98
  132. #define __NR_set_robust_list 99
  133. #define __NR_get_robust_list 100
  134. #define __NR_nanosleep 101
  135. #define __NR_getitimer 102
  136. #define __NR_setitimer 103
  137. #define __NR_kexec_load 104
  138. #define __NR_init_module 105
  139. #define __NR_delete_module 106
  140. #define __NR_timer_create 107
  141. #define __NR_timer_gettime 108
  142. #define __NR_timer_getoverrun 109
  143. #define __NR_timer_settime 110
  144. #define __NR_timer_delete 111
  145. #define __NR_clock_settime 112
  146. #define __NR_clock_gettime 113
  147. #define __NR_clock_getres 114
  148. #define __NR_clock_nanosleep 115
  149. #define __NR_syslog 116
  150. #define __NR_ptrace 117
  151. #define __NR_sched_setparam 118
  152. #define __NR_sched_setscheduler 119
  153. #define __NR_sched_getscheduler 120
  154. #define __NR_sched_getparam 121
  155. #define __NR_sched_setaffinity 122
  156. #define __NR_sched_getaffinity 123
  157. #define __NR_sched_yield 124
  158. #define __NR_sched_get_priority_max 125
  159. #define __NR_sched_get_priority_min 126
  160. #define __NR_sched_rr_get_interval 127
  161. #define __NR_restart_syscall 128
  162. #define __NR_kill 129
  163. #define __NR_tkill 130
  164. #define __NR_tgkill 131
  165. #define __NR_sigaltstack 132
  166. #define __NR_rt_sigsuspend 133
  167. #define __NR_rt_sigaction 134
  168. #define __NR_rt_sigprocmask 135
  169. #define __NR_rt_sigpending 136
  170. #define __NR_rt_sigtimedwait 137
  171. #define __NR_rt_sigqueueinfo 138
  172. #define __NR_rt_sigreturn 139
  173. #define __NR_setpriority 140
  174. #define __NR_getpriority 141
  175. #define __NR_reboot 142
  176. #define __NR_setregid 143
  177. #define __NR_setgid 144
  178. #define __NR_setreuid 145
  179. #define __NR_setuid 146
  180. #define __NR_setresuid 147
  181. #define __NR_getresuid 148
  182. #define __NR_setresgid 149
  183. #define __NR_getresgid 150
  184. #define __NR_setfsuid 151
  185. #define __NR_setfsgid 152
  186. #define __NR_times 153
  187. #define __NR_setpgid 154
  188. #define __NR_getpgid 155
  189. #define __NR_getsid 156
  190. #define __NR_setsid 157
  191. #define __NR_getgroups 158
  192. #define __NR_setgroups 159
  193. #define __NR_uname 160
  194. #define __NR_sethostname 161
  195. #define __NR_setdomainname 162
  196. #define __NR_getrlimit 163
  197. #define __NR_setrlimit 164
  198. #define __NR_getrusage 165
  199. #define __NR_umask 166
  200. #define __NR_prctl 167
  201. #define __NR_getcpu 168
  202. #define __NR_gettimeofday 169
  203. #define __NR_settimeofday 170
  204. #define __NR_adjtimex 171
  205. #define __NR_getpid 172
  206. #define __NR_getppid 173
  207. #define __NR_getuid 174
  208. #define __NR_geteuid 175
  209. #define __NR_getgid 176
  210. #define __NR_getegid 177
  211. #define __NR_gettid 178
  212. #define __NR_sysinfo 179
  213. #define __NR_mq_open 180
  214. #define __NR_mq_unlink 181
  215. #define __NR_mq_timedsend 182
  216. #define __NR_mq_timedreceive 183
  217. #define __NR_mq_notify 184
  218. #define __NR_mq_getsetattr 185
  219. #define __NR_msgget 186
  220. #define __NR_msgctl 187
  221. #define __NR_msgrcv 188
  222. #define __NR_msgsnd 189
  223. #define __NR_semget 190
  224. #define __NR_semctl 191
  225. #define __NR_semtimedop 192
  226. #define __NR_semop 193
  227. #define __NR_shmget 194
  228. #define __NR_shmctl 195
  229. #define __NR_shmat 196
  230. #define __NR_shmdt 197
  231. #define __NR_socket 198
  232. #define __NR_socketpair 199
  233. #define __NR_bind 200
  234. #define __NR_listen 201
  235. #define __NR_accept 202
  236. #define __NR_connect 203
  237. #define __NR_getsockname 204
  238. #define __NR_getpeername 205
  239. #define __NR_sendto 206
  240. #define __NR_recvfrom 207
  241. #define __NR_setsockopt 208
  242. #define __NR_getsockopt 209
  243. #define __NR_shutdown 210
  244. #define __NR_sendmsg 211
  245. #define __NR_recvmsg 212
  246. #define __NR_readahead 213
  247. #define __NR_brk 214
  248. #define __NR_munmap 215
  249. #define __NR_mremap 216
  250. #define __NR_add_key 217
  251. #define __NR_request_key 218
  252. #define __NR_keyctl 219
  253. #define __NR_clone 220
  254. #define __NR_execve 221
  255. #define __NR3264_mmap 222
  256. #define __NR3264_fadvise64 223
  257. #define __NR_swapon 224
  258. #define __NR_swapoff 225
  259. #define __NR_mprotect 226
  260. #define __NR_msync 227
  261. #define __NR_mlock 228
  262. #define __NR_munlock 229
  263. #define __NR_mlockall 230
  264. #define __NR_munlockall 231
  265. #define __NR_mincore 232
  266. #define __NR_madvise 233
  267. #define __NR_remap_file_pages 234
  268. #define __NR_mbind 235
  269. #define __NR_get_mempolicy 236
  270. #define __NR_set_mempolicy 237
  271. #define __NR_migrate_pages 238
  272. #define __NR_move_pages 239
  273. #define __NR_rt_tgsigqueueinfo 240
  274. #define __NR_perf_event_open 241
  275. #define __NR_accept4 242
  276. #define __NR_recvmmsg 243
  277. ///*
  278. // * Architectures may provide up to 16 syscalls of their own
  279. // * starting with this value.
  280. // */
  281. //#define __NR_arch_specific_syscall 244
  282. #define __NR_wait4 260
  283. #define __NR_prlimit64 261
  284. #define __NR_fanotify_init 262
  285. #define __NR_fanotify_mark 263
  286. #define __NR_name_to_handle_at 264
  287. #define __NR_open_by_handle_at 265
  288. #define __NR_clock_adjtime 266
  289. #define __NR_syncfs 267
  290. #define __NR_setns 268
  291. #define __NR_sendmmsg 269
  292. #define __NR_process_vm_readv 270
  293. #define __NR_process_vm_writev 271
  294. #define __NR_kcmp 272
  295. #define __NR_finit_module 273
  296. #define __NR_sched_setattr 274
  297. #define __NR_sched_getattr 275
  298. #define __NR_renameat2 276
  299. #define __NR_seccomp 277
  300. #define __NR_getrandom 278
  301. #define __NR_memfd_create 279
  302. #define __NR_bpf 280
  303. #define __NR_execveat 281
  304. #define __NR_userfaultfd 282
  305. #define __NR_membarrier 283
  306. #define __NR_mlock2 284
  307. #define __NR_copy_file_range 285
  308. #define __NR_preadv2 286
  309. #define __NR_pwritev2 287
  310. #define __NR_pkey_mprotect 288
  311. #define __NR_pkey_alloc 289
  312. #define __NR_pkey_free 290
  313. #define __NR_statx 291
  314. #undef __NR_syscalls
  315. #define __NR_syscalls 292
  316. ///*
  317. // * All syscalls below here should go away really,
  318. // * these are provided for both review and as a porting
  319. // * help for the C library version.
  320. //*
  321. // * Last chance: are any of these important enough to
  322. // * enable by default?
  323. // */
  324. //#ifdef __ARCH_WANT_SYSCALL_NO_AT
  325. //ZZZZ#define __NR_open 1024
  326. //#define __NR_link 1025
  327. //__SYSCALL(__NR_link, sys_link)
  328. //#define __NR_unlink 1026
  329. //#define __NR_mknod 1027
  330. //#define __NR_chmod 1028
  331. //__SYSCALL(__NR_chmod, sys_chmod)
  332. //#define __NR_chown 1029
  333. //__SYSCALL(__NR_chown, sys_chown)
  334. //#define __NR_mkdir 1030
  335. //__SYSCALL(__NR_mkdir, sys_mkdir)
  336. //#define __NR_rmdir 1031
  337. //__SYSCALL(__NR_rmdir, sys_rmdir)
  338. //#define __NR_lchown 1032
  339. //__SYSCALL(__NR_lchown, sys_lchown)
  340. //#define __NR_access 1033
  341. //#define __NR_rename 1034
  342. //#define __NR_readlink 1035
  343. //#define __NR_symlink 1036
  344. //__SYSCALL(__NR_symlink, sys_symlink)
  345. //#define __NR_utimes 1037
  346. //__SYSCALL(__NR_utimes, sys_utimes)
  347. //#define __NR3264_stat 1038
  348. //__SC_3264(__NR3264_stat, sys_stat64, sys_newstat)
  349. //#define __NR3264_lstat 1039
  350. //__SC_3264(__NR3264_lstat, sys_lstat64, sys_newlstat)
  351. //
  352. //#undef __NR_syscalls
  353. //#define __NR_syscalls (__NR3264_lstat+1)
  354. //#endif /* __ARCH_WANT_SYSCALL_NO_AT */
  355. //
  356. //#ifdef __ARCH_WANT_SYSCALL_NO_FLAGS
  357. //#define __NR_pipe 1040
  358. //#define __NR_dup2 1041
  359. //#define __NR_epoll_create 1042
  360. //__SYSCALL(__NR_epoll_create, sys_epoll_create)
  361. //#define __NR_inotify_init 1043
  362. //__SYSCALL(__NR_inotify_init, sys_inotify_init)
  363. //#define __NR_eventfd 1044
  364. //__SYSCALL(__NR_eventfd, sys_eventfd)
  365. //#define __NR_signalfd 1045
  366. //__SYSCALL(__NR_signalfd, sys_signalfd)
  367. //
  368. //#undef __NR_syscalls
  369. //#define __NR_syscalls (__NR_signalfd+1)
  370. //#endif /* __ARCH_WANT_SYSCALL_NO_FLAGS */
  371. //
  372. /* #if (__BITS_PER_LONG == 32 || defined(__SYSCALL_COMPAT)) && \
  373. defined(__ARCH_WANT_SYSCALL_OFF_T)
  374. */
  375. //#define __NR_sendfile 1046
  376. //__SYSCALL(__NR_sendfile, sys_sendfile)
  377. //#define __NR_ftruncate 1047
  378. //__SYSCALL(__NR_ftruncate, sys_ftruncate)
  379. //#define __NR_truncate 1048
  380. //__SYSCALL(__NR_truncate, sys_truncate)
  381. //#define __NR_stat 1049
  382. //#define __NR_lstat 1050
  383. //__SYSCALL(__NR_lstat, sys_newlstat)
  384. //ZZ#define __NR_fstat 1051
  385. //#define __NR_fcntl 1052
  386. //#define __NR_fadvise64 1053
  387. //#define __ARCH_WANT_SYS_FADVISE64
  388. //__SYSCALL(__NR_fadvise64, sys_fadvise64)
  389. //#define __NR_newfstatat 1054
  390. //#define __ARCH_WANT_SYS_NEWFSTATAT
  391. //__SYSCALL(__NR_newfstatat, sys_newfstatat)
  392. //#define __NR_fstatfs 1055
  393. //__SYSCALL(__NR_fstatfs, sys_fstatfs)
  394. //#define __NR_statfs 1056
  395. //__SYSCALL(__NR_statfs, sys_statfs)
  396. //#define __NR_lseek 1057
  397. //#define __NR_mmap 1058
  398. //
  399. //#undef __NR_syscalls
  400. //#define __NR_syscalls (__NR_mmap+1)
  401. //#endif /* 32 bit off_t syscalls */
  402. //
  403. //#ifdef __ARCH_WANT_SYSCALL_DEPRECATED
  404. //#define __NR_alarm 1059
  405. //#define __ARCH_WANT_SYS_ALARM
  406. //__SYSCALL(__NR_alarm, sys_alarm)
  407. //#define __NR_getpgrp 1060
  408. //#define __ARCH_WANT_SYS_GETPGRP
  409. //__SYSCALL(__NR_getpgrp, sys_getpgrp)
  410. //#define __NR_pause 1061
  411. //#define __ARCH_WANT_SYS_PAUSE
  412. //__SYSCALL(__NR_pause, sys_pause)
  413. //#define __NR_time 1062
  414. //#define __ARCH_WANT_SYS_TIME
  415. //#define __ARCH_WANT_COMPAT_SYS_TIME
  416. //__SYSCALL(__NR_time, sys_time)
  417. //#define __NR_utime 1063
  418. //#define __ARCH_WANT_SYS_UTIME
  419. //__SYSCALL(__NR_utime, sys_utime)
  420. //
  421. //#define __NR_creat 1064
  422. //__SYSCALL(__NR_creat, sys_creat)
  423. //#define __NR_getdents 1065
  424. //#define __NR_futimesat 1066
  425. //__SYSCALL(__NR_futimesat, sys_futimesat)
  426. //#define __NR_select 1067
  427. //#define __ARCH_WANT_SYS_SELECT
  428. //__SYSCALL(__NR_select, sys_select)
  429. //#define __NR_poll 1068
  430. //#define __NR_epoll_wait 1069
  431. //__SYSCALL(__NR_epoll_wait, sys_epoll_wait)
  432. //#define __NR_ustat 1070
  433. //__SYSCALL(__NR_ustat, sys_ustat)
  434. //#define __NR_vfork 1071
  435. //__SYSCALL(__NR_vfork, sys_vfork)
  436. //#define __NR_oldwait4 1072
  437. //__SYSCALL(__NR_oldwait4, sys_wait4)
  438. //#define __NR_recv 1073
  439. //__SYSCALL(__NR_recv, sys_recv)
  440. //#define __NR_send 1074
  441. //__SYSCALL(__NR_send, sys_send)
  442. //#define __NR_bdflush 1075
  443. //__SYSCALL(__NR_bdflush, sys_bdflush)
  444. //#define __NR_umount 1076
  445. //__SYSCALL(__NR_umount, sys_oldumount)
  446. //#define __ARCH_WANT_SYS_OLDUMOUNT
  447. //#define __NR_uselib 1077
  448. //__SYSCALL(__NR_uselib, sys_uselib)
  449. //#define __NR__sysctl 1078
  450. //__SYSCALL(__NR__sysctl, sys_sysctl)
  451. //
  452. //#define __NR_fork 1079
  453. //#ifdef CONFIG_MMU
  454. //__SYSCALL(__NR_fork, sys_fork)
  455. //#else
  456. //__SYSCALL(__NR_fork, sys_ni_syscall)
  457. //#endif /* CONFIG_MMU */
  458. //
  459. //#undef __NR_syscalls
  460. //#define __NR_syscalls (__NR_fork+1)
  461. //
  462. //#endif /* __ARCH_WANT_SYSCALL_DEPRECATED */
  463. //
  464. ///*
  465. // * 32 bit systems traditionally used different
  466. // * syscalls for off_t and loff_t arguments, while
  467. // * 64 bit systems only need the off_t version.
  468. // * For new 32 bit platforms, there is no need to
  469. // * implement the old 32 bit off_t syscalls, so
  470. // * they take different names.
  471. // * Here we map the numbers so that both versions
  472. // * use the same syscall table layout.
  473. // */
  474. //#if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
  475. #define __NR_fcntl __NR3264_fcntl
  476. #define __NR_statfs __NR3264_statfs
  477. #define __NR_fstatfs __NR3264_fstatfs
  478. #define __NR_truncate __NR3264_truncate
  479. #define __NR_ftruncate __NR3264_ftruncate
  480. #define __NR_lseek __NR3264_lseek
  481. #define __NR_sendfile __NR3264_sendfile
  482. #define __NR_newfstatat __NR3264_fstatat
  483. #define __NR_fstat __NR3264_fstat
  484. #define __NR_mmap __NR3264_mmap
  485. #define __NR_fadvise64 __NR3264_fadvise64
  486. //#ifdef __NR3264_stat
  487. //#define __NR_stat __NR3264_stat
  488. //#define __NR_lstat __NR3264_lstat
  489. //#endif
  490. //#else
  491. //#define __NR_fcntl64 __NR3264_fcntl
  492. //#define __NR_statfs64 __NR3264_statfs
  493. //#define __NR_fstatfs64 __NR3264_fstatfs
  494. //#define __NR_truncate64 __NR3264_truncate
  495. //#define __NR_ftruncate64 __NR3264_ftruncate
  496. //#define __NR_llseek __NR3264_lseek
  497. //#define __NR_sendfile64 __NR3264_sendfile
  498. //#define __NR_fstatat64 __NR3264_fstatat
  499. //#define __NR_fstat64 __NR3264_fstat
  500. //#define __NR_mmap2 __NR3264_mmap
  501. //#define __NR_fadvise64_64 __NR3264_fadvise64
  502. //#ifdef __NR3264_stat
  503. //#define __NR_stat64 __NR3264_stat
  504. //#define __NR_lstat64 __NR3264_lstat
  505. //#endif
  506. //#endif
  507. #endif /* __VKI_SCNUMS_ARM64_LINUX_H */
  508. /*--------------------------------------------------------------------*/
  509. /*--- end vki-scnums-arm64-linux.h ---*/
  510. /*--------------------------------------------------------------------*/