mirror of https://github.com/rusefi/ChibiOS.git
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@164 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
e9fd3ba813
commit
dc39fea05e
|
@ -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 <a href="http://chibios.sourceforge.net/doc/index.html" target="_top" rel="me">Documentation</a> and
|
||||
the <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
|
||||
|
|
14
src/chschd.c
14
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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue