4 #include "globalconfig.h"
7 #define Thread_ready 0x1
8 #define Thread_utcb_ip_sp 0x2
9 #define Thread_receiving 0x4
10 #define Thread_polling 0x8
11 #define Thread_ipc_in_progress 0x10
12 #define Thread_send_in_progress 0x20
13 #define Thread_busy 0x40
14 #define Thread_cancel 0x100
15 #define Thread_dead 0x200
16 #define Thread_delayed_deadline 0x2000
17 #define Thread_delayed_ipc 0x4000
18 #define Thread_fpu_owner 0x8000
19 #define Thread_alien 0x10000
20 #define Thread_dis_alien 0x20000
21 #define Thread_transfer_in_progress 0x80000
23 #define Thread_ipc_sending_mask (Thread_send_in_progress | \
25 #define Thread_ipc_receiving_mask (Thread_receiving | \
27 Thread_transfer_in_progress)
28 #define Thread_ipc_mask (Thread_ipc_in_progress | \
29 Thread_ipc_sending_mask | \
30 Thread_ipc_receiving_mask)
32 // stackframe structure
44 #define REG_ESP (10*4)
51 #define REG_RAX (THREAD_BLOCK_SIZE - 6*8)
52 #define REG_RBP (THREAD_BLOCK_SIZE - 7*8)
53 #define REG_RBX (THREAD_BLOCK_SIZE - 8*8)
54 #define REG_RDI (THREAD_BLOCK_SIZE - 9*8)
55 #define REG_RSI (THREAD_BLOCK_SIZE - 10*8)
57 #define REG_RDX (THREAD_BLOCK_SIZE - 11*8)
58 #define REG_RCX (THREAD_BLOCK_SIZE - 12*8)
60 #define REG_R8 (THREAD_BLOCK_SIZE - 13*8)
61 #define REG_R9 (THREAD_BLOCK_SIZE - 14*8)
62 #define REG_R10 (THREAD_BLOCK_SIZE - 15*8)
63 #define REG_R11 (THREAD_BLOCK_SIZE - 16*8)
64 #define REG_R12 (THREAD_BLOCK_SIZE - 17*8)
65 #define REG_R13 (THREAD_BLOCK_SIZE - 18*8)
66 #define REG_R14 (THREAD_BLOCK_SIZE - 19*8)
67 #define REG_R15 (THREAD_BLOCK_SIZE - 20*8)
80 #define REG_RSI (10*8)
81 #define REG_RDI (11*8)
82 #define REG_RBX (12*8)
83 #define REG_RBP (13*8)
84 #define REG_RAX (14*8)
85 #define REG_RIP (15*8)
87 #define REG_RFL (17*8)
88 #define REG_RSP (18*8)
94 # define RETURN_DOPE 0x6000 // three dwords
95 # define TCB_ADDRESS_MASK 0x01fff800
97 # define RETURN_DOPE 0x4000 // two dwords
98 # define TCB_ADDRESS_MASK 0x1ffff800
102 #if defined(CONFIG_JDB) && defined(CONFIG_JDB_ACCOUNTING)
104 #define CNT_CONTEXT_SWITCH incl (VAL__MEM_LAYOUT__TBUF_STATUS_PAGE+ \
105 OFS__TBUF_STATUS__KERNCNTS)
106 #define CNT_ADDR_SPACE_SWITCH incl (VAL__MEM_LAYOUT__TBUF_STATUS_PAGE+ \
107 OFS__TBUF_STATUS__KERNCNTS + 4)
108 #define CNT_SHORTCUT_FAILED incl (VAL__MEM_LAYOUT__TBUF_STATUS_PAGE+ \
109 OFS__TBUF_STATUS__KERNCNTS + 8)
110 #define CNT_SHORTCUT_SUCCESS incl (VAL__MEM_LAYOUT__TBUF_STATUS_PAGE+ \
111 OFS__TBUF_STATUS__KERNCNTS + 12)
112 #define CNT_IOBMAP_TLB_FLUSH incl (VAL__MEM_LAYOUT__TBUF_STATUS_PAGE+ \
113 OFS__TBUF_STATUS__KERNCNTS + 40)
117 #define CNT_CONTEXT_SWITCH
118 #define CNT_ADDR_SPACE_SWITCH
119 #define CNT_SHORTCUT_FAILED
120 #define CNT_SHORTCUT_SUCCESS
121 #define CNT_IOBMAP_TLB_FLUSH