summaryrefslogtreecommitdiffstats
path: root/c/src
diff options
context:
space:
mode:
authorJennifer Averett <Jennifer.Averett@OARcorp.com>2005-04-25 14:37:10 +0000
committerJennifer Averett <Jennifer.Averett@OARcorp.com>2005-04-25 14:37:10 +0000
commit7735271ff686e9bdc134df5e4f8f67f50a3b4829 (patch)
treeca1ee1f3aa48d01946a86e10c721ac3224dd0cab /c/src
parent2005-04-15 Jennifer Averett <jennifer.averett@oarcorp.com> (diff)
downloadrtems-7735271ff686e9bdc134df5e4f8f67f50a3b4829.tar.bz2
2005-04-25 Jennifer Averett <jennifer.averett@oarcorp.com>
PR 779/bsp * mpc5xx/console-generic/console-generic.c, mpc5xx/irq/irq.c, mpc5xx/irq/irq.h, mpc5xx/irq/irq_init.c: Add parameter to powerpc interrupt handler routines
Diffstat (limited to 'c/src')
-rw-r--r--c/src/lib/libcpu/powerpc/ChangeLog7
-rw-r--r--c/src/lib/libcpu/powerpc/mpc5xx/console-generic/console-generic.c2
-rw-r--r--c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.c4
-rw-r--r--c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.h7
-rw-r--r--c/src/lib/libcpu/powerpc/mpc5xx/irq/irq_init.c4
5 files changed, 18 insertions, 6 deletions
diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog
index c8041facf8..04a2067514 100644
--- a/c/src/lib/libcpu/powerpc/ChangeLog
+++ b/c/src/lib/libcpu/powerpc/ChangeLog
@@ -1,3 +1,10 @@
+2005-04-25 Jennifer Averett <jennifer.averett@oarcorp.com>
+
+ PR 779/bsp
+ * mpc5xx/console-generic/console-generic.c, mpc5xx/irq/irq.c,
+ mpc5xx/irq/irq.h, mpc5xx/irq/irq_init.c: Add parameter to powerpc
+ interrupt handler routines
+
2005-04-15 Jennifer Averett <jennifer.averett@oarcorp.com>
* mpc6xx/clock/c_clock.c, mpc6xx/clock/c_clock.h,
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/console-generic/console-generic.c b/c/src/lib/libcpu/powerpc/mpc5xx/console-generic/console-generic.c
index 2625bb56bf..d4c8603232 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/console-generic/console-generic.c
+++ b/c/src/lib/libcpu/powerpc/mpc5xx/console-generic/console-generic.c
@@ -270,7 +270,7 @@ m5xx_uart_setAttributes(
* Interrupt handling.
*/
static void
-m5xx_sci_interrupt_handler (void)
+m5xx_sci_interrupt_handler (rtems_irq_hdl_param unused)
{
int minor;
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.c b/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.c
index 40bf8341bc..6a71b0b80f 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.c
+++ b/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.c
@@ -417,7 +417,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum)
new_msr = msr | MSR_EE;
_CPU_MSR_SET(new_msr);
- rtems_hdl_tbl[CPU_DECREMENTER].hdl();
+ rtems_hdl_tbl[CPU_DECREMENTER].hdl(rtems_hdl_tbl[CPU_DECREMENTER].handle);
_CPU_MSR_SET(msr);
return;
@@ -466,7 +466,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum)
new_msr = msr | MSR_EE;
_CPU_MSR_SET(new_msr);
- rtems_hdl_tbl[irq].hdl();
+ rtems_hdl_tbl[irq].hdl(rtems_hdl_tbl[irq].handle);
_CPU_MSR_SET(msr);
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.h b/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.h
index 6ebff4890c..b17016fcb0 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.h
+++ b/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.h
@@ -165,7 +165,8 @@ int CPU_irq_level_from_symbolic_name(const rtems_irq_symbolic_name name);
typedef unsigned char rtems_irq_prio;
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_disable) (const struct __rtems_irq_connect_data__*);
typedef int (*rtems_irq_is_enabled) (const struct __rtems_irq_connect_data__*);
@@ -180,6 +181,10 @@ typedef struct __rtems_irq_connect_data__ {
*/
rtems_irq_hdl hdl;
/*
+ * Handler handle to store private data
+ */
+ rtems_irq_hdl_param handle;
+ /*
* Function for enabling interrupts at device level (ONLY!).
* The CPU code will automatically enable it at USIU level and UIMB level.
* RATIONALE : anyway such code has to exist in current driver code.
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq_init.c b/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq_init.c
index bc2a3043f1..9f2488a012 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq_init.c
+++ b/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq_init.c
@@ -48,8 +48,8 @@ static int connected() {return 1;}
static rtems_irq_connect_data rtemsIrq[CPU_IRQ_COUNT];
static rtems_irq_global_settings initial_config;
static rtems_irq_connect_data defaultIrq = {
- /* vector, hdl , on , off , isOn */
- 0, nop_func , nop_func , nop_func , not_connected
+ /* vector, hdl ,handle , on , off , isOn */
+ 0, nop_func ,NULL , nop_func , nop_func , not_connected
};
static rtems_irq_prio irqPrioTable[CPU_IRQ_COUNT]={