summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-05-17 23:22:45 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-05-17 23:22:45 +0000
commitc9973bbc5425e879c4f64f401a08d386a4e5790b (patch)
tree9a64ea365b585c45c4a297809e697c760338e29d /c
parentSplit Signal Manager into one routine per file. (diff)
downloadrtems-c9973bbc5425e879c4f64f401a08d386a4e5790b.tar.bz2
Split Interrupt Manager into one routine per file.
Diffstat (limited to 'c')
-rw-r--r--c/src/exec/rtems/src/Makefile.in13
-rw-r--r--c/src/exec/rtems/src/intr.c36
-rw-r--r--c/src/exec/rtems/src/intrcatch.c55
3 files changed, 63 insertions, 41 deletions
diff --git a/c/src/exec/rtems/src/Makefile.in b/c/src/exec/rtems/src/Makefile.in
index 25368bfdbe..824c4ef96b 100644
--- a/c/src/exec/rtems/src/Makefile.in
+++ b/c/src/exec/rtems/src/Makefile.in
@@ -24,6 +24,13 @@ TASK_PIECES=\
taskmode taskrestart taskresume tasksetnote tasksetpriority \
taskstart tasksuspend taskwakeafter taskwakewhen
+RATEMON_PIECES=\
+ ratemon ratemoncancel ratemoncreate ratemondelete ratemongetstatus \
+ ratemonident ratemonperiod ratemontimeout
+
+INTR_PIECES=\
+ intr intrbody intrcatch
+
CLOCK_PIECES=\
clock clockget clockset clocktick
@@ -46,10 +53,6 @@ EVENT_PIECES=\
SIGNAL_PIECES=\
signal signalcatch signalsend
-RATEMON_PIECES=\
- ratemon ratemoncancel ratemoncreate ratemondelete ratemongetstatus \
- ratemonident ratemonperiod ratemontimeout
-
REGION_PIECES=\
region regioncreate regiondelete regionextend regiongetsegment \
regiongetsegmentsize regionident regionreturnsegemnt regionreturnsegemnt
@@ -63,7 +66,7 @@ DPMEM_PIECES=\
C_PIECES=\
attr $(TASK_PIECES) $(RATEMON_PIECES) \
- intr intrbody \
+ $(INTR_PIECES) \
$(CLOCK_PIECES) $(TIMER_PIECES) \
$(SEMAPHORE_PIECES) $(MESSAGE_QUEUE_PIECES) \
$(EVENT_PIECES) $(SIGNAL_PIECES) \
diff --git a/c/src/exec/rtems/src/intr.c b/c/src/exec/rtems/src/intr.c
index 45dce11bdd..de4703e949 100644
--- a/c/src/exec/rtems/src/intr.c
+++ b/c/src/exec/rtems/src/intr.c
@@ -30,39 +30,3 @@
void _Interrupt_Manager_initialization( void )
{
}
-
-/* rtems_interrupt_catch
- *
- * This directive allows a thread to specify what action to take when
- * catching signals.
- *
- * Input parameters:
- * new_isr_handler - address of interrupt service routine (isr)
- * vector - interrupt vector number
- * old_isr_handler - address at which to store previous ISR address
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - always succeeds
- * *old_isr_handler - previous ISR address
- */
-
-rtems_status_code rtems_interrupt_catch(
- rtems_isr_entry new_isr_handler,
- rtems_vector_number vector,
- rtems_isr_entry *old_isr_handler
-)
-{
- if ( !_ISR_Is_vector_number_valid( vector ) )
- return RTEMS_INVALID_NUMBER;
-
- if ( !_ISR_Is_valid_user_handler( (void *) new_isr_handler ) )
- return RTEMS_INVALID_ADDRESS;
-
- if ( !_ISR_Is_valid_user_handler( (void *) old_isr_handler ) )
- return RTEMS_INVALID_ADDRESS;
-
- _ISR_Install_vector(
- vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler );
-
- return RTEMS_SUCCESSFUL;
-}
diff --git a/c/src/exec/rtems/src/intrcatch.c b/c/src/exec/rtems/src/intrcatch.c
new file mode 100644
index 0000000000..6ceedd7069
--- /dev/null
+++ b/c/src/exec/rtems/src/intrcatch.c
@@ -0,0 +1,55 @@
+/*
+ * Interrupt Manager
+ *
+ *
+ * COPYRIGHT (c) 1989-1998.
+ * On-Line Applications Research Corporation (OAR).
+ * Copyright assigned to U.S. Government, 1994.
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.OARcorp.com/rtems/license.html.
+ *
+ * $Id$
+ */
+
+#include <rtems/system.h>
+#include <rtems/rtems/status.h>
+#include <rtems/score/isr.h>
+#include <rtems/rtems/intr.h>
+
+/* rtems_interrupt_catch
+ *
+ * This directive allows a thread to specify what action to take when
+ * catching signals.
+ *
+ * Input parameters:
+ * new_isr_handler - address of interrupt service routine (isr)
+ * vector - interrupt vector number
+ * old_isr_handler - address at which to store previous ISR address
+ *
+ * Output parameters:
+ * RTEMS_SUCCESSFUL - always succeeds
+ * *old_isr_handler - previous ISR address
+ */
+
+rtems_status_code rtems_interrupt_catch(
+ rtems_isr_entry new_isr_handler,
+ rtems_vector_number vector,
+ rtems_isr_entry *old_isr_handler
+)
+{
+ if ( !_ISR_Is_vector_number_valid( vector ) )
+ return RTEMS_INVALID_NUMBER;
+
+ if ( !_ISR_Is_valid_user_handler( (void *) new_isr_handler ) )
+ return RTEMS_INVALID_ADDRESS;
+
+ if ( !_ISR_Is_valid_user_handler( (void *) old_isr_handler ) )
+ return RTEMS_INVALID_ADDRESS;
+
+ _ISR_Install_vector(
+ vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler );
+
+ return RTEMS_SUCCESSFUL;
+}