RTEMS  5.1
tm27.h
1 /*
2  * @file
3  * @ingroup powerpc_ss555
4  * @brief Implementations for interrupt mechanisms for Time Test 27
5  */
6 
7 /*
8  * The license and distribution terms for this file may be
9  * found in the file LICENSE in this distribution or at
10  * http://www.rtems.org/license/LICENSE.
11  */
12 
13 #ifndef _RTEMS_TMTEST27
14 #error "This is an RTEMS internal file you must not include directly."
15 #endif
16 
17 #ifndef __tm27_h
18 #define __tm27_h
19 
20 /*
21  * Stuff for Time Test 27
22  *
23  * The following require that IRQ7 be jumpered to ground. On the SS555,
24  * this can be done by shorting together CN5 pin 48 and CN5 pin 50.
25  */
26 
27 #define MUST_WAIT_FOR_INTERRUPT 1
28 
29 #define Install_tm27_vector( handler ) \
30 { \
31  extern rtems_irq_connect_data tm27IrqData; \
32  usiu.siel |= (1 << 17); \
33  usiu.sipend |= (1 << 17); \
34  \
35  tm27IrqData.hdl = (rtems_irq_hdl)handler; \
36  BSP_install_rtems_irq_handler (&tm27IrqData); \
37 }
38 
39 #define Cause_tm27_intr() \
40 { \
41  usiu.siel &= ~(1 << 17); \
42 }
43 
44 #define Clear_tm27_intr() \
45 { \
46  usiu.siel |= (1 << 17); \
47  usiu.sipend |= (1 << 17); \
48 }
49 
50 #define Lower_tm27_intr() \
51 { \
52  ppc_cached_irq_mask |= (1 << 17); \
53  usiu.simask = ppc_cached_irq_mask; \
54 }
55 
56 #endif