aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2007-11-16 13:14:30 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2007-11-16 13:14:30 +0000
commitda365c95e4460bda1f5b49a2e55ae144da1faf3f (patch)
tree634ff1f5250e36e12c0ebe0707a4792760695cec /src
parent3fe3d0d6a9ba5b11ebd30f30d5dfcb600cea9e50 (diff)
downloadChibiOS-da365c95e4460bda1f5b49a2e55ae144da1faf3f.tar.gz
ChibiOS-da365c95e4460bda1f5b49a2e55ae144da1faf3f.tar.bz2
ChibiOS-da365c95e4460bda1f5b49a2e55ae144da1faf3f.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@93 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'src')
-rw-r--r--src/chschd.c13
-rw-r--r--src/include/scheduler.h5
2 files changed, 9 insertions, 9 deletions
diff --git a/src/chschd.c b/src/chschd.c
index a3763cd38..d3b112cf1 100644
--- a/src/chschd.c
+++ b/src/chschd.c
@@ -27,7 +27,6 @@
/** @cond never*/
static ReadyList rlist;
-static t_cnt preempt;
#ifndef CH_CURRP_REGISTER_CACHE
Thread *currp;
@@ -47,7 +46,7 @@ void chSchInit(void) {
fifo_init(&rlist.r_queue);
rlist.r_prio = ABSPRIO;
- preempt = CH_TIME_QUANTUM;
+ rlist.r_preempt = CH_TIME_QUANTUM;
#ifdef CH_USE_SYSTEMTIME
stime = 0;
#endif
@@ -89,7 +88,7 @@ static void nextready(void) {
Thread *otp = currp;
(currp = fifo_remove(&rlist.r_queue))->p_state = PRCURR;
- preempt = CH_TIME_QUANTUM;
+ rlist.r_preempt = CH_TIME_QUANTUM;
#ifdef CH_USE_DEBUG
chDbgTrace(otp, currp);
#endif
@@ -131,7 +130,7 @@ void chSchWakeupS(Thread *ntp, t_msg msg) {
chSchReadyI(otp);
(currp = ntp)->p_state = PRCURR;
ntp->p_rdymsg = msg;
- preempt = CH_TIME_QUANTUM;
+ rlist.r_preempt = CH_TIME_QUANTUM;
#ifdef CH_USE_DEBUG
chDbgTrace(otp, ntp);
#endif
@@ -172,7 +171,7 @@ BOOL chSchRescRequiredI(void) {
if (isempty(&rlist.r_queue))
return FALSE;
- if (preempt) {
+ if (rlist.r_preempt) {
if (firstprio(&rlist.r_queue) <= currp->p_prio)
return FALSE;
}
@@ -191,8 +190,8 @@ BOOL chSchRescRequiredI(void) {
*/
void chSchTimerHandlerI(void) {
- if (preempt)
- preempt--;
+ if (rlist.r_preempt)
+ rlist.r_preempt--;
#ifdef CH_USE_SYSTEMTIME
stime++;
diff --git a/src/include/scheduler.h b/src/include/scheduler.h
index 12393e0db..40130f356 100644
--- a/src/include/scheduler.h
+++ b/src/include/scheduler.h
@@ -38,8 +38,9 @@
* Ready list header.
*/
typedef struct {
- ThreadsQueue r_queue;
- t_prio r_prio;
+ ThreadsQueue r_queue;
+ t_prio r_prio;
+ t_cnt r_preempt;
} ReadyList;
/*