aboutsummaryrefslogtreecommitdiff
path: root/sys/linux/arm64/syscall.h
blob: eb8476245f5c98804a6d8cacd21ee2be29285d29 (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));
}