summaryrefslogtreecommitdiff
path: root/os/indirect.h
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2008-02-24 21:36:00 +0100
committerJens Axboe <jens.axboe@oracle.com>2008-02-24 21:36:00 +0100
commitf3de88a7a8806016ebb27af3f4be1fced172122e (patch)
tree66d45af2dbcf76b2058a7cc8ad937dc3ba7bcec5 /os/indirect.h
parent6ae1f57f2cb8661b97b770372eeb3694f6d5a744 (diff)
downloadfio-f3de88a7a8806016ebb27af3f4be1fced172122e.tar.gz
fio-f3de88a7a8806016ebb27af3f4be1fced172122e.tar.bz2
Move syslet/indirect bits into the OS specific directory
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'os/indirect.h')
-rw-r--r--os/indirect.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/os/indirect.h b/os/indirect.h
new file mode 100644
index 00000000..fba6b6be
--- /dev/null
+++ b/os/indirect.h
@@ -0,0 +1,40 @@
+#ifndef _INDIRECT_H_
+#define _INDIRECT_H_
+
+#include "syslet.h"
+
+union indirect_params {
+ struct {
+ u32 flags;
+ } file_flags;
+ struct syslet_args syslet;
+};
+
+#ifdef __x86_64__
+# define __NR_indirect 286
+struct indirect_registers {
+ u64 rax;
+ u64 rdi;
+ u64 rsi;
+ u64 rdx;
+ u64 r10;
+ u64 r8;
+ u64 r9;
+};
+#elif defined __i386__
+# define __NR_indirect 325
+struct indirect_registers {
+ u32 eax;
+ u32 ebx;
+ u32 ecx;
+ u32 edx;
+ u32 esi;
+ u32 edi;
+ u32 ebp;
+};
+#endif
+
+#define FILL_IN(var, values...) \
+ (var) = (struct indirect_registers) { values, }
+
+#endif