Commit | Line | Data |
---|---|---|
12cbb469 JA |
1 | #ifndef _INDIRECT_H_ |
2 | #define _INDIRECT_H_ | |
3 | ||
4 | #include "syslet.h" | |
5 | ||
6 | union indirect_params { | |
7 | struct { | |
8 | u32 flags; | |
9 | } file_flags; | |
10 | struct syslet_args syslet; | |
11 | }; | |
12 | ||
13 | #ifdef __x86_64__ | |
14 | # define __NR_indirect 286 | |
15 | struct indirect_registers { | |
16 | u64 rax; | |
17 | u64 rdi; | |
18 | u64 rsi; | |
19 | u64 rdx; | |
20 | u64 r10; | |
21 | u64 r8; | |
22 | u64 r9; | |
23 | }; | |
24 | #elif defined __i386__ | |
25 | # define __NR_indirect 325 | |
26 | struct indirect_registers { | |
27 | u32 eax; | |
28 | u32 ebx; | |
29 | u32 ecx; | |
30 | u32 edx; | |
31 | u32 esi; | |
32 | u32 edi; | |
33 | u32 ebp; | |
34 | }; | |
35 | #endif | |
36 | ||
37 | #define FILL_IN(var, values...) \ | |
38 | (var) = (struct indirect_registers) { values, } | |
39 | ||
40 | #endif |