projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Typo: swap paraemters.
[bertos.git]
/
kern
/
proc.c
diff --git
a/kern/proc.c
b/kern/proc.c
index fc3bfe81833ae6f11edff71df24eff0c621f08b3..f28b9819fa88e3d3251c427e2df318efa352475c 100644
(file)
--- a/
kern/proc.c
+++ b/
kern/proc.c
@@
-49,6
+49,7
@@
#include <cpu/types.h>
#include <cpu/attr.h>
#include <cfg/debug.h>
#include <cpu/types.h>
#include <cpu/attr.h>
#include <cfg/debug.h>
+#include <cfg/module.h>
#include <cfg/arch_config.h> /* ARCH_EMUL */
#include <cfg/macros.h> /* ABS() */
#include <cfg/arch_config.h> /* ARCH_EMUL */
#include <cfg/macros.h> /* ABS() */
@@
-109,6
+110,7
@@
static void proc_init_struct(Process *proc)
#endif
}
#endif
}
+MOD_DEFINE(proc);
void proc_init(void)
{
void proc_init(void)
{
@@
-127,6
+129,7
@@
void proc_init(void)
/* Make sure the assembly routine is up-to-date with us */
ASSERT(asm_switch_version() == 1);
/* Make sure the assembly routine is up-to-date with us */
ASSERT(asm_switch_version() == 1);
+ MOD_INIT(proc);
}
}
@@
-149,14
+152,14
@@
struct Process *proc_new_with_name(UNUSED(const char *, name), void (*entry)(voi
/* Ignore stack provided by caller and use the large enough default instead. */
stack_base = (cpustack_t *)LIST_HEAD(&StackFreeList);
REMOVE(LIST_HEAD(&StackFreeList));
/* Ignore stack provided by caller and use the large enough default instead. */
stack_base = (cpustack_t *)LIST_HEAD(&StackFreeList);
REMOVE(LIST_HEAD(&StackFreeList));
- stacksize = CONFIG_
KERN
_DEFSTACKSIZE;
+ stacksize = CONFIG_
PROC
_DEFSTACKSIZE;
#elif CONFIG_KERN_HEAP
/* Did the caller provide a stack for us? */
if (!stack_base)
{
/* Did the caller specify the desired stack size? */
if (!stacksize)
#elif CONFIG_KERN_HEAP
/* Did the caller provide a stack for us? */
if (!stack_base)
{
/* Did the caller specify the desired stack size? */
if (!stacksize)
- stacksize = CONFIG_
KERN
_DEFSTACKSIZE + sizeof(Process);
+ stacksize = CONFIG_
PROC
_DEFSTACKSIZE + sizeof(Process);
/* Allocate stack dinamically */
if (!(stack_base = heap_alloc(stacksize)))
/* Allocate stack dinamically */
if (!(stack_base = heap_alloc(stacksize)))
@@
-240,12
+243,8
@@
void proc_rename(struct Process *proc, const char *name)
*/
void proc_schedule(void)
{
*/
void proc_schedule(void)
{
- /* This function must not have any "auto" variables, otherwise
- * the compiler might put them on the stack of the process
- * being switched out.
- */
- static struct Process *old_process;
- static cpuflags_t flags;
+ struct Process *old_process;
+ cpuflags_t flags;
/* Remember old process to save its context later */
old_process = CurrentProcess;
/* Remember old process to save its context later */
old_process = CurrentProcess;
@@
-281,7
+280,7
@@
void proc_schedule(void)
*/
if (CurrentProcess != old_process)
{
*/
if (CurrentProcess != old_process)
{
-
static
cpustack_t *dummy;
+ cpustack_t *dummy;
#if CONFIG_KERN_PREEMPTIVE
/* Reset quantum for this process */
#if CONFIG_KERN_PREEMPTIVE
/* Reset quantum for this process */
@@
-328,7
+327,7
@@
void proc_exit(void)
#warning This is wrong
/* Reinsert process stack in free list */
ADDHEAD(&StackFreeList, (Node *)(CurrentProcess->stack
#warning This is wrong
/* Reinsert process stack in free list */
ADDHEAD(&StackFreeList, (Node *)(CurrentProcess->stack
- - (CONFIG_
KERN
_DEFSTACKSIZE / sizeof(cpustack_t))));
+ - (CONFIG_
PROC
_DEFSTACKSIZE / sizeof(cpustack_t))));
/*
* NOTE: At this point the first two words of what used
/*
* NOTE: At this point the first two words of what used
@@
-348,8
+347,7
@@
void proc_exit(void)
*/
void proc_switch(void)
{
*/
void proc_switch(void)
{
- /* Just like proc_schedule, this function must not have auto variables. */
- static cpuflags_t flags;
+ cpuflags_t flags;
IRQ_SAVE_DISABLE(flags);
SCHED_ENQUEUE(CurrentProcess);
IRQ_SAVE_DISABLE(flags);
SCHED_ENQUEUE(CurrentProcess);