00001
00007
00008 #ifndef __L4SYS__INCLUDE__ARCH_AMD64__L4API_L4V2__SYSCALLS_H__
00009 #define __L4SYS__INCLUDE__ARCH_AMD64__L4API_L4V2__SYSCALLS_H__
00010
00011 #include <l4/sys/syscalls_gen.h>
00012
00013 #if 1
00014
00015
00016 # define L4_SYSCALL_id_nearest "int $0x31 \n\t"
00017 # define L4_SYSCALL_fpage_unmap "int $0x32 \n\t"
00018 # define L4_SYSCALL_thread_switch "int $0x33 \n\t"
00019 # define L4_SYSCALL_thread_schedule "int $0x34 \n\t"
00020 # define L4_SYSCALL_lthread_ex_regs "int $0x35 \n\t"
00021 # define L4_SYSCALL_task_new "int $0x36 \n\t"
00022 # define L4_SYSCALL_privctrl "int $0x37 \n\t"
00023 # define L4_SYSCALL(name) L4_SYSCALL_ ## name
00024
00025 #else
00026
00027 # ifdef CONFIG_L4_ABS_SYSCALLS
00028 # define L4_SYSCALL(s) "call __l4sys_"#s"_direct@plt \n\t"
00029 # else
00030 # define L4_SYSCALL(s) "call *__l4sys_"#s" \n\t"
00031 # endif
00032
00033 #endif
00034
00035 #define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
00036
00037 #ifdef PROFILE
00038 #include "syscalls-l42-profile.h"
00039 #else
00040 # if GCC_VERSION < 303
00041 # error gcc >= 3.3 required
00042 # else
00043 # include "syscalls-l42-gcc3.h"
00044 # endif
00045
00046
00047
00048 #endif
00049
00050 L4_INLINE void *
00051 l4_kernel_interface(void)
00052 {
00053 void *ret;
00054 asm (" lock; nop " : "=a"(ret) );
00055 return ret;
00056 }
00057
00058 #include <l4/sys/syscalls-impl.h>
00059
00060 #endif