1 #ifndef __ALPHA_SYSTEM_H
2 #define __ALPHA_SYSTEM_H
3
4
5
6
7
8
9
10
11
12
13
14
15 #define INIT_PCB 0xfffffc0000300000
16 #define INIT_STACK 0xfffffc0000302000
17 #define START_ADDR 0xfffffc0000304000
18 #define SIZE (32*1024)
19
20
21
22
23 #define PAL_halt 0
24 #define PAL_cflush 1
25 #define PAL_draina 2
26 #define PAL_cobratt 9
27 #define PAL_bpt 128
28 #define PAL_bugchk 129
29 #define PAL_chmk 131
30 #define PAL_callsys 131
31 #define PAL_imb 134
32 #define PAL_rduniq 158
33 #define PAL_wruniq 159
34 #define PAL_gentrap 170
35 #define PAL_nphalt 190
36
37
38
39
40 #define PAL_swppal 10
41 #define PAL_mfpr_vptb 41
42
43
44
45
46 #define PAL_mtpr_mces 17
47 #define PAL_wrfen 43
48 #define PAL_wrvptptr 45
49 #define PAL_jtopal 46
50 #define PAL_swpctx 48
51 #define PAL_wrval 49
52 #define PAL_rdval 50
53 #define PAL_tbi 51
54 #define PAL_wrent 52
55 #define PAL_swpipl 53
56 #define PAL_rdps 54
57 #define PAL_wrkgp 55
58 #define PAL_wrusp 56
59 #define PAL_wrperfmon 57
60 #define PAL_rdusp 58
61 #define PAL_whami 60
62 #define PAL_rtsys 61
63 #define PAL_rti 63
64
65 #ifndef mb
66 #define mb() __asm__ __volatile__("mb": : :"memory")
67 #endif
68
69 #define invalidate_all() \
70 __asm__ __volatile__( \
71 "lda $16,-2($31)\n\t" \
72 ".long 51" \
73 : : :"$1", "$16", "$17", "$22","$23","$24","$25")
74
75 #define invalidate() \
76 __asm__ __volatile__( \
77 "lda $16,-1($31)\n\t" \
78 ".long 51" \
79 : : :"$1", "$16", "$17", "$22","$23","$24","$25")
80
81 #define swpipl(__new_ipl) \
82 ({ unsigned long __old_ipl; \
83 __asm__ __volatile__( \
84 "bis %1,%1,$16\n\t" \
85 ".long 53\n\t" \
86 "bis $0,$0,%0" \
87 : "=r" (__old_ipl) \
88 : "r" (__new_ipl) \
89 : "$0", "$1", "$16", "$22", "$23", "$24", "$25"); \
90 __old_ipl; })
91
92 #endif