source: trunk/packages/xen-common/xen-common/tools/libaio/src/syscall-ia64.h @ 34

Last change on this file since 34 was 34, checked in by hartmans, 18 years ago

Add xen and xen-common

File size: 1.6 KB
Line 
1#define __NR_io_setup           1238
2#define __NR_io_destroy         1239
3#define __NR_io_getevents       1240
4#define __NR_io_submit          1241
5#define __NR_io_cancel          1242
6
7#define __ia64_raw_syscall(fname, sname) \
8        __asm__ (".text\n"                                              \
9                ".globl " SYMSTR(fname) "\n"                            \
10                ".proc " SYMSTR(fname) "\n"                             \
11                SYMSTR(fname) ":\n"                                     \
12                "       mov r15=" SYMSTR( __NR_ ## sname ) "\n"         \
13                "       break 0x100000\n"                               \
14                "       ;;\n"                                           \
15                "       cmp.eq p6,p0=-1,r10\n"                          \
16                "       ;;\n"                                           \
17                "       (p6) sub r8=0,r8\n"                             \
18                "       br.ret.sptk.few b0\n"                           \
19                ".size " SYMSTR(fname) ", . - " SYMSTR(fname) "\n"      \
20                ".endp " SYMSTR(fname) "\n"                             \
21        );
22
23#define io_syscall0(type, name)                                         \
24        extern type name(void);                                         \
25        __ia64_raw_syscall(name);
26
27#define io_syscall1(type, fname, sname, type1, arg1)                    \
28        extern type fname(type1 arg1);                                  \
29        __ia64_raw_syscall(fname, sname);
30
31#define io_syscall2(type, fname, sname, type1, arg1, type2, arg2)       \
32        extern type fname(type1 arg1, type2 arg2);                      \
33        __ia64_raw_syscall(fname, sname);
34
35#define io_syscall3(type, fname, sname, type1, arg1, type2, arg2, type3, arg3)  \
36        extern type fname(type1 arg1, type2 arg2, type3 arg3);          \
37        __ia64_raw_syscall(fname, sname);
38
39#define io_syscall4(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4)     \
40        extern type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4);              \
41        __ia64_raw_syscall(fname, sname);
42
43#define io_syscall5(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5)        \
44        extern type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5);                  \
45        __ia64_raw_syscall(fname, sname);
Note: See TracBrowser for help on using the repository browser.