projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch "preempt" in "trunk".
[bertos.git]
/
bertos
/
kern
/
coop.c
diff --git
a/bertos/kern/coop.c
b/bertos/kern/coop.c
index dd3aee211d82db28b7123194247480efda92d541..be3d6dfdb0756915bf339ab8e3bc8ab0476a0673 100644
(file)
--- a/
bertos/kern/coop.c
+++ b/
bertos/kern/coop.c
@@
-32,7
+32,7
@@
*
* \brief Simple cooperative multitasking scheduler.
*
*
* \brief Simple cooperative multitasking scheduler.
*
- * \version $Id
: proc.c 1616 2008-08-10 19:41:26Z bernie
$
+ * \version $Id$
* \author Bernie Innocenti <bernie@codewiz.org>
* \author Stefano Fedrigo <aleph@develer.com>
*/
* \author Bernie Innocenti <bernie@codewiz.org>
* \author Stefano Fedrigo <aleph@develer.com>
*/
@@
-56,7
+56,7
@@
* Saving and restoring the context on the stack is done by a CPU-dependent
* support routine which usually needs to be written in assembly.
*/
* Saving and restoring the context on the stack is done by a CPU-dependent
* support routine which usually needs to be written in assembly.
*/
-EXTERN_C void asm_switch_context(cpu
stack_t **new_sp, cpu
stack_t **save_sp);
+EXTERN_C void asm_switch_context(cpu
_stack_t **new_sp, cpu_
stack_t **save_sp);
/**
/**
@@
-65,15
+65,15
@@
EXTERN_C void asm_switch_context(cpustack_t **new_sp, cpustack_t **save_sp);
*/
static void proc_schedule(void)
{
*/
static void proc_schedule(void)
{
- cpuflags_t flags;
+ cpu
_
flags_t flags;
- ATOMIC(LIST_ASSERT_VALID(&
ProcReadyL
ist));
+ ATOMIC(LIST_ASSERT_VALID(&
proc_ready_l
ist));
ASSERT_USER_CONTEXT();
ASSERT_USER_CONTEXT();
-
ASSERT_IRQ
_ENABLED();
+
IRQ_ASSERT
_ENABLED();
/* Poll on the ready queue for the first ready process */
IRQ_SAVE_DISABLE(flags);
/* Poll on the ready queue for the first ready process */
IRQ_SAVE_DISABLE(flags);
- while (!(
CurrentProcess = (struct Process *)list_remHead(&ProcReadyL
ist)))
+ while (!(
current_process = (struct Process *)list_remHead(&proc_ready_l
ist)))
{
/*
* Make sure we physically reenable interrupts here, no matter what
{
/*
* Make sure we physically reenable interrupts here, no matter what
@@
-82,7
+82,7
@@
static void proc_schedule(void)
* process will ever wake up.
*
* During idle-spinning, an interrupt can occur and it may
* process will ever wake up.
*
* During idle-spinning, an interrupt can occur and it may
- * modify \p
ProcReadyL
ist. To ensure that compiler reload this
+ * modify \p
proc_ready_l
ist. To ensure that compiler reload this
* variable every while cycle we call CPU_MEMORY_BARRIER.
* The memory barrier ensure that all variables used in this context
* are reloaded.
* variable every while cycle we call CPU_MEMORY_BARRIER.
* The memory barrier ensure that all variables used in this context
* are reloaded.
@@
-101,7
+101,7
@@
static void proc_schedule(void)
void proc_switch(void)
{
/* Remember old process to save its context later */
void proc_switch(void)
{
/* Remember old process to save its context later */
-
const Process *old_process = CurrentP
rocess;
+
Process * const old_process = current_p
rocess;
proc_schedule();
proc_schedule();
@@
-109,14
+109,14
@@
void proc_switch(void)
* Optimization: don't switch contexts when the active
* process has not changed.
*/
* Optimization: don't switch contexts when the active
* process has not changed.
*/
- if (
CurrentP
rocess != old_process)
+ if (
current_p
rocess != old_process)
{
{
- cpustack_t *dummy;
+ cpu
_
stack_t *dummy;
#if CONFIG_KERN_MONITOR
LOG_INFO("Switch from %p(%s) to %p(%s)\n",
old_process, proc_name(old_process),
#if CONFIG_KERN_MONITOR
LOG_INFO("Switch from %p(%s) to %p(%s)\n",
old_process, proc_name(old_process),
-
CurrentP
rocess, proc_currentName());
+
current_p
rocess, proc_currentName());
#endif
/* Save context of old process and switch to new process. If there is no
#endif
/* Save context of old process and switch to new process. If there is no
@@
-126,18
+126,17
@@
void proc_switch(void)
* TODO: Instead of physically clearing the process at exit time, a zombie
* list should be created.
*/
* TODO: Instead of physically clearing the process at exit time, a zombie
* list should be created.
*/
- asm_switch_context(&
CurrentP
rocess->stack, old_process ? &old_process->stack : &dummy);
+ asm_switch_context(&
current_p
rocess->stack, old_process ? &old_process->stack : &dummy);
}
/* This RET resumes the execution on the new process */
}
}
/* This RET resumes the execution on the new process */
}
-
/**
* Co-operative context switch
*/
void proc_yield(void)
{
/**
* Co-operative context switch
*/
void proc_yield(void)
{
- ATOMIC(SCHED_ENQUEUE(
CurrentP
rocess));
+ ATOMIC(SCHED_ENQUEUE(
current_p
rocess));
proc_switch();
}
proc_switch();
}