diff options
author | Giovanni Di Sirio <gdisirio@gmail.com> | 2016-04-05 10:07:57 +0000 |
---|---|---|
committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2016-04-05 10:07:57 +0000 |
commit | fbb8e866760c1bc605422c92eef756903e5d63df (patch) | |
tree | 2aef6060fd175cdd671e8bd45ed69029ac0805a3 /os/rt/src | |
parent | b529e1b88e7e187c14268d4facc6542d3b499f6b (diff) | |
download | ChibiOS-fbb8e866760c1bc605422c92eef756903e5d63df.tar.gz ChibiOS-fbb8e866760c1bc605422c92eef756903e5d63df.tar.bz2 ChibiOS-fbb8e866760c1bc605422c92eef756903e5d63df.zip |
Scheduler queues modified in a more readable and safer way.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9241 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/rt/src')
-rw-r--r-- | os/rt/src/chschd.c | 56 | ||||
-rw-r--r-- | os/rt/src/chsys.c | 6 |
2 files changed, 31 insertions, 31 deletions
diff --git a/os/rt/src/chschd.c b/os/rt/src/chschd.c index 82a38941c..fbc84e000 100644 --- a/os/rt/src/chschd.c +++ b/os/rt/src/chschd.c @@ -87,12 +87,12 @@ void queue_prio_insert(thread_t *tp, threads_queue_t *tqp) { thread_t *cp = (thread_t *)tqp;
do {
- cp = cp->next;
+ cp = cp->queue.next;
} while ((cp != (thread_t *)tqp) && (cp->prio >= tp->prio));
- tp->next = cp;
- tp->prev = cp->prev;
- tp->prev->next = tp;
- cp->prev = tp;
+ tp->queue.next = cp;
+ tp->queue.prev = cp->queue.prev;
+ tp->queue.prev->queue.next = tp;
+ cp->queue.prev = tp;
}
/**
@@ -105,10 +105,10 @@ void queue_prio_insert(thread_t *tp, threads_queue_t *tqp) { */
void queue_insert(thread_t *tp, threads_queue_t *tqp) {
- tp->next = (thread_t *)tqp;
- tp->prev = tqp->prev;
- tp->prev->next = tp;
- tqp->prev = tp;
+ tp->queue.next = (thread_t *)tqp;
+ tp->queue.prev = tqp->prev;
+ tp->queue.prev->queue.next = tp;
+ tqp->prev = tp;
}
/**
@@ -124,8 +124,8 @@ void queue_insert(thread_t *tp, threads_queue_t *tqp) { thread_t *queue_fifo_remove(threads_queue_t *tqp) {
thread_t *tp = tqp->next;
- tqp->next = tp->next;
- tqp->next->prev = (thread_t *)tqp;
+ tqp->next = tp->queue.next;
+ tqp->next->queue.prev = (thread_t *)tqp;
return tp;
}
@@ -143,8 +143,8 @@ thread_t *queue_fifo_remove(threads_queue_t *tqp) { thread_t *queue_lifo_remove(threads_queue_t *tqp) {
thread_t *tp = tqp->prev;
- tqp->prev = tp->prev;
- tqp->prev->next = (thread_t *)tqp;
+ tqp->prev = tp->queue.prev;
+ tqp->prev->queue.next = (thread_t *)tqp;
return tp;
}
@@ -161,8 +161,8 @@ thread_t *queue_lifo_remove(threads_queue_t *tqp) { */
thread_t *queue_dequeue(thread_t *tp) {
- tp->prev->next = tp->next;
- tp->next->prev = tp->prev;
+ tp->queue.prev->queue.next = tp->queue.next;
+ tp->queue.next->queue.prev = tp->queue.prev;
return tp;
}
@@ -177,8 +177,8 @@ thread_t *queue_dequeue(thread_t *tp) { */
void list_insert(thread_t *tp, threads_list_t *tlp) {
- tp->next = tlp->next;
- tlp->next = tp;
+ tp->queue.next = tlp->next;
+ tlp->next = tp;
}
/**
@@ -193,7 +193,7 @@ void list_insert(thread_t *tp, threads_list_t *tlp) { thread_t *list_remove(threads_list_t *tlp) {
thread_t *tp = tlp->next;
- tlp->next = tp->next;
+ tlp->next = tp->queue.next;
return tp;
}
@@ -227,13 +227,13 @@ thread_t *chSchReadyI(thread_t *tp) { tp->state = CH_STATE_READY;
cp = (thread_t *)&ch.rlist.queue;
do {
- cp = cp->next;
+ cp = cp->queue.next;
} while (cp->prio >= tp->prio);
/* Insertion on prev.*/
- tp->next = cp;
- tp->prev = cp->prev;
- tp->prev->next = tp;
- cp->prev = tp;
+ tp->queue.next = cp;
+ tp->queue.prev = cp->queue.prev;
+ tp->queue.prev->queue.next = tp;
+ cp->queue.prev = tp;
return tp;
}
@@ -266,13 +266,13 @@ thread_t *chSchReadyAheadI(thread_t *tp) { tp->state = CH_STATE_READY;
cp = (thread_t *)&ch.rlist.queue;
do {
- cp = cp->next;
+ cp = cp->queue.next;
} while (cp->prio > tp->prio);
/* Insertion on prev.*/
- tp->next = cp;
- tp->prev = cp->prev;
- tp->prev->next = tp;
- cp->prev = tp;
+ tp->queue.next = cp;
+ tp->queue.prev = cp->queue.prev;
+ tp->queue.prev->queue.next = tp;
+ cp->queue.prev = tp;
return tp;
}
diff --git a/os/rt/src/chsys.c b/os/rt/src/chsys.c index f4dbbb4e2..0702b7c18 100644 --- a/os/rt/src/chsys.c +++ b/os/rt/src/chsys.c @@ -118,7 +118,7 @@ void chSysInit(void) { #if CH_DBG_STATISTICS == TRUE
_stats_init();
#endif
-#if CH_DBG_TRACE_MASK != CH_DBG_TRACE_MASK_NONE
+#if CH_DBG_TRACE_MASK != CH_DBG_TRACE_MASK_DISABLED
_dbg_trace_init();
#endif
@@ -247,14 +247,14 @@ bool chSysIntegrityCheckI(unsigned testmask) { tp = ch.rlist.queue.next;
while (tp != (thread_t *)&ch.rlist.queue) {
n++;
- tp = tp->next;
+ tp = tp->queue.next;
}
/* Scanning the ready list backward.*/
tp = ch.rlist.queue.prev;
while (tp != (thread_t *)&ch.rlist.queue) {
n--;
- tp = tp->prev;
+ tp = tp->queue.prev;
}
/* The number of elements must match.*/
|