This source file includes following definitions.
- thread_saved_pc
1
2
3
4
5
6
7 #ifndef __ASM_SPARC_PROCESSOR_H
8 #define __ASM_SPARC_PROCESSOR_H
9
10 #include <linux/string.h>
11
12 #include <asm/psr.h>
13 #include <asm/ptrace.h>
14 #include <asm/head.h>
15 #include <asm/signal.h>
16
17
18
19
20 #define EISA_bus 0
21 #define EISA_bus__is_a_macro
22 #define MCA_bus 0
23 #define MCA_bus__is_a_macro
24
25
26
27
28
29 extern char wp_works_ok;
30
31
32 #define TASK_SIZE (KERNBASE)
33
34
35 struct thread_struct {
36 unsigned long uwinmask __attribute__ ((aligned (8)));
37
38
39 unsigned long sig_address __attribute__ ((aligned (8)));
40 unsigned long sig_desc;
41
42
43 unsigned long ksp __attribute__ ((aligned (8)));
44 unsigned long kpc;
45 unsigned long kpsr;
46 unsigned long kwim;
47
48
49
50
51 #define NSWINS 8
52 struct reg_window reg_window[NSWINS] __attribute__ ((aligned (8)));
53 unsigned long rwbuf_stkptrs[NSWINS] __attribute__ ((aligned (8)));
54 unsigned long w_saved;
55
56
57 unsigned long pgd_ptr;
58
59
60
61
62
63 int context;
64
65
66 unsigned long float_regs[64] __attribute__ ((aligned (8)));
67 unsigned long fsr;
68 unsigned long fpqdepth;
69 struct fpq {
70 unsigned long *insn_addr;
71 unsigned long insn;
72 } fpqueue[16];
73 struct sigstack sstk_info;
74 };
75
76 #define INIT_MMAP { &init_mm, (0xf0000000UL), (0xfe100000UL), \
77 __pgprot(0x0) , VM_READ | VM_WRITE | VM_EXEC }
78
79 #define INIT_TSS { \
80 \
81 0, 0, 0, 0, 0, 0, 0, \
82 \
83 { { { 0, }, { 0, } }, }, \
84 \
85 { 0, 0, 0, 0, 0, 0, 0, 0, }, \
86 \
87 0, (long) &swapper_pg_dir, -1, \
88 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
89 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
90 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
91 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, \
92 \
93 0, 0, { { 0, 0, }, }, \
94 \
95 { 0, 0, }, \
96 }
97
98
99 extern inline unsigned long thread_saved_pc(struct thread_struct *t)
100 {
101 return ((struct pt_regs *)
102 ((t->ksp&(~0xfff))+(0x1000-TRACEREG_SZ)))->pc;
103 }
104
105
106
107
108 extern void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp);
109
110 #endif
111