1
2
3
4
5
6
7
8
9
10
11#ifndef _XTENSA_THREAD_INFO_H
12#define _XTENSA_THREAD_INFO_H
13
14#ifdef __KERNEL__
15
16#ifndef __ASSEMBLY__
17# include <asm/processor.h>
18#endif
19
20
21
22
23
24
25
26
27
28#ifndef __ASSEMBLY__
29
30#if XTENSA_HAVE_COPROCESSORS
31
32typedef struct xtregs_coprocessor {
33 xtregs_cp0_t cp0;
34 xtregs_cp1_t cp1;
35 xtregs_cp2_t cp2;
36 xtregs_cp3_t cp3;
37 xtregs_cp4_t cp4;
38 xtregs_cp5_t cp5;
39 xtregs_cp6_t cp6;
40 xtregs_cp7_t cp7;
41} xtregs_coprocessor_t;
42
43#endif
44
45struct thread_info {
46 struct task_struct *task;
47 unsigned long flags;
48 unsigned long status;
49 __u32 cpu;
50 __s32 preempt_count;
51
52 mm_segment_t addr_limit;
53
54 unsigned long cpenable;
55
56
57#if XTENSA_HAVE_COPROCESSORS
58 xtregs_coprocessor_t xtregs_cp;
59#endif
60 xtregs_user_t xtregs_user;
61};
62
63#endif
64
65
66
67
68
69#ifndef __ASSEMBLY__
70
71#define INIT_THREAD_INFO(tsk) \
72{ \
73 .task = &tsk, \
74 .flags = 0, \
75 .cpu = 0, \
76 .preempt_count = INIT_PREEMPT_COUNT, \
77 .addr_limit = KERNEL_DS, \
78}
79
80#define init_thread_info (init_thread_union.thread_info)
81#define init_stack (init_thread_union.stack)
82
83
84static inline struct thread_info *current_thread_info(void)
85{
86 struct thread_info *ti;
87 __asm__("extui %0,a1,0,13\n\t"
88 "xor %0, a1, %0" : "=&r" (ti) : );
89 return ti;
90}
91
92#else
93
94
95#define GET_THREAD_INFO(reg,sp) \
96 extui reg, sp, 0, 13; \
97 xor reg, sp, reg
98#endif
99
100
101
102
103
104
105
106
107#define TIF_SYSCALL_TRACE 0
108#define TIF_SIGPENDING 1
109#define TIF_NEED_RESCHED 2
110#define TIF_SINGLESTEP 3
111#define TIF_MEMDIE 5
112#define TIF_RESTORE_SIGMASK 6
113#define TIF_NOTIFY_RESUME 7
114#define TIF_DB_DISABLED 8
115
116#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
117#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
118#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
119#define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP)
120
121#define _TIF_WORK_MASK 0x0000FFFE
122#define _TIF_ALLWORK_MASK 0x0000FFFF
123
124
125
126
127
128
129
130
131#define TS_USEDFPU 0x0001
132
133#define THREAD_SIZE 8192
134#define THREAD_SIZE_ORDER 1
135
136#endif
137#endif
138