summaryrefslogtreecommitdiffstats
path: root/c/src
diff options
context:
space:
mode:
authorJennifer Averett <Jennifer.Averett@OARcorp.com>2005-04-15 18:05:34 +0000
committerJennifer Averett <Jennifer.Averett@OARcorp.com>2005-04-15 18:05:34 +0000
commit00d8424e98b2ba88ef2b9aee550b75add473c5bf (patch)
tree45f2f54265d56b37a4f76a112b3544478128aade /c/src
parent2005-04-15 Jennifer Averett <jennifer.averett@oarcorp.com> (diff)
downloadrtems-00d8424e98b2ba88ef2b9aee550b75add473c5bf.tar.bz2
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
Diffstat (limited to 'c/src')
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog7
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/clock/p_clock.c1
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c4
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.h7
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq_init.c4
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/network/network.c3
6 files changed, 20 insertions, 6 deletions
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog b/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog
index ca4168dcc1..c63b055d11 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog
@@ -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>
* startup/bspstart.c: include <rtems/powerpc/powerpc.h>.
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/clock/p_clock.c b/c/src/lib/libbsp/powerpc/mpc8260ads/clock/p_clock.c
index 4e92c97e5b..acddf4b6df 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/clock/p_clock.c
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/clock/p_clock.c
@@ -25,6 +25,7 @@ extern void Clock_isr();
static rtems_irq_connect_data clockIrqData = {BSP_PERIODIC_TIMER,
(rtems_irq_hdl)Clock_isr,
+ NULL,
(rtems_irq_enable)clockOn,
(rtems_irq_disable)clockOff,
(rtems_irq_is_enabled)clockIsOn};
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c
index d8abb1f29b..11dd36418e 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c
@@ -437,7 +437,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[BSP_DECREMENTER].hdl();
+ rtems_hdl_tbl[BSP_DECREMENTER].hdl(rtems_hdl_tbl[BSP_DECREMENTER].handle);
_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);
/* call handler */
- rtems_hdl_tbl[irq].hdl();
+ rtems_hdl_tbl[irq].hdl(rtems_hdl_tbl[irq].handle);
/* disable exceptions again */
_CPU_MSR_SET(msr);
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.h b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.h
index 7d24745142..2ae0586e3e 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.h
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.h
@@ -159,7 +159,8 @@ typedef enum {
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__*);
@@ -174,6 +175,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 BSP code will automatically enable it at SIU level and CPM level.
* RATIONALE : anyway such code has to exist in current driver code.
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq_init.c b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq_init.c
index 952cf76d66..56e29953bf 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq_init.c
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq_init.c
@@ -48,8 +48,8 @@ static int connected() {return 1;}
static rtems_irq_connect_data rtemsIrq[BSP_IRQ_NUMBER];
static rtems_irq_global_settings initial_config;
static rtems_irq_connect_data defaultIrq = {
- /* vectorIdex, hdl , on , off , isOn */
- 0, nop_func , nop_func , nop_func , not_connected
+ /* vectorIdex, hdl , handle , on , off , isOn */
+ 0, nop_func , NULL , nop_func , nop_func , not_connected
};
/*
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/network/network.c b/c/src/lib/libbsp/powerpc/mpc8260ads/network/network.c
index b9a2902ddb..1bb4aaf971 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/network/network.c
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/network/network.c
@@ -150,7 +150,7 @@ static int m8xx_scc3_hdlc_isOn(const rtems_irq_connect_data* ptr)
* SCCs.
*/
static void
-m8xx_scc3_interrupt_handler ()
+m8xx_scc3_interrupt_handler (rtems_irq_hdl_param unused)
{
/*
* Frame received?
@@ -188,6 +188,7 @@ m8xx_scc3_interrupt_handler ()
static rtems_irq_connect_data hdlcSCC3IrqData = {
BSP_CPM_IRQ_SCC3,
(rtems_irq_hdl) m8xx_scc3_interrupt_handler,
+ NULL,
(rtems_irq_enable) m8xx_scc3_hdlc_on,
(rtems_irq_disable) m8xx_scc3_hdlc_off,
(rtems_irq_is_enabled)m8xx_scc3_hdlc_isOn