diff options
author | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2009-07-17 09:08:22 +0000 |
---|---|---|
committer | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2009-07-17 09:08:22 +0000 |
commit | 915bb51b905856b5adaa975c7d99a5927b6d4c17 (patch) | |
tree | ad54436c0735a32f69c04cc1650b5c33fd4987f9 | |
parent | Regenerate. (diff) | |
download | rtems-915bb51b905856b5adaa975c7d99a5927b6d4c17.tar.bz2 |
make thread dispatching in ISRs generic code
-rw-r--r-- | cpukit/ChangeLog | 6 | ||||
-rw-r--r-- | cpukit/score/Makefile.am | 2 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/isr.h | 11 |
3 files changed, 18 insertions, 1 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index c9abd19ace..be7245dddc 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,9 @@ +2009-07-13 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * score/src/isrthreaddispatch.c: New file. + * score/include/rtems/score/isr.h: Added prototype. + * score/Makefile.am: Update. + 2009-07-10 Joel Sherrill <joel.sherrill@OARcorp.com> * configure.ac, score/src/threadqenqueuepriority.c: Add diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am index 7b5f76b162..4684b990bd 100644 --- a/cpukit/score/Makefile.am +++ b/cpukit/score/Makefile.am @@ -196,7 +196,7 @@ libscore_a_SOURCES += src/userextaddapiset.c src/userextaddset.c \ ## STD_C_FILES libscore_a_SOURCES += src/apiext.c src/chain.c src/chainappend.c \ src/chainextract.c src/chainget.c src/chaininsert.c \ - src/interr.c src/isr.c src/wkspace.c + src/interr.c src/isr.c src/isrthreaddispatch.c src/wkspace.c EXTRA_DIST = src/Unlimited.txt diff --git a/cpukit/score/include/rtems/score/isr.h b/cpukit/score/include/rtems/score/isr.h index ae04c9f8f0..581c65cdc1 100644 --- a/cpukit/score/include/rtems/score/isr.h +++ b/cpukit/score/include/rtems/score/isr.h @@ -196,6 +196,17 @@ void _ISR_Handler( void ); void _ISR_Dispatch( void ); /** + * Invokes the thread dispatcher or signal extension if necessary. + * + * It should be called at the end of interrupt processing. The interrupt nest + * level must be zero before calling this routine. + * + * This is a high level replacement of _ISR_Dispatch(). It must be invoked + * within an environment such that a call to _Thread_Dispatch() is allowed. + */ +void _ISR_Thread_dispatch( void ); + +/** * This function returns true if the processor is currently servicing * and interrupt and false otherwise. A return value of true indicates * that the caller is an interrupt service routine, NOT a thread. The |