aboutsummaryrefslogtreecommitdiff
path: root/sys/linux/arm64/syscall.h
blob: efe905eaa459653631ad96eb0c3eddb1cde28969 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
#define ·IoSetUp                                                    0
#define ·IoDestroy                                                  1
#define ·IoSubmit                                                   2
#define ·IoCancel                                                   3
#define ·IoGetEvents                                                4
#define ·SetXAttr                                                   5
#define ·LSetXAttr                                                  6
#define ·FSetXAttr                                                  7
#define ·GetXAttr                                                   8
#define ·LGetXAttr                                                  9
#define ·FGetXAttr                                                 10
#define ·ListXAttr                                                 11
#define ·LListXAttr                                                12
#define ·FListXAttr                                                13
#define ·RemoveXAttr                                               14
#define ·LRemoveXAttr                                              15
#define ·FRemoveXAttr                                              16
#define ·GetCwd                                                    17
#define ·LookupDCookie                                             18
#define ·EventFd2                                                  19
#define ·EPollCreate1                                              20
#define ·EPollCtl                                                  21
#define ·EPollPWait                                                22
#define ·Dup                                                       23
#define ·Dup3                                                      24
#define ·FCntl                                                     25
#define ·INotifyInIt1                                              26
#define ·INotifyAddWatch                                           27
#define ·INotifyRmWatch                                            28
#define ·IoCtl                                                     29
#define ·IoPrIoSet                                                 30
#define ·IoPrIoGet                                                 31
#define ·FLock                                                     32
#define ·MkNodAt                                                   33
#define ·MkdirAt                                                   34
#define ·UnlinkAt                                                  35
#define ·SymLinkAt                                                 36
#define ·LinkAt                                                    37
#define ·RenameAt                                                  38
#define ·UMount2                                                   39
#define ·Mount                                                     40
#define ·PivotRoot                                                 41
#define ·NfsServCtl                                                42
#define ·StatFs                                                    43
#define ·FStatFs                                                   44
#define ·Truncate                                                  45
#define ·FTruncate                                                 46
#define ·FAllocate                                                 47
#define ·FAccessAt                                                 48
#define ·Chdir                                                     49
#define ·FChdir                                                    50
#define ·Chroot                                                    51
#define ·FChmod                                                    52
#define ·FChmodAt                                                  53
#define ·FChownAt                                                  54
#define ·FChown                                                    55
#define ·OpenAt                                                    56
#define ·Close                                                     57
#define ·VHangUp                                                   58
#define ·Pipe2                                                     59
#define ·QuotaCtl                                                  60
#define ·GetDents64                                                61
#define ·LSeek                                                     62
#define ·Read                                                      63
#define ·Write                                                     64
#define ·ReadV                                                     65
#define ·WriteV                                                    66
#define ·PRead64                                                   67
#define ·PWrite64                                                  68
#define ·PreAdv                                                    69
#define ·PWriteV                                                   70
#define ·SendFile                                                  71
#define ·PSelect6                                                  72
#define ·PPoll                                                     73
#define ·SignalFd4                                                 74
#define ·VmSplice                                                  75
#define ·Splice                                                    76
#define ·Tee                                                       77
#define ·ReadLinkAt                                                78
#define ·NewFStatAt                                                79
#define ·FStat                                                     80
#define ·Sync                                                      81
#define ·FSync                                                     82
#define ·FdAtAsync                                                 83
#define ·SyncFileRange                                             84
#define ·TimerFdCreate                                             85
#define ·TimerFdSetTime                                            86
#define ·TimerFdGetTime                                            87
#define ·UTimeNsAt                                                 88
#define ·Acct                                                      89
#define ·CapGet                                                    90
#define ·CapSet                                                    91
#define ·Personality                                               92
#define ·Exit                                                      93
#define ·ExitGroup                                                 94
#define ·WaitId                                                    95
#define ·SetTIdAddress                                             96
#define ·UnShare                                                   97
#define ·Futex                                                     98
#define ·SetRobustList                                             99
#define ·GetRobustList                                            100
#define ·NanoSleep                                                101
#define ·GetITimer                                                102
#define ·SetITimer                                                103
#define ·KExecLoad                                                104
#define ·InItModule                                               105
#define ·DeleteModule                                             106
#define ·TimerCreate                                              107
#define ·TimerGetTime                                             108
#define ·TimerGetOverrun                                          109
#define ·TimerSetTime                                             110
#define ·TimerDelete                                              111
#define ·ClockSetTime                                             112
#define ·ClockGetTime                                             113
#define ·ClockGetRes                                              114
#define ·ClockNanoSleep                                           115
#define ·SysLog                                                   116
#define ·PTrace                                                   117
#define ·SchedSetParam                                            118
#define ·SchedSetScheduler                                        119
#define ·SchedGetScheduler                                        120
#define ·SchedGetParam                                            121
#define ·SchedSetAffinity                                         122
#define ·SchedGetAffinity                                         123
#define ·SchedYield                                               124
#define ·SchedGetPriorityMax                                      125
#define ·SchedGetPriorityMin                                      126
#define ·SchedRrGetInterval                                       127
#define ·RestartSysCall                                           128
#define ·Kill                                                     129
#define ·TKill                                                    130
#define ·TgKill                                                   131
#define ·SiGaltStack                                              132
#define ·RtSigSuspend                                             133
#define ·RtSigAction                                              134
#define ·RtSigProcMask                                            135
#define ·RtSigPending                                             136
#define ·RtSigTimedWait                                           137
#define ·RtSigQueueInfo                                           138
#define ·RtSigReturn                                              139
#define ·SetPriority                                              140
#define ·GetPriority                                              141
#define ·Reboot                                                   142
#define ·SetReGid                                                 143
#define ·SetGid                                                   144
#define ·SetReUid                                                 145
#define ·SetUid                                                   146
#define ·SetResUid                                                147
#define ·GetResUid                                                148
#define ·SetResGid                                                149
#define ·GetResGid                                                150
#define ·SetFsUid                                                 151
#define ·SetFsGid                                                 152
#define ·Times                                                    153
#define ·SetPGid                                                  154
#define ·GetPGid                                                  155
#define ·GetsId                                                   156
#define ·SetSId                                                   157
#define ·GetGroups                                                158
#define ·SetGroups                                                159
#define ·UName                                                    160
#define ·SetHostname                                              161
#define ·SetDomainName                                            162
#define ·GetRLimit                                                163
#define ·SetRLimit                                                164
#define ·GetRUsage                                                165
#define ·UMask                                                    166
#define ·PrCtl                                                    167
#define ·GetCpu                                                   168
#define ·GetTimeOfDay                                             169
#define ·SetTimeOfDay                                             170
#define ·AdjTimex                                                 171
#define ·GetPid                                                   172
#define ·GetPPid                                                  173
#define ·GetUid                                                   174
#define ·GetEUid                                                  175
#define ·GetGid                                                   176
#define ·GetEGid                                                  177
#define ·GetTId                                                   178
#define ·SysInfo                                                  179
#define ·MQOpen                                                   180
#define ·MQUnlink                                                 181
#define ·MQTimedSend                                              182
#define ·MQTimedReceive                                           183
#define ·MQNotify                                                 184
#define ·MQGetSetAttr                                             185
#define ·MsgGet                                                   186
#define ·MsgCtl                                                   187
#define ·MsgRecv                                                  188
#define ·MsgSend                                                  189
#define ·SemGet                                                   190
#define ·SemCtl                                                   191
#define ·SemTimeDop                                               192
#define ·SemOp                                                    193
#define ·ShmGet                                                   194
#define ·ShmCtl                                                   195
#define ·ShmAt                                                    196
#define ·ShmDt                                                    197
#define ·Socket                                                   198
#define ·SocketPair                                               199
#define ·Bind                                                     200
#define ·Listen                                                   201
#define ·Accept                                                   202
#define ·Connect                                                  203
#define ·GetSockName                                              204
#define ·GetPeerName                                              205
#define ·SendTo                                                   206
#define ·RecvFrom                                                 207
#define ·SetSockOpt                                               208
#define ·GetSockOpt                                               209
#define ·Shutdown                                                 210
#define ·SendMsg                                                  211
#define ·RecvMsg                                                  212
#define ·ReadAhead                                                213
#define ·Brk                                                      214
#define ·MUnmap                                                   215
#define ·MRemap                                                   216
#define ·AddKey                                                   217
#define ·RequestKey                                               218
#define ·KeyCtl                                                   219
#define ·Clone                                                    220
#define ·ExecVe                                                   221
#define ·MMap                                                     222
#define ·FAdvise64                                                223
#define ·SwapOn                                                   224
#define ·SwapOff                                                  225
#define ·MProtect                                                 226
#define ·MSync                                                    227
#define ·MLock                                                    228
#define ·MUnlock                                                  229
#define ·MLockAll                                                 230
#define ·MUnlockAll                                               231
#define ·MLoaded                                                  232
#define ·MAdvise                                                  233
#define ·RemapFilePages                                           234
#define ·MBind                                                    235
#define ·GetMemPolicy                                             236
#define ·SetMemPolicy                                             237
#define ·MigratePages                                             238
#define ·MovePages                                                239
#define ·RtTgSigQueueInfo                                         240
#define ·PerFEventOpen                                            241
#define ·Accept4                                                  242
#define ·RecvMMsg                                                 243
#define ·Wait4                                                    260
#define ·PrLimit64                                                261
#define ·FaNotifyInIt                                             262
#define ·FaNotifyMark                                             263
#define ·NameToHandleAt                                           264
#define ·OpenByHandleAt                                           265
#define ·ClockAdjTime                                             266
#define ·SyncFs                                                   267
#define ·SetNs                                                    268
#define ·SendMMsg                                                 269
#define ·ProcessVmReadV                                           270
#define ·ProcessVmWriteV                                          271
#define ·KCmp                                                     272
#define ·FinItModule                                              273
#define ·SchedSetAttr                                             274
#define ·SchedGetAttr                                             275
#define ·RenameAt2                                                276
#define ·SeccoMp                                                  277
#define ·GetRandom                                                278
#define ·MemFdCreate                                              279
#define ·BpF                                                      280
#define ·ExecVeAt                                                 281
#define ·UserFaultFd                                              282
#define ·MemBarrier                                               283
#define ·MLock2                                                   284
#define ·CopyFileRange                                            285
#define ·PreAdv2                                                  286
#define ·PWriteV2                                                 287
#define ·PKeyMProtect                                             288
#define ·PKeyAllOc                                                289
#define ·PKeyFree                                                 290
#define ·StatX                                                    291
#define ·IoPGetEvents                                             292
#define ·RSeq                                                     293
#define ·KExecFileLoad                                            294
#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__

#define __asm_syscall(...) do { \
    asm( "svc 0" \
    : "=r"(x0) : __VA_ARGS__ : "memory", "cc"); \
    return x0; \
    } while (0)

static inline
long _syscall0(long n)
{
    register long x8 __asm__("x8") = n;
    register long x0 __asm__("x0");
    __asm_syscall("r"(x8));
}

static inline
long _syscall1(long n, long a)
{
    register long x8 __asm__("x8") = n;
    register long x0 __asm__("x0") = a;
    __asm_syscall("r"(x8), "0"(x0));
}

static inline
long _syscall2(long n, long a, long b)
{
    register long x8 __asm__("x8") = n;
    register long x0 __asm__("x0") = a;
    register long x1 __asm__("x1") = b;
    __asm_syscall("r"(x8), "0"(x0), "r"(x1));
}

static inline
long _syscall3(long n, long a, long b, long c)
{
    register long x8 __asm__("x8") = n;
    register long x0 __asm__("x0") = a;
    register long x1 __asm__("x1") = b;
    register long x2 __asm__("x2") = c;
    __asm_syscall("r"(x8), "0"(x0), "r"(x1), "r"(x2));
}

static inline
long _syscall4(long n, long a, long b, long c, long d)
{
    register long x8 __asm__("x8") = n;
    register long x0 __asm__("x0") = a;
    register long x1 __asm__("x1") = b;
    register long x2 __asm__("x2") = c;
    register long x3 __asm__("x3") = d;
    __asm_syscall("r"(x8), "0"(x0), "r"(x1), "r"(x2), "r"(x3));
}

static inline
long _syscall5(long n, long a, long b, long c, long d, long e)
{
    register long x8 __asm__("x8") = n;
    register long x0 __asm__("x0") = a;
    register long x1 __asm__("x1") = b;
    register long x2 __asm__("x2") = c;
    register long x3 __asm__("x3") = d;
    register long x4 __asm__("x4") = e;
    __asm_syscall("r"(x8), "0"(x0), "r"(x1), "r"(x2), "r"(x3), "r"(x4));
}

static inline
long _syscall6(long n, long a, long b, long c, long d, long e, long f)
{
    register long x8 __asm__("x8") = n;
    register long x0 __asm__("x0") = a;
    register long x1 __asm__("x1") = b;
    register long x2 __asm__("x2") = c;
    register long x3 __asm__("x3") = d;
    register long x4 __asm__("x4") = e;
    register long x5 __asm__("x5") = f;
    __asm_syscall("r"(x8), "0"(x0), "r"(x1), "r"(x2), "r"(x3), "r"(x4), "r"(x5));
}