summaryrefslogtreecommitdiffstats
path: root/bsps/sparc/leon3/mpci/mpisr.c
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/sparc/leon3/mpci/mpisr.c')
-rw-r--r--bsps/sparc/leon3/mpci/mpisr.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/bsps/sparc/leon3/mpci/mpisr.c b/bsps/sparc/leon3/mpci/mpisr.c
new file mode 100644
index 0000000000..cdf05293f1
--- /dev/null
+++ b/bsps/sparc/leon3/mpci/mpisr.c
@@ -0,0 +1,50 @@
+/**
+ * @file
+ *
+ * LEON3 Shared Memory Driver Interrupt Support
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2012.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#include <rtems.h>
+#include <bsp.h>
+#include <shm_driver.h>
+
+#if 0
+void Shm_isr(void)
+{
+ /*
+ * If this routine has to do anything other than the mpisr.c
+ * found in the generic driver, then copy the contents of the generic
+ * mpisr.c and augment it to satisfy this particular board. Typically,
+ * you need to have a board specific mpisr.c when the interrupt
+ * must be cleared.
+ *
+ * If the generic mpisr.c satisifies your requirements, then
+ * remove this routine from your target's shmsupp/mpisr.c file.
+ * Then simply install the generic Shm_isr in the Shm_setvec
+ * routine below.
+ */
+}
+#endif
+
+/*
+ * This driver routine sets the SHM interrupt vector to point to the
+ * driver's SHM interrupt service routine.
+ */
+void Shm_setvec( void )
+{
+ /*
+ * Interrupt driven mode is not currently supported.
+ * This is thought to be the interrupt to use.
+ */
+ LEON_Unmask_interrupt(LEON3_mp_irq);
+ set_vector((rtems_isr_entry) Shm_isr, LEON_TRAP_TYPE(LEON3_mp_irq), 1);
+}