aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-01-03 14:27:58 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-01-03 14:27:58 +0000
commitdc39fea05ea07302e2c51fbfbf6b37530b124577 (patch)
tree83a7aecae872bd09b140896595830ccbb29e1ba5
parente9fd3ba81330391dbb28181a98ec1e364736b6e5 (diff)
downloadChibiOS-dc39fea05ea07302e2c51fbfbf6b37530b124577.tar.gz
ChibiOS-dc39fea05ea07302e2c51fbfbf6b37530b124577.tar.bz2
ChibiOS-dc39fea05ea07302e2c51fbfbf6b37530b124577.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@164 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--docs/index.html2
-rw-r--r--src/chschd.c14
2 files changed, 9 insertions, 7 deletions
diff --git a/docs/index.html b/docs/index.html
index 10b088bbb..a4d9e32c2 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -88,7 +88,7 @@ possible so some rules were set:<br>
configure limits
for data structures, only use lists or other dynamic data structures.
See
-the&nbsp;<a href="http://chibios.sourceforge.net/doc/index.html" target="_top" rel="me">Documentation</a> and
+the&nbsp;<a href="http://chibios.sourceforge.net/html/index.html" target="_top" rel="me">Documentation</a> and
the demos.</li>
<li>No memory allocation inside the kernel, an allocator
can be
diff --git a/src/chschd.c b/src/chschd.c
index 18a4e000f..f18169c20 100644
--- a/src/chschd.c
+++ b/src/chschd.c
@@ -80,11 +80,7 @@ void chSchReadyI(Thread *tp, t_msg msg) {
* @note The function must be called in the system mutex zone.
* @note The function is not meant to be used in the user code directly.
*/
-#ifdef CH_OPTIMIZE_SPEED
-INLINE void chSchGoSleepS(t_tstate newstate) {
-#else
void chSchGoSleepS(t_tstate newstate) {
-#endif
Thread *otp;
(otp = currp)->p_state = newstate;
@@ -142,9 +138,15 @@ void chSchRescheduleS(void) {
* \p chSchRescRequired() evaluates to \p TRUE.
*/
void chSchDoRescheduleI(void) {
+ Thread *otp = currp;
- chSchReadyI(currp, RDY_OK);
- chSchGoSleepS(PRREADY);
+ chSchReadyI(otp, RDY_OK);
+ (currp = fifo_remove(&rlist.r_queue))->p_state = PRCURR;
+ rlist.r_preempt = CH_TIME_QUANTUM;
+#ifdef CH_USE_TRACE
+ chDbgTrace(otp, currp);
+#endif
+ chSysSwitchI(&otp->p_ctx, &currp->p_ctx);
}
/**