summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-07-17 09:08:22 +0000
committerThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-07-17 09:08:22 +0000
commit915bb51b905856b5adaa975c7d99a5927b6d4c17 (patch)
treead54436c0735a32f69c04cc1650b5c33fd4987f9 /cpukit
parentRegenerate. (diff)
downloadrtems-915bb51b905856b5adaa975c7d99a5927b6d4c17.tar.bz2
make thread dispatching in ISRs generic code
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/ChangeLog6
-rw-r--r--cpukit/score/Makefile.am2
-rw-r--r--cpukit/score/include/rtems/score/isr.h11
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