From c9973bbc5425e879c4f64f401a08d386a4e5790b Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 17 May 1999 23:22:45 +0000 Subject: Split Interrupt Manager into one routine per file. --- c/src/exec/rtems/src/Makefile.in | 13 ++++++---- c/src/exec/rtems/src/intr.c | 36 -------------------------- c/src/exec/rtems/src/intrcatch.c | 55 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 41 deletions(-) create mode 100644 c/src/exec/rtems/src/intrcatch.c (limited to 'c') 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 +#include +#include +#include + +/* 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; +} -- cgit v1.2.3