FEDRA emulsion software from the OPERA Collaboration
intlevel.h
Go to the documentation of this file.
1 /*******************************************************************
2  *
3  * COPYRIGHT (c) 2000 Matrox Electronic Systems Ltd.
4  * All Rights Reserved
5  *
6  *******************************************************************/
7 
8 /*******************************************************************
9  *
10  * Synopsis: Prototypes for interrupt sources.
11  *
12  * Notes:
13  *
14  *******************************************************************/
15 
16 #ifndef __INTLEVEL_H__
17 #define __INTLEVEL_H__
18 
19 #if !defined(_IM_LOCAL_CODE) && defined(SHOW_INCLUDE_FILE)
20 #pragma message ("#include "__FILE__)
21 #endif
22 
23 #include <linx_reg.h>
24 
25 /* Each section use 32 semaphores */
26 #define _MP_MAX_SEMA_BY_SECTION (64)
27 #define _MP_CONTROL_SEMA_OFFSET (0)
28 #define _MP_SOF_SEMA_OFFSET (_MP_CONTROL_SEMA_OFFSET + _MP_MAX_SEMA_BY_SECTION)
29 #define _MP_LINE_INT_SEMA_OFFSET (_MP_SOF_SEMA_OFFSET + _MP_MAX_SEMA_BY_SECTION)
30 #define _MP_EOW_SEMA_OFFSET (_MP_LINE_INT_SEMA_OFFSET + _MP_MAX_SEMA_BY_SECTION)
31 #define _MP_EOF_SEMA_OFFSET (_MP_EOW_SEMA_OFFSET + _MP_MAX_SEMA_BY_SECTION)
32 #define _MP_GPR_SEMA_OFFSET (_MP_EOF_SEMA_OFFSET + _MP_MAX_SEMA_BY_SECTION)
33 
34 #define _MP_INTLVL_MASK 0x3f /* Bit 0 to 63 */
35 #define _MP_SECTION_SHIFT 6
36 
37 /* Interrupt status 0 */
38 #define MP_OASIS_INTLVL_HOST_NOT_EMPTY (_MP_CONTROL_SEMA_OFFSET + 0)
39 #define MP_OASIS_INTFLG_HOST_NOT_EMPTY ((REG_LLONG_TYPE)0x1)
40 #define MP_OASIS_INTLVL_HOST_THRESHOLD (_MP_CONTROL_SEMA_OFFSET + 1)
41 #define MP_OASIS_INTFLG_HOST_THRESHOLD ((REG_LLONG_TYPE)0x2)
42 #define MP_OASIS_INTLVL_HOST_FULL (_MP_CONTROL_SEMA_OFFSET + 2)
43 #define MP_OASIS_INTFLG_HOST_FULL ((REG_LLONG_TYPE)0x4)
44 #define MP_OASIS_INTLVL_NODE_NOT_EMPTY (_MP_CONTROL_SEMA_OFFSET + 3)
45 #define MP_OASIS_INTFLG_NODE_NOT_EMPTY ((REG_LLONG_TYPE)0x8)
46 #define MP_OASIS_INTLVL_NODE_THRESHOLD (_MP_CONTROL_SEMA_OFFSET + 4)
47 #define MP_OASIS_INTFLG_NODE_THRESHOLD ((REG_LLONG_TYPE)0x10)
48 #define MP_OASIS_INTLVL_NODE_FULL (_MP_CONTROL_SEMA_OFFSET + 5)
49 #define MP_OASIS_INTFLG_NODE_FULL ((REG_LLONG_TYPE)0x20)
50 #define MP_OASIS_INTLVL_DEBUG_NOT_EMPTY (_MP_CONTROL_SEMA_OFFSET + 6)
51 #define MP_OASIS_INTFLG_DEBUG_NOT_EMPTY ((REG_LLONG_TYPE)0x40)
52 #define MP_OASIS_INTLVL_DEBUG_THRESHOLD (_MP_CONTROL_SEMA_OFFSET + 7)
53 #define MP_OASIS_INTFLG_DEBUG_THRESHOLD ((REG_LLONG_TYPE)0x80)
54 #define MP_OASIS_INTLVL_MSG_OUT_SOF (_MP_CONTROL_SEMA_OFFSET + 8)
55 #define MP_OASIS_INTFLG_MSG_OUT_SOF ((REG_LLONG_TYPE)0x100)
56 #define MP_OASIS_INTLVL_MSG_OUT_EOF (_MP_CONTROL_SEMA_OFFSET + 9)
57 #define MP_OASIS_INTFLG_MSG_OUT_EOF ((REG_LLONG_TYPE)0x200)
58 #define MP_OASIS_INTLVL_LINK1_INT (_MP_CONTROL_SEMA_OFFSET + 10)
59 #define MP_OASIS_INTFLG_LINK1_INT ((REG_LLONG_TYPE)0x400)
60 #define MP_OASIS_INTLVL_PA_INT (_MP_CONTROL_SEMA_OFFSET + 11)
61 #define MP_OASIS_INTFLG_PA_INT ((REG_LLONG_TYPE)0x800)
62 #define MP_OASIS_INTLVL_PPC_FAULT (_MP_CONTROL_SEMA_OFFSET + 12)
63 #define MP_OASIS_INTFLG_PPC_FAULT ((REG_LLONG_TYPE)0x1000)
64 #define MP_OASIS_INTLVL_MSG0_EOF (_MP_CONTROL_SEMA_OFFSET + 13)
65 #define MP_OASIS_INTFLG_MSG0_EOF ((REG_LLONG_TYPE)0x2000)
66 #define MP_OASIS_INTLVL_LINK0_EOF (_MP_CONTROL_SEMA_OFFSET + 14)
67 #define MP_OASIS_INTFLG_LINK0_EOF ((REG_LLONG_TYPE)0x4000)
68 #define MP_OASIS_INTLVL_LINK1_EOF (_MP_CONTROL_SEMA_OFFSET + 15)
69 #define MP_OASIS_INTFLG_LINK1_EOF ((REG_LLONG_TYPE)0x8000)
70 #define MP_OASIS_INTLVL_MEM_FAULT (_MP_CONTROL_SEMA_OFFSET + 16)
71 #define MP_OASIS_INTFLG_MEM_FAULT ((REG_LLONG_TYPE)0x10000)
72 #define MP_OASIS_INTLVL_MEM_CALIB (_MP_CONTROL_SEMA_OFFSET + 17)
73 #define MP_OASIS_INTFLG_MEM_CALIB ((REG_LLONG_TYPE)0x20000)
74 #define MP_OASIS_INTLVL_CHANNEL0_BC_ERR (_MP_CONTROL_SEMA_OFFSET + 18)
75 #define MP_OASIS_INTFLG_CHANNEL0_BC_ERR ((REG_LLONG_TYPE)0x40000)
76 #define MP_OASIS_INTLVL_CHANNEL1_BC_ERR (_MP_CONTROL_SEMA_OFFSET + 19)
77 #define MP_OASIS_INTFLG_CHANNEL1_BC_ERR ((REG_LLONG_TYPE)0x80000)
78 #define MP_OASIS_INTLVL_VID_STR_OUT_CHAN0 (_MP_CONTROL_SEMA_OFFSET + 20)
79 #define MP_OASIS_INTFLG_VID_STR_OUT_CHAN0 ((REG_LLONG_TYPE)0x100000)
80 #define MP_OASIS_INTLVL_VID_STR_OUT_CHAN1 (_MP_CONTROL_SEMA_OFFSET + 21)
81 #define MP_OASIS_INTFLG_VID_STR_OUT_CHAN1 ((REG_LLONG_TYPE)0x200000)
82 #define MP_OASIS_INTLVL_MSG_STR_TIMER0 (_MP_CONTROL_SEMA_OFFSET + 22)
83 #define MP_OASIS_INTFLG_MSG_STR_TIMER0 ((REG_LLONG_TYPE)0x400000)
84 #define MP_OASIS_INTLVL_MSG_STR_TIMER1 (_MP_CONTROL_SEMA_OFFSET + 23)
85 #define MP_OASIS_INTFLG_MSG_STR_TIMER1 ((REG_LLONG_TYPE)0x800000)
86 
87 
88 /* Interrupt status 1 */
89 #define MP_OASIS_INTLVL_STREAM_SOF(X) (_MP_SOF_SEMA_OFFSET + X)
90 #define MP_OASIS_INTFLG_STREAM_SOF(X) ((REG_LLONG_TYPE)1 << (REG_LLONG_TYPE)X)
91 
92 /* Interrupt status 2 */
93 #define MP_OASIS_INTLVL_STREAM_LINE_INT(X) (_MP_LINE_INT_SEMA_OFFSET + X)
94 #define MP_OASIS_INTFLG_STREAM_LINE_INT(X) ((REG_LLONG_TYPE)1 << (REG_LLONG_TYPE)X)
95 
96 /* Interrupt status 3 */
97 #define MP_OASIS_INTLVL_STREAM_EOW(X) (_MP_EOW_SEMA_OFFSET + X)
98 #define MP_OASIS_INTFLG_STREAM_EOW(X) ((REG_LLONG_TYPE)1 << (REG_LLONG_TYPE)X)
99 
100 /* Interrupt status 4 */
101 #define MP_OASIS_INTLVL_STREAM_EOF(X) (_MP_EOF_SEMA_OFFSET + X)
102 #define MP_OASIS_INTFLG_STREAM_EOF(X) ((REG_LLONG_TYPE)1 << (REG_LLONG_TYPE)X)
103 
104 /* Interrupt request */
105 /* We define all 64 of them so it will be easier to modify the define name as well of a generic one */
106 
107 /* the generic */
108 #define MP_OASIS_INTLVL_GPR(X) (_MP_GPR_SEMA_OFFSET + X)
109 #define MP_OASIS_INTFLG_GPR(X) ((REG_LLONG_TYPE)1 << (REG_LLONG_TYPE)X)
110 
111 /* the specific */
112 #define MP_OASIS_INTLVL_REPLY MP_OASIS_INTLVL_GPR(0)
113 #define MP_OASIS_INTFLG_REPLY MP_OASIS_INTFLG_GPR(0)
114 #define MP_OASIS_INTLVL_HTR MP_OASIS_INTLVL_GPR(1) /* Host Transfer Ready im_buf put() & im_buf_get()*/
115 #define MP_OASIS_INTFLG_HTR MP_OASIS_INTFLG_GPR(1)
116 #define MP_OASIS_INTLVL_LTR MP_OASIS_INTLVL_GPR(2) /* Local Transfer Ready im_buf put() & im_buf_get()*/
117 #define MP_OASIS_INTFLG_LTR MP_OASIS_INTFLG_GPR(2)
118 #define MP_OASIS_INTLVL_DISPLAY MP_OASIS_INTLVL_GPR(3) /* Interrupt to handle the display requests */
119 #define MP_OASIS_INTFLG_DISPLAY MP_OASIS_INTFLG_GPR(3)
120 #define MP_OASIS_INTLVL_UARTPPC MP_OASIS_INTLVL_GPR(4) /* Communication interrupt to the local */
121 #define MP_OASIS_INTFLG_UARTPPC MP_OASIS_INTFLG_GPR(4)
122 #define MP_OASIS_INTLVL_UARTHOST MP_OASIS_INTLVL_GPR(5) /* Communication interrupt to the host */
123 #define MP_OASIS_INTFLG_UARTHOST MP_OASIS_INTFLG_GPR(5)
124 #define MP_OASIS_INTLVL_GPR6 MP_OASIS_INTLVL_GPR(6)
125 #define MP_OASIS_INTFLG_GPR6 MP_OASIS_INTFLG_GPR(6)
126 #define MP_OASIS_INTLVL_GPR7 MP_OASIS_INTLVL_GPR(7)
127 #define MP_OASIS_INTFLG_GPR7 MP_OASIS_INTFLG_GPR(7)
128 #define MP_OASIS_INTLVL_GPR8 MP_OASIS_INTLVL_GPR(8)
129 #define MP_OASIS_INTFLG_GPR8 MP_OASIS_INTFLG_GPR(8)
130 #define MP_OASIS_INTLVL_GPR9 MP_OASIS_INTLVL_GPR(9)
131 #define MP_OASIS_INTFLG_GPR9 MP_OASIS_INTFLG_GPR(9)
132 #define MP_OASIS_INTLVL_GPR10 MP_OASIS_INTLVL_GPR(10)
133 #define MP_OASIS_INTFLG_GPR10 MP_OASIS_INTFLG_GPR(10)
134 #define MP_OASIS_INTLVL_GPR11 MP_OASIS_INTLVL_GPR(11)
135 #define MP_OASIS_INTFLG_GPR11 MP_OASIS_INTFLG_GPR(11)
136 #define MP_OASIS_INTLVL_GPR12 MP_OASIS_INTLVL_GPR(12)
137 #define MP_OASIS_INTFLG_GPR12 MP_OASIS_INTFLG_GPR(12)
138 #define MP_OASIS_INTLVL_GPR13 MP_OASIS_INTLVL_GPR(13)
139 #define MP_OASIS_INTFLG_GPR13 MP_OASIS_INTFLG_GPR(13)
140 #define MP_OASIS_INTLVL_GPR14 MP_OASIS_INTLVL_GPR(14)
141 #define MP_OASIS_INTFLG_GPR14 MP_OASIS_INTFLG_GPR(14)
142 #define MP_OASIS_INTLVL_GPR15 MP_OASIS_INTLVL_GPR(15)
143 #define MP_OASIS_INTFLG_GPR15 MP_OASIS_INTFLG_GPR(15)
144 #define MP_OASIS_INTLVL_GPR16 MP_OASIS_INTLVL_GPR(16)
145 #define MP_OASIS_INTFLG_GPR16 MP_OASIS_INTFLG_GPR(16)
146 #define MP_OASIS_INTLVL_GPR17 MP_OASIS_INTLVL_GPR(17)
147 #define MP_OASIS_INTFLG_GPR17 MP_OASIS_INTFLG_GPR(17)
148 #define MP_OASIS_INTLVL_GPR18 MP_OASIS_INTLVL_GPR(18)
149 #define MP_OASIS_INTFLG_GPR18 MP_OASIS_INTFLG_GPR(18)
150 #define MP_OASIS_INTLVL_GPR19 MP_OASIS_INTLVL_GPR(19)
151 #define MP_OASIS_INTFLG_GPR19 MP_OASIS_INTFLG_GPR(19)
152 #define MP_OASIS_INTLVL_GPR20 MP_OASIS_INTLVL_GPR(20)
153 #define MP_OASIS_INTFLG_GPR20 MP_OASIS_INTFLG_GPR(20)
154 #define MP_OASIS_INTLVL_GPR21 MP_OASIS_INTLVL_GPR(21)
155 #define MP_OASIS_INTFLG_GPR21 MP_OASIS_INTFLG_GPR(21)
156 #define MP_OASIS_INTLVL_GPR22 MP_OASIS_INTLVL_GPR(22)
157 #define MP_OASIS_INTFLG_GPR22 MP_OASIS_INTFLG_GPR(22)
158 #define MP_OASIS_INTLVL_GPR23 MP_OASIS_INTLVL_GPR(23)
159 #define MP_OASIS_INTFLG_GPR23 MP_OASIS_INTFLG_GPR(23)
160 #define MP_OASIS_INTLVL_GPR24 MP_OASIS_INTLVL_GPR(24)
161 #define MP_OASIS_INTFLG_GPR24 MP_OASIS_INTFLG_GPR(24)
162 #define MP_OASIS_INTLVL_GPR25 MP_OASIS_INTLVL_GPR(25)
163 #define MP_OASIS_INTFLG_GPR25 MP_OASIS_INTFLG_GPR(25)
164 #define MP_OASIS_INTLVL_GPR26 MP_OASIS_INTLVL_GPR(26)
165 #define MP_OASIS_INTFLG_GPR26 MP_OASIS_INTFLG_GPR(26)
166 #define MP_OASIS_INTLVL_GPR27 MP_OASIS_INTLVL_GPR(27)
167 #define MP_OASIS_INTFLG_GPR27 MP_OASIS_INTFLG_GPR(27)
168 #define MP_OASIS_INTLVL_GPR28 MP_OASIS_INTLVL_GPR(28)
169 #define MP_OASIS_INTFLG_GPR28 MP_OASIS_INTFLG_GPR(28)
170 #define MP_OASIS_INTLVL_GPR29 MP_OASIS_INTLVL_GPR(29)
171 #define MP_OASIS_INTFLG_GPR29 MP_OASIS_INTFLG_GPR(29)
172 #define MP_OASIS_INTLVL_GPR30 MP_OASIS_INTLVL_GPR(30)
173 #define MP_OASIS_INTFLG_GPR30 MP_OASIS_INTFLG_GPR(30)
174 #define MP_OASIS_INTLVL_GPR31 MP_OASIS_INTLVL_GPR(31)
175 #define MP_OASIS_INTFLG_GPR31 MP_OASIS_INTFLG_GPR(31)
176 #define MP_OASIS_INTLVL_GPR32 MP_OASIS_INTLVL_GPR(32)
177 #define MP_OASIS_INTFLG_GPR32 MP_OASIS_INTFLG_GPR(32)
178 #define MP_OASIS_INTLVL_GPR33 MP_OASIS_INTLVL_GPR(33)
179 #define MP_OASIS_INTFLG_GPR33 MP_OASIS_INTFLG_GPR(33)
180 #define MP_OASIS_INTLVL_GPR34 MP_OASIS_INTLVL_GPR(34)
181 #define MP_OASIS_INTFLG_GPR34 MP_OASIS_INTFLG_GPR(34)
182 #define MP_OASIS_INTLVL_GPR35 MP_OASIS_INTLVL_GPR(35)
183 #define MP_OASIS_INTFLG_GPR35 MP_OASIS_INTFLG_GPR(35)
184 #define MP_OASIS_INTLVL_GPR36 MP_OASIS_INTLVL_GPR(36)
185 #define MP_OASIS_INTFLG_GPR36 MP_OASIS_INTFLG_GPR(36)
186 #define MP_OASIS_INTLVL_GPR37 MP_OASIS_INTLVL_GPR(37)
187 #define MP_OASIS_INTFLG_GPR37 MP_OASIS_INTFLG_GPR(37)
188 #define MP_OASIS_INTLVL_GPR38 MP_OASIS_INTLVL_GPR(38)
189 #define MP_OASIS_INTFLG_GPR38 MP_OASIS_INTFLG_GPR(38)
190 #define MP_OASIS_INTLVL_GPR39 MP_OASIS_INTLVL_GPR(39)
191 #define MP_OASIS_INTFLG_GPR39 MP_OASIS_INTFLG_GPR(39)
192 #define MP_OASIS_INTLVL_GPR40 MP_OASIS_INTLVL_GPR(40)
193 #define MP_OASIS_INTFLG_GPR40 MP_OASIS_INTFLG_GPR(40)
194 #define MP_OASIS_INTLVL_GPR41 MP_OASIS_INTLVL_GPR(41)
195 #define MP_OASIS_INTFLG_GPR41 MP_OASIS_INTFLG_GPR(41)
196 #define MP_OASIS_INTLVL_GPR42 MP_OASIS_INTLVL_GPR(42)
197 #define MP_OASIS_INTFLG_GPR42 MP_OASIS_INTFLG_GPR(42)
198 #define MP_OASIS_INTLVL_GPR43 MP_OASIS_INTLVL_GPR(43)
199 #define MP_OASIS_INTFLG_GPR43 MP_OASIS_INTFLG_GPR(43)
200 #define MP_OASIS_INTLVL_GPR44 MP_OASIS_INTLVL_GPR(44)
201 #define MP_OASIS_INTFLG_GPR44 MP_OASIS_INTFLG_GPR(44)
202 #define MP_OASIS_INTLVL_GPR45 MP_OASIS_INTLVL_GPR(45)
203 #define MP_OASIS_INTFLG_GPR45 MP_OASIS_INTFLG_GPR(45)
204 #define MP_OASIS_INTLVL_GPR46 MP_OASIS_INTLVL_GPR(46)
205 #define MP_OASIS_INTFLG_GPR46 MP_OASIS_INTFLG_GPR(46)
206 #define MP_OASIS_INTLVL_GPR47 MP_OASIS_INTLVL_GPR(47)
207 #define MP_OASIS_INTFLG_GPR47 MP_OASIS_INTFLG_GPR(47)
208 #define MP_OASIS_INTLVL_GPR48 MP_OASIS_INTLVL_GPR(48)
209 #define MP_OASIS_INTFLG_GPR48 MP_OASIS_INTFLG_GPR(48)
210 #define MP_OASIS_INTLVL_GPR49 MP_OASIS_INTLVL_GPR(49)
211 #define MP_OASIS_INTFLG_GPR49 MP_OASIS_INTFLG_GPR(49)
212 #define MP_OASIS_INTLVL_GPR50 MP_OASIS_INTLVL_GPR(50)
213 #define MP_OASIS_INTFLG_GPR50 MP_OASIS_INTFLG_GPR(50)
214 #define MP_OASIS_INTLVL_GPR51 MP_OASIS_INTLVL_GPR(51)
215 #define MP_OASIS_INTFLG_GPR51 MP_OASIS_INTFLG_GPR(51)
216 #define MP_OASIS_INTLVL_GPR52 MP_OASIS_INTLVL_GPR(52)
217 #define MP_OASIS_INTFLG_GPR52 MP_OASIS_INTFLG_GPR(52)
218 #define MP_OASIS_INTLVL_GPR53 MP_OASIS_INTLVL_GPR(53)
219 #define MP_OASIS_INTFLG_GPR53 MP_OASIS_INTFLG_GPR(53)
220 #define MP_OASIS_INTLVL_GPR54 MP_OASIS_INTLVL_GPR(54)
221 #define MP_OASIS_INTFLG_GPR54 MP_OASIS_INTFLG_GPR(54)
222 #define MP_OASIS_INTLVL_GPR55 MP_OASIS_INTLVL_GPR(55)
223 #define MP_OASIS_INTFLG_GPR55 MP_OASIS_INTFLG_GPR(55)
224 #define MP_OASIS_INTLVL_GPR56 MP_OASIS_INTLVL_GPR(56)
225 #define MP_OASIS_INTFLG_GPR56 MP_OASIS_INTFLG_GPR(56)
226 #define MP_OASIS_INTLVL_GPR57 MP_OASIS_INTLVL_GPR(57)
227 #define MP_OASIS_INTFLG_GPR57 MP_OASIS_INTFLG_GPR(57)
228 #define MP_OASIS_INTLVL_LOGCTRL MP_OASIS_INTLVL_GPR(58)
229 #define MP_OASIS_INTFLG_LOGCTRL MP_OASIS_INTFLG_GPR(58)
230 #define MP_OASIS_INTLVL_TRACEDATA MP_OASIS_INTLVL_GPR(59)
231 #define MP_OASIS_INTFLG_TRACEDATA MP_OASIS_INTFLG_GPR(59)
232 #define MP_OASIS_INTLVL_CONIO MP_OASIS_INTLVL_GPR(60)
233 #define MP_OASIS_INTFLG_CONIO MP_OASIS_INTFLG_GPR(60)
234 #define MP_OASIS_INTLVL_FIO MP_OASIS_INTLVL_GPR(61)
235 #define MP_OASIS_INTFLG_FIO MP_OASIS_INTFLG_GPR(61)
236 #define MP_OASIS_INTLVL_TRK MP_OASIS_INTLVL_GPR(62)
237 #define MP_OASIS_INTFLG_TRK MP_OASIS_INTFLG_GPR(62)
238 #define MP_OASIS_INTLVL_TCPIP MP_OASIS_INTLVL_GPR(63)
239 #define MP_OASIS_INTFLG_TCPIP MP_OASIS_INTFLG_GPR(63)
240 
241 
242 #endif /* __INTLEVEL_H__ */