#define __NR_io_setup 1238 #define __NR_io_destroy 1239 #define __NR_io_getevents 1240 #define __NR_io_submit 1241 #define __NR_io_cancel 1242 #define __ia64_raw_syscall(fname, sname) \ __asm__ (".text\n" \ ".globl " SYMSTR(fname) "\n" \ ".proc " SYMSTR(fname) "\n" \ SYMSTR(fname) ":\n" \ " mov r15=" SYMSTR( __NR_ ## sname ) "\n" \ " break 0x100000\n" \ " ;;\n" \ " cmp.eq p6,p0=-1,r10\n" \ " ;;\n" \ " (p6) sub r8=0,r8\n" \ " br.ret.sptk.few b0\n" \ ".size " SYMSTR(fname) ", . - " SYMSTR(fname) "\n" \ ".endp " SYMSTR(fname) "\n" \ ); #define io_syscall0(type, name) \ extern type name(void); \ __ia64_raw_syscall(name); #define io_syscall1(type, fname, sname, type1, arg1) \ extern type fname(type1 arg1); \ __ia64_raw_syscall(fname, sname); #define io_syscall2(type, fname, sname, type1, arg1, type2, arg2) \ extern type fname(type1 arg1, type2 arg2); \ __ia64_raw_syscall(fname, sname); #define io_syscall3(type, fname, sname, type1, arg1, type2, arg2, type3, arg3) \ extern type fname(type1 arg1, type2 arg2, type3 arg3); \ __ia64_raw_syscall(fname, sname); #define io_syscall4(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4) \ extern type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4); \ __ia64_raw_syscall(fname, sname); #define io_syscall5(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5) \ extern type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5); \ __ia64_raw_syscall(fname, sname);