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 START_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 swpipl(__new_ipl) \
70 ({ unsigned long __old_ipl; \
71 __asm__ __volatile__( \
72 "bis %1,%1,$16\n\t" \
73 ".long 53\n\t" \
74 "bis $0,$0,%0" \
75 : "=r" (__old_ipl) \
76 : "r" (__new_ipl) \
77 : "$0", "$1", "$16", "$22", "$23", "$24", "$25"); \
78 __old_ipl; })
79
80 #endif