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

static inline
long _syscall0(long n)
{
    ulong ret;
    asm("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "memory");
    return ret;
}

static inline
long _syscall1(long n, long a1)
{
    ulong ret;
    asm("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "r11", "memory");
    return ret;
}

static inline
long _syscall2(long n, long a1, long a2)
{
    ulong ret;
    asm("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2)
                          : "rcx", "r11", "memory");
    return ret;
}

static inline
long _syscall3(long n, long a1, long a2, long a3)
{
    ulong ret;
    asm("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
                          "d"(a3) : "rcx", "r11", "memory");
    return ret;
}

static inline
long _syscall4(long n, long a1, long a2, long a3, long a4)
{
    ulong ret;
    register long r10 __asm__("r10") = a4;
    asm("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
                          "d"(a3), "r"(r10): "rcx", "r11", "memory");
    return ret;
}

static inline
long _syscall5(long n, long a1, long a2, long a3, long a4, long a5)
{
    ulong ret;
    register long r10 __asm__("r10") = a4;
    register long r8 __asm__("r8") = a5;
    asm("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
                          "d"(a3), "r"(r10), "r"(r8) : "rcx", "r11", "memory");
    return ret;
}

static inline
long _syscall6(long n, long a1, long a2, long a3, long a4, long a5, long a6)
{
    ulong ret;
    register long r10 __asm__("r10") = a4;
    register long r8 __asm__("r8") = a5;
    register long r9 __asm__("r9") = a6;
    asm("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
                          "d"(a3), "r"(r10), "r"(r8), "r"(r9) : "rcx", "r11", "memory");
    return ret;
}