summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2007-11-06 21:44:07 +0000
committerTill Straumann <strauman@slac.stanford.edu>2007-11-06 21:44:07 +0000
commitcad1f386efba0d2ae9bb945f6cf36f6bc6f9d25d (patch)
tree240202a0fdebfeffba8b6cd6200877f42d9ba1ab /c/src/lib/libbsp/i386
parent2007-11-06 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-cad1f386efba0d2ae9bb945f6cf36f6bc6f9d25d.tar.bz2
2007-11-06 Till Straumann <strauman@slac.stanford.edu>
* shared/irq/irq.c: test for non-NULL-ness before calling 'on'/'off' methods so that users don't have to provide no-ops if they don't want this feature.
Diffstat (limited to 'c/src/lib/libbsp/i386')
-rw-r--r--c/src/lib/libbsp/i386/ChangeLog6
-rw-r--r--c/src/lib/libbsp/i386/shared/irq/irq.c12
2 files changed, 14 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/i386/ChangeLog b/c/src/lib/libbsp/i386/ChangeLog
index 19fb7faf2a..03196d53e0 100644
--- a/c/src/lib/libbsp/i386/ChangeLog
+++ b/c/src/lib/libbsp/i386/ChangeLog
@@ -1,3 +1,9 @@
+2007-11-06 Till Straumann <strauman@slac.stanford.edu>
+
+ * shared/irq/irq.c: test for non-NULL-ness before calling
+ 'on'/'off' methods so that users don't have to provide
+ no-ops if they don't want this feature.
+
2007-09-12 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1257/bsps
diff --git a/c/src/lib/libbsp/i386/shared/irq/irq.c b/c/src/lib/libbsp/i386/shared/irq/irq.c
index 78fdcfcaf5..9acf19ca1b 100644
--- a/c/src/lib/libbsp/i386/shared/irq/irq.c
+++ b/c/src/lib/libbsp/i386/shared/irq/irq.c
@@ -229,7 +229,8 @@ int BSP_install_rtems_irq_handler (const rtems_irq_connect_data* irq)
/*
* Enable interrupt on device
*/
- irq->on(irq);
+ if (irq->on)
+ irq->on(irq);
rtems_interrupt_enable(level);
@@ -277,7 +278,8 @@ int BSP_remove_rtems_irq_handler (const rtems_irq_connect_data* irq)
/*
* Disable interrupt on device
*/
- irq->off(irq);
+ if (irq->off)
+ irq->off(irq);
/*
* restore the default irq value
@@ -314,10 +316,12 @@ int BSP_rtems_irq_mngt_set(rtems_irq_global_settings* config)
for (i=0; i < internal_config->irqNb; i++) {
if (rtems_hdl_tbl[i].hdl != default_rtems_entry.hdl) {
BSP_irq_enable_at_i8259s (i);
- rtems_hdl_tbl[i].on(&rtems_hdl_tbl[i]);
+ if (rtems_hdl_tbl[i].on)
+ rtems_hdl_tbl[i].on(&rtems_hdl_tbl[i]);
}
else {
- rtems_hdl_tbl[i].off(&rtems_hdl_tbl[i]);
+ if (rtems_hdl_tbl[i].off)
+ rtems_hdl_tbl[i].off(&rtems_hdl_tbl[i]);
BSP_irq_disable_at_i8259s (i);
}
}