aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-02-26 14:03:23 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-02-26 14:03:23 +0000
commit10b1366c43353749a182c60c7dfbe2e9fa2fd567 (patch)
tree0906b8213233eeb4482a8c04b1a69a4e07ebfbf6 /docs
parent508b7bc93297fcb74af43b11b1435aa96add3c85 (diff)
downloadChibiOS-10b1366c43353749a182c60c7dfbe2e9fa2fd567.tar.gz
ChibiOS-10b1366c43353749a182c60c7dfbe2e9fa2fd567.tar.bz2
ChibiOS-10b1366c43353749a182c60c7dfbe2e9fa2fd567.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1676 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'docs')
-rw-r--r--docs/src/concepts.dox37
1 files changed, 36 insertions, 1 deletions
diff --git a/docs/src/concepts.dox b/docs/src/concepts.dox
index e1d5f6156..6ddc8035f 100644
--- a/docs/src/concepts.dox
+++ b/docs/src/concepts.dox
@@ -174,7 +174,42 @@
* eligible for execution then they are executed in a round-robin way, the
* CPU time slice constant is configurable. The ready list is a double linked
* list of threads ordered by priority.<br><br>
- * @image html readylist.png
+ * @dot
+ digraph example {
+ rankdir="LR";
+
+ node [shape=square, fontname=Helvetica, fontsize=8,
+ fixedsize="true", width="0.6", height="0.5"];
+ edge [fontname=Helvetica, fontsize=8];
+
+ subgraph cluster_running {
+ node [shape=square, fontname=Helvetica, fontsize=8,
+ fixedsize="true", width="0.6", height="0.5"];
+ currp [label="'currp'\npointer", style="bold"];
+ T4 [label="Tuser(4)\nprio=100"];
+ label = "Currently Running Thread";
+ penwidth = 0;
+ }
+
+ subgraph cluster_rlist {
+ node [shape=square, fontname=Helvetica, fontsize=8,
+ fixedsize="true", width="0.6", height="0.5"];
+ rh [label="ready list\nheader\nprio=0", style="bold"];
+ Ti [label="Tidle\nprio=1"];
+ Tm [label="Tmain\nprio=64"];
+ T1 [label="Tuser(1)\nprio=32"];
+ T2 [label="Tuser(2)\nprio=32"];
+ T3 [label="Tuser(3)\nprio=80"];
+ label = "Threads Ready for Execution";
+ penwidth = 0;
+ }
+
+ currp -> T4
+ rh -> Ti -> T1 -> T2 -> Tm -> T3 -> rh [label="p_next"];
+ rh -> T3 -> Tm -> T2 -> T1 -> Ti -> rh [label="p_prev"];
+ }
+ * @enddot
+ * <br>
* Note that the currently running thread is not in the ready list, the list
* only contains the threads ready to be executed but still actually waiting.
*