hake: adding missing include path to the k1om kernel
[barrelfish] / lib / barrelfish / include / arch / k1om / arch / threads.h
1 /**
2  * \file
3  * \brief Threads architecture-specific code
4  */
5
6 /*
7  * Copyright (c) 2007, 2008, 2009, 2010, ETH Zurich.
8  * All rights reserved.
9  *
10  * This file is distributed under the terms in the attached LICENSE file.
11  * If you do not find this file, copies can be found by writing to:
12  * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
13  */
14
15 #ifndef LIBBARRELFISH_ARCH_THREADS_H
16 #define LIBBARRELFISH_ARCH_THREADS_H
17
18 #include <barrelfish/syscall_arch.h>
19
20 /* this is a label defined in the assembler code that implements cap_invoke() */
21 extern void barrelfish_cap_invoke_post_syscall_instr(void);
22 extern void barrelfish_lrpc_post_syscall_instr(void);
23
24 #if 0 // Using the old format of dispatcher_frame and not called by anyone -akhi
25 /**
26  * Returns true iff the thread with the given save area has successfully
27  * performed a syscall. Used for the thread_invoke_cap_and_exit() hack.
28  */
29 static inline bool thread_check_syscall_succeeded(uintptr_t *save_area)
30 {
31     return ((save_area[RIP_REG] == (lvaddr_t)barrelfish_cap_invoke_post_syscall_instr
32              || save_area[RIP_REG] == (lvaddr_t)barrelfish_lrpc_post_syscall_instr)
33             && save_area[RAX_REG] == 0);
34 }
35 #endif
36
37 /**
38  * \brief Enable FPU trap.
39  */
40 static inline void fpu_trap_on(void)
41 {
42     errval_t err = sys_x86_fpu_trap_on();
43     assert_disabled(err_is_ok(err));
44 }
45
46 #endif // LIBBARRELFISH_ARCH_THREADS_H