@@ -43,53 +43,4 @@ extern "C" {
43
43
#ifdef __cplusplus
44
44
}
45
45
#endif
46
-
47
- #ifndef _ASMLANGUAGE
48
- #include <irq.h>
49
-
50
- /* internal routine documented in C file, needed by IRQ_CONNECT() macro */
51
- extern void _irq_priority_set (unsigned int irq , unsigned int prio ,
52
- uint32_t flags );
53
-
54
- /**
55
- * Configure a static interrupt.
56
- *
57
- * All arguments must be computable by the compiler at build time.
58
- *
59
- * Internally this function does a few things:
60
- *
61
- * 1. The enum statement has no effect but forces the compiler to only
62
- * accept constant values for the irq_p parameter, very important as the
63
- * numerical IRQ line is used to create a named section.
64
- *
65
- * 2. An instance of struct _isr_table_entry is created containing the ISR and
66
- * its parameter. If you look at how _sw_isr_table is created, each entry in
67
- * the array is in its own section named by the IRQ line number. What we are
68
- * doing here is to override one of the default entries (which points to the
69
- * spurious IRQ handler) with what was supplied here.
70
- *
71
- * 3. The priority level for the interrupt is configured by a call to
72
- * _irq_priority_set()
73
- *
74
- * @param irq_p IRQ line number
75
- * @param priority_p Interrupt priority, in range 0-13
76
- * @param isr_p Interrupt service routine
77
- * @param isr_param_p ISR parameter
78
- * @param flags_p IRQ options (ignored for now)
79
- *
80
- * @return The vector assigned to this interrupt
81
- */
82
- #define _ARCH_IRQ_CONNECT (irq_p , priority_p , isr_p , isr_param_p , flags_p ) \
83
- ({ \
84
- enum { IRQ = irq_p }; \
85
- static struct _isr_table_entry _CONCAT(_isr_irq, irq_p) \
86
- __attribute__ ((used)) \
87
- __attribute__ ((section(STRINGIFY(_CONCAT(.gnu.linkonce.isr_irq, irq_p))))) = \
88
- {isr_param_p, isr_p}; \
89
- _irq_priority_set(irq_p, priority_p, flags_p); \
90
- irq_p; \
91
- })
92
-
93
- #endif
94
-
95
46
#endif /* _ARC_ARCH__H_ */
0 commit comments