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__ */