Add directio support to Solaris
[fio.git] / os / indirect.h
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