#define ·RestartSysCall 0 #define ·Exit 1 #define ·Fork 2 #define ·Read 3 #define ·Write 4 #define ·Open 5 #define ·Close 6 #define ·Create 8 #define ·Link 9 #define ·Unlink 10 #define ·ExecVe 11 #define ·Chdir 12 #define ·MkNod 14 #define ·Chmod 15 #define ·LChown 16 #define ·LSeek 19 #define ·GetPid 20 #define ·Mount 21 #define ·SetUid 23 #define ·GetUid 24 #define ·PTrace 26 #define ·Pause 29 #define ·Access 33 #define ·Nice 34 #define ·Sync 36 #define ·Kill 37 #define ·Rename 38 #define ·Mkdir 39 #define ·Rmdir 40 #define ·Dup 41 #define ·Pipe 42 #define ·Times 43 #define ·Brk 45 #define ·SetGid 46 #define ·GetGid 47 #define ·GetEUid 49 #define ·GetEGid 50 #define ·Acct 51 #define ·UMount2 52 #define ·IoCtl 54 #define ·FCntl 55 #define ·SetPGid 57 #define ·UMask 60 #define ·Chroot 61 #define ·UStat 62 #define ·Dup2 63 #define ·GetPPid 64 #define ·GetPGrp 65 #define ·SetSId 66 #define ·SigAction 67 #define ·SetReUid 70 #define ·SetReGid 71 #define ·SigSuspend 72 #define ·SigPending 73 #define ·SetHostname 74 #define ·SetRLimit 75 #define ·GetRUsage 77 #define ·GetTimeOfDayTime32 78 #define ·SetTimeOfDayTime32 79 #define ·GetGroups 80 #define ·SetGroups 81 #define ·SymLink 83 #define ·ReadLink 85 #define ·UseLib 86 #define ·SwapOn 87 #define ·Reboot 88 #define ·MUnmap 91 #define ·Truncate 92 #define ·FTruncate 93 #define ·FChmod 94 #define ·FChown 95 #define ·GetPriority 96 #define ·SetPriority 97 #define ·StatFs 99 #define ·FStatFs 100 #define ·SysLog 103 #define ·SetITimer 104 #define ·GetITimer 105 #define ·Stat 106 #define ·LStat 107 #define ·FStat 108 #define ·VHangUp 111 #define ·Wait4 114 #define ·SwapOff 115 #define ·SysInfo 116 #define ·FSync 118 #define ·SigReturn 119 #define ·Clone 120 #define ·SetDomainName 121 #define ·UName 122 #define ·AdjTimex 124 #define ·MProtect 125 #define ·SigProcMask 126 #define ·InItModule 128 #define ·DeleteModule 129 #define ·QuotaCtl 131 #define ·GetPGid 132 #define ·FChdir 133 #define ·BdFlush 134 #define ·SysFs 135 #define ·Personality 136 #define ·SetFsUid 138 #define ·SetFsGid 139 #define ·LlSeek 140 #define ·GetDents 141 #define ·NewSelect 142 #define ·FLock 143 #define ·MSync 144 #define ·ReadV 145 #define ·WriteV 146 #define ·GetsId 147 #define ·FdAtAsync 148 #define ·SysCtl 149 #define ·MLock 150 #define ·MUnlock 151 #define ·MLockAll 152 #define ·MUnlockAll 153 #define ·SchedSetParam 154 #define ·SchedGetParam 155 #define ·SchedSetScheduler 156 #define ·SchedGetScheduler 157 #define ·SchedYield 158 #define ·SchedGetPriorityMax 159 #define ·SchedGetPriorityMin 160 #define ·SchedRrGetInterval 161 #define ·NanoSleep 162 #define ·MRemap 163 #define ·SetResUid 164 #define ·GetResUid 165 #define ·Poll 168 #define ·NfsServCtl 169 #define ·SetResGid 170 #define ·GetResGid 171 #define ·PrCtl 172 #define ·RtSigReturn 173 #define ·RtSigAction 174 #define ·RtSigProcMask 175 #define ·RtSigPending 176 #define ·RtSigTimedWait 177 #define ·RtSigQueueInfo 178 #define ·RtSigSuspend 179 #define ·PRead64 180 #define ·PWrite64 181 #define ·Chown 182 #define ·GetCwd 183 #define ·CapGet 184 #define ·CapSet 185 #define ·SiGaltStack 186 #define ·SendFile 187 #define ·VFork 190 #define ·UGetRLimit 191 #define ·MMap2 192 #define ·Truncate64 193 #define ·FTruncate64 194 #define ·Stat64 195 #define ·LStat64 196 #define ·FStat64 197 #define ·LChown32 198 #define ·GetUid32 199 #define ·GetGid32 200 #define ·GetEUid32 201 #define ·GetEGid32 202 #define ·SetReUid32 203 #define ·SetReGid32 204 #define ·GetGroups32 205 #define ·SetGroups32 206 #define ·FChown32 207 #define ·SetResUid32 208 #define ·GetResUid32 209 #define ·SetResGid32 210 #define ·GetResGid32 211 #define ·Chown32 212 #define ·SetUid32 213 #define ·SetGid32 214 #define ·SetFsUid32 215 #define ·SetFsGid32 216 #define ·GetDents64 217 #define ·PivotRoot 218 #define ·MLoaded 219 #define ·MAdvise 220 #define ·FCntl64 221 #define ·GetTId 224 #define ·ReadAhead 225 #define ·SetXAttr 226 #define ·LSetXAttr 227 #define ·FSetXAttr 228 #define ·GetXAttr 229 #define ·LGetXAttr 230 #define ·FGetXAttr 231 #define ·ListXAttr 232 #define ·LListXAttr 233 #define ·FListXAttr 234 #define ·RemoveXAttr 235 #define ·LRemoveXAttr 236 #define ·FRemoveXAttr 237 #define ·TKill 238 #define ·SendFile64 239 #define ·Futex 240 #define ·SchedSetAffinity 241 #define ·SchedGetAffinity 242 #define ·IoSetUp 243 #define ·IoDestroy 244 #define ·IoGetEvents 245 #define ·IoSubmit 246 #define ·IoCancel 247 #define ·ExitGroup 248 #define ·LookupDCookie 249 #define ·EPollCreate 250 #define ·EPollCtl 251 #define ·EPollWait 252 #define ·RemapFilePages 253 #define ·SetTIdAddress 256 #define ·TimerCreate 257 #define ·TimerSetTime32 258 #define ·TimerGetTime32 259 #define ·TimerGetOverrun 260 #define ·TimerDelete 261 #define ·ClockSetTime32 262 #define ·ClockGetTime32 263 #define ·ClockGetResTime32 264 #define ·ClockNanoSleepTime32 265 #define ·StatFs64 266 #define ·FStatFs64 267 #define ·TgKill 268 #define ·UTimes 269 #define ·FAdvise6464 270 #define ·ArmFAdvise6464 270 #define ·PciConfigIoBase 271 #define ·PciConfigRead 272 #define ·PciConfigWrite 273 #define ·MQOpen 274 #define ·MQUnlink 275 #define ·MQTimedSend 276 #define ·MQTimedReceive 277 #define ·MQNotify 278 #define ·MQGetSetAttr 279 #define ·WaitId 280 #define ·Socket 281 #define ·Bind 282 #define ·Connect 283 #define ·Listen 284 #define ·Accept 285 #define ·GetSockName 286 #define ·GetPeerName 287 #define ·SocketPair 288 #define ·Send 289 #define ·SendTo 290 #define ·Recv 291 #define ·RecvFrom 292 #define ·Shutdown 293 #define ·SetSockOpt 294 #define ·GetSockOpt 295 #define ·SendMsg 296 #define ·RecvMsg 297 #define ·SemOp 298 #define ·SemGet 299 #define ·SemCtl 300 #define ·MsgSend 301 #define ·MsgRecv 302 #define ·MsgGet 303 #define ·MsgCtl 304 #define ·ShmAt 305 #define ·ShmDt 306 #define ·ShmGet 307 #define ·ShmCtl 308 #define ·AddKey 309 #define ·RequestKey 310 #define ·KeyCtl 311 #define ·SemTimeDop 312 #define ·VServer 313 #define ·IoPrIoSet 314 #define ·IoPrIoGet 315 #define ·INotifyInIt 316 #define ·INotifyAddWatch 317 #define ·INotifyRmWatch 318 #define ·MBind 319 #define ·GetMemPolicy 320 #define ·SetMemPolicy 321 #define ·OpenAt 322 #define ·MkdirAt 323 #define ·MkNodAt 324 #define ·FChownAt 325 #define ·FuTimesAt 326 #define ·FStatAt64 327 #define ·UnlinkAt 328 #define ·RenameAt 329 #define ·LinkAt 330 #define ·SymLinkAt 331 #define ·ReadLinkAt 332 #define ·FChmodAt 333 #define ·FAccessAt 334 #define ·PSelect6 335 #define ·PPoll 336 #define ·UnShare 337 #define ·SetRobustList 338 #define ·GetRobustList 339 #define ·Splice 340 #define ·SyncFileRange2 341 #define ·ArmSyncFileRange 341 #define ·Tee 342 #define ·VmSplice 343 #define ·MovePages 344 #define ·GetCpu 345 #define ·EPollPWait 346 #define ·KExecLoad 347 #define ·UTimeNsAt 348 #define ·SignalFd 349 #define ·TimerFdCreate 350 #define ·EventFd 351 #define ·FAllocate 352 #define ·TimerFdSetTime32 353 #define ·TimerFdGetTime32 354 #define ·SignalFd4 355 #define ·EventFd2 356 #define ·EPollCreate1 357 #define ·Dup3 358 #define ·Pipe2 359 #define ·INotifyInIt1 360 #define ·PreAdv 361 #define ·PWriteV 362 #define ·RtTgSigQueueInfo 363 #define ·PerFEventOpen 364 #define ·RecvMMsg 365 #define ·Accept4 366 #define ·FaNotifyInIt 367 #define ·FaNotifyMark 368 #define ·PrLimit64 369 #define ·NameToHandleAt 370 #define ·OpenByHandleAt 371 #define ·ClockAdjTime 372 #define ·SyncFs 373 #define ·SendMMsg 374 #define ·SetNs 375 #define ·ProcessVmReadV 376 #define ·ProcessVmWriteV 377 #define ·KCmp 378 #define ·FinItModule 379 #define ·SchedSetAttr 380 #define ·SchedGetAttr 381 #define ·RenameAt2 382 #define ·SeccoMp 383 #define ·GetRandom 384 #define ·MemFdCreate 385 #define ·BpF 386 #define ·ExecVeAt 387 #define ·UserFaultFd 388 #define ·MemBarrier 389 #define ·MLock2 390 #define ·CopyFileRange 391 #define ·PreAdv2 392 #define ·PWriteV2 393 #define ·PKeyMProtect 394 #define ·PKeyAllOc 395 #define ·PKeyFree 396 #define ·StatX 397 #define ·RSeq 398 #define ·IoPGetEvents 399 #define ·MigratePages 400 #define ·KExecFileLoad 401 #define ·ClockGetTime64 403 #define ·ClockSetTime64 404 #define ·ClockAdjTime64 405 #define ·ClockGetResTime64 406 #define ·ClockNanoSleepTime64 407 #define ·TimerGetTime64 408 #define ·TimerSetTime64 409 #define ·TimerFdGetTime64 410 #define ·TimerFdSetTime64 411 #define ·UTimeNsAtTime64 412 #define ·PSelect6Time64 413 #define ·PPollTime64 414 #define ·IoPGetEventsTime64 416 #define ·RecvMMsgTime64 417 #define ·MQTimedSendTime64 418 #define ·MQTimedReceiveTime64 419 #define ·SemTimeDopTime64 420 #define ·RtSigTimedWaitTime64 421 #define ·FutexTime64 422 #define ·SchedRrGetIntervalTime64 423 #define ·PidFdSendSignal 424 #define ·IoUringSetUp 425 #define ·IoUringEnter 426 #define ·IoUringRegister 427 #define ·OpenTree 428 #define ·MoveMount 429 #define ·FsOpen 430 #define ·FsConfig 431 #define ·FsMount 432 #define ·FsPick 433 #define ·PidFdOpen 434 #define ·Clone3 435 #define ·CloseRange 436 #define ·OpenAt2 437 #define ·PidFdGetFd 438 #define ·FAccessAt2 439 /* assembly routines */ #define asm __asm__ __volatile__ #ifdef __thumb__ #define __ASM____R7__ #define __asm_syscall(...) do { \ asm( "mov %1,r7 ; mov r7,%2 ; svc 0 ; mov r7,%1" \ : "=r"(r0), "=&r"((int){0}) : __VA_ARGS__ : "memory"); \ return r0; \ } while (0) #else #define __ASM____R7__ __asm__("r7") #define __asm_syscall(...) do { \ asm( "svc 0" \ : "=r"(r0) : __VA_ARGS__ : "memory"); \ return r0; \ } while (0) #endif #ifdef __thumb2__ #define R7_OPERAND "rI"(r7) #else #define R7_OPERAND "r"(r7) #endif static inline long _syscall0(long n) { register long r7 __ASM____R7__ = n; register long r0 __asm__("r0"); __asm_syscall(R7_OPERAND); } static inline long _syscall1(long n, long a) { register long r7 __ASM____R7__ = n; register long r0 __asm__("r0") = a; __asm_syscall(R7_OPERAND, "0"(r0)); } static inline long _syscall2(long n, long a, long b) { register long r7 __ASM____R7__ = n; register long r0 __asm__("r0") = a; register long r1 __asm__("r1") = b; __asm_syscall(R7_OPERAND, "0"(r0), "r"(r1)); } static inline long _syscall3(long n, long a, long b, long c) { register long r7 __ASM____R7__ = n; register long r0 __asm__("r0") = a; register long r1 __asm__("r1") = b; register long r2 __asm__("r2") = c; __asm_syscall(R7_OPERAND, "0"(r0), "r"(r1), "r"(r2)); } static inline long _syscall4(long n, long a, long b, long c, long d) { register long r7 __ASM____R7__ = n; register long r0 __asm__("r0") = a; register long r1 __asm__("r1") = b; register long r2 __asm__("r2") = c; register long r3 __asm__("r3") = d; __asm_syscall(R7_OPERAND, "0"(r0), "r"(r1), "r"(r2), "r"(r3)); } static inline long _syscall5(long n, long a, long b, long c, long d, long e) { register long r7 __ASM____R7__ = n; register long r0 __asm__("r0") = a; register long r1 __asm__("r1") = b; register long r2 __asm__("r2") = c; register long r3 __asm__("r3") = d; register long r4 __asm__("r4") = e; __asm_syscall(R7_OPERAND, "0"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4)); } static inline long _syscall6(long n, long a, long b, long c, long d, long e, long f) { register long r7 __ASM____R7__ = n; register long r0 __asm__("r0") = a; register long r1 __asm__("r1") = b; register long r2 __asm__("r2") = c; register long r3 __asm__("r3") = d; register long r4 __asm__("r4") = e; register long r5 __asm__("r5") = f; __asm_syscall(R7_OPERAND, "0"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4), "r"(r5)); }