This source file includes following definitions.
- start_bh_atomic
- end_bh_atomic
- start_thread
1
2
3
4
5
6
7 #ifndef __ASM_ALPHA_PROCESSOR_H
8 #define __ASM_ALPHA_PROCESSOR_H
9
10
11
12
13 #define TASK_SIZE (0x20000000000UL)
14
15
16
17
18 #define EISA_bus 1
19 #define EISA_bus__is_a_macro
20 #define MCA_bus 0
21 #define MCA_bus__is_a_macro
22
23
24
25
26 #define wp_works_ok 1
27 #define wp_works_ok__is_a_macro
28
29 struct thread_struct {
30 unsigned long ksp;
31 unsigned long usp;
32 unsigned long ptbr;
33 unsigned int pcc;
34 unsigned int asn;
35 unsigned long unique;
36 unsigned long flags;
37 unsigned long res1, res2;
38 };
39
40 #define INIT_MMAP { &init_task, 0xfffffc0000300000, 0xfffffc0010000000, \
41 PAGE_SHARED, VM_READ | VM_WRITE | VM_EXEC }
42
43 #define INIT_TSS { \
44 0, 0, 0, \
45 0, 0, 0, \
46 0, 0, 0, \
47 }
48
49
50
51
52
53
54 extern inline void start_bh_atomic(void)
55 {
56 unsigned long dummy;
57 __asm__ __volatile__(
58 "\n1:\t"
59 "ldq_l %0,%1\n\t"
60 "addq %0,1,%0\n\t"
61 "stq_c %0,%1\n\t"
62 "beq %0,1b\n"
63 : "=r" (dummy), "=m" (intr_count)
64 : "0" (0));
65 }
66
67 extern inline void end_bh_atomic(void)
68 {
69 unsigned long dummy;
70 __asm__ __volatile__(
71 "\n1:\t"
72 "ldq_l %0,%1\n\t"
73 "subq %0,1,%0\n\t"
74 "stq_c %0,%1\n\t"
75 "beq %0,1b\n"
76 : "=r" (dummy), "=m" (intr_count)
77 : "0" (0));
78 }
79
80
81
82
83 static inline void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp)
84 {
85 regs->pc = pc;
86 wrusp(sp);
87 }
88
89 #endif