forked from Imagelibrary/rtems
2005-04-15 Jennifer Averett <jennifer.averett@oarcorp.com>
PR 779/bsp * clock/p_clock.c, irq/irq.c, irq/irq.h, irq/irq_init.c, network/network.c: add parameter to new exception interrupt handlers in powerpc bsps
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
2005-04-15 Jennifer Averett <jennifer.averett@oarcorp.com>
|
||||||
|
|
||||||
|
PR 779/bsp
|
||||||
|
* clock/p_clock.c, irq/irq.c, irq/irq.h, irq/irq_init.c,
|
||||||
|
network/network.c: add parameter to new exception interrupt handlers
|
||||||
|
in powerpc bsps
|
||||||
|
|
||||||
2005-02-17 Ralf Corsepius <ralf.corsepius@rtems.org>
|
2005-02-17 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* startup/bspstart.c: include <rtems/powerpc/powerpc.h>.
|
* startup/bspstart.c: include <rtems/powerpc/powerpc.h>.
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ extern void Clock_isr();
|
|||||||
|
|
||||||
static rtems_irq_connect_data clockIrqData = {BSP_PERIODIC_TIMER,
|
static rtems_irq_connect_data clockIrqData = {BSP_PERIODIC_TIMER,
|
||||||
(rtems_irq_hdl)Clock_isr,
|
(rtems_irq_hdl)Clock_isr,
|
||||||
|
NULL,
|
||||||
(rtems_irq_enable)clockOn,
|
(rtems_irq_enable)clockOn,
|
||||||
(rtems_irq_disable)clockOff,
|
(rtems_irq_disable)clockOff,
|
||||||
(rtems_irq_is_enabled)clockIsOn};
|
(rtems_irq_is_enabled)clockIsOn};
|
||||||
|
|||||||
@@ -437,7 +437,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum)
|
|||||||
new_msr = msr | MSR_EE;
|
new_msr = msr | MSR_EE;
|
||||||
_CPU_MSR_SET(new_msr);
|
_CPU_MSR_SET(new_msr);
|
||||||
|
|
||||||
rtems_hdl_tbl[BSP_DECREMENTER].hdl();
|
rtems_hdl_tbl[BSP_DECREMENTER].hdl(rtems_hdl_tbl[BSP_DECREMENTER].handle);
|
||||||
|
|
||||||
_CPU_MSR_SET(msr);
|
_CPU_MSR_SET(msr);
|
||||||
|
|
||||||
@@ -482,7 +482,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum)
|
|||||||
_CPU_MSR_SET(new_msr);
|
_CPU_MSR_SET(new_msr);
|
||||||
|
|
||||||
/* call handler */
|
/* call handler */
|
||||||
rtems_hdl_tbl[irq].hdl();
|
rtems_hdl_tbl[irq].hdl(rtems_hdl_tbl[irq].handle);
|
||||||
|
|
||||||
/* disable exceptions again */
|
/* disable exceptions again */
|
||||||
_CPU_MSR_SET(msr);
|
_CPU_MSR_SET(msr);
|
||||||
|
|||||||
@@ -159,7 +159,8 @@ typedef enum {
|
|||||||
typedef unsigned char rtems_irq_prio;
|
typedef unsigned char rtems_irq_prio;
|
||||||
struct __rtems_irq_connect_data__; /* forward declaratiuon */
|
struct __rtems_irq_connect_data__; /* forward declaratiuon */
|
||||||
|
|
||||||
typedef void (*rtems_irq_hdl) (void);
|
typedef void *rtems_irq_hdl_param;
|
||||||
|
typedef void (*rtems_irq_hdl) (rtems_irq_hdl_param);
|
||||||
typedef void (*rtems_irq_enable) (const struct __rtems_irq_connect_data__*);
|
typedef void (*rtems_irq_enable) (const struct __rtems_irq_connect_data__*);
|
||||||
typedef void (*rtems_irq_disable) (const struct __rtems_irq_connect_data__*);
|
typedef void (*rtems_irq_disable) (const struct __rtems_irq_connect_data__*);
|
||||||
typedef int (*rtems_irq_is_enabled) (const struct __rtems_irq_connect_data__*);
|
typedef int (*rtems_irq_is_enabled) (const struct __rtems_irq_connect_data__*);
|
||||||
@@ -173,6 +174,10 @@ typedef struct __rtems_irq_connect_data__ {
|
|||||||
* handler. See comment on handler properties below in function prototype.
|
* handler. See comment on handler properties below in function prototype.
|
||||||
*/
|
*/
|
||||||
rtems_irq_hdl hdl;
|
rtems_irq_hdl hdl;
|
||||||
|
/*
|
||||||
|
* Handler handle to store private data
|
||||||
|
*/
|
||||||
|
rtems_irq_hdl_param handle;
|
||||||
/*
|
/*
|
||||||
* function for enabling interrupts at device level (ONLY!).
|
* function for enabling interrupts at device level (ONLY!).
|
||||||
* The BSP code will automatically enable it at SIU level and CPM level.
|
* The BSP code will automatically enable it at SIU level and CPM level.
|
||||||
|
|||||||
@@ -48,8 +48,8 @@ static int connected() {return 1;}
|
|||||||
static rtems_irq_connect_data rtemsIrq[BSP_IRQ_NUMBER];
|
static rtems_irq_connect_data rtemsIrq[BSP_IRQ_NUMBER];
|
||||||
static rtems_irq_global_settings initial_config;
|
static rtems_irq_global_settings initial_config;
|
||||||
static rtems_irq_connect_data defaultIrq = {
|
static rtems_irq_connect_data defaultIrq = {
|
||||||
/* vectorIdex, hdl , on , off , isOn */
|
/* vectorIdex, hdl , handle , on , off , isOn */
|
||||||
0, nop_func , nop_func , nop_func , not_connected
|
0, nop_func , NULL , nop_func , nop_func , not_connected
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ static int m8xx_scc3_hdlc_isOn(const rtems_irq_connect_data* ptr)
|
|||||||
* SCCs.
|
* SCCs.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
m8xx_scc3_interrupt_handler ()
|
m8xx_scc3_interrupt_handler (rtems_irq_hdl_param unused)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Frame received?
|
* Frame received?
|
||||||
@@ -188,6 +188,7 @@ m8xx_scc3_interrupt_handler ()
|
|||||||
static rtems_irq_connect_data hdlcSCC3IrqData = {
|
static rtems_irq_connect_data hdlcSCC3IrqData = {
|
||||||
BSP_CPM_IRQ_SCC3,
|
BSP_CPM_IRQ_SCC3,
|
||||||
(rtems_irq_hdl) m8xx_scc3_interrupt_handler,
|
(rtems_irq_hdl) m8xx_scc3_interrupt_handler,
|
||||||
|
NULL,
|
||||||
(rtems_irq_enable) m8xx_scc3_hdlc_on,
|
(rtems_irq_enable) m8xx_scc3_hdlc_on,
|
||||||
(rtems_irq_disable) m8xx_scc3_hdlc_off,
|
(rtems_irq_disable) m8xx_scc3_hdlc_off,
|
||||||
(rtems_irq_is_enabled)m8xx_scc3_hdlc_isOn
|
(rtems_irq_is_enabled)m8xx_scc3_hdlc_isOn
|
||||||
|
|||||||
Reference in New Issue
Block a user