From 7eb20457ff3d80cc81d54204ffd2c9edaf991905 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Wed, 17 Nov 2021 17:38:58 -0800 Subject: automated platform specific code parsing --- sys/linux/arm/syscall.h | 496 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 496 insertions(+) create mode 100644 sys/linux/arm/syscall.h (limited to 'sys/linux/arm/syscall.h') diff --git a/sys/linux/arm/syscall.h b/sys/linux/arm/syscall.h new file mode 100644 index 0000000..e7a8f89 --- /dev/null +++ b/sys/linux/arm/syscall.h @@ -0,0 +1,496 @@ +#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)); +} + + -- cgit v1.2.1