rename cpuXXX_t to cpu_XXX_t
[bertos.git] / bertos / kern / coop.c
index 4b2e6b88a5c303598391e776789e4007f67e7681..aa370ae589f6c5c589b851afe817030a1dd9e224 100644 (file)
  * 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(cpustack_t **new_sp, cpustack_t **save_sp);
+EXTERN_C void asm_switch_context(cpu_stack_t **new_sp, cpu_stack_t **save_sp);
 
 
 /**
  * System scheduler: pass CPU control to the next process in
  * the ready queue.
  */
-void proc_schedule(void)
+static void proc_schedule(void)
 {
-       struct Process *old_process;
-       cpuflags_t flags;
+       cpu_flags_t flags;
 
        ATOMIC(LIST_ASSERT_VALID(&ProcReadyList));
        ASSERT_USER_CONTEXT();
-       ASSERT_IRQ_ENABLED();
-
-       /* Remember old process to save its context later */
-       old_process = CurrentProcess;
+       IRQ_ASSERT_ENABLED();
 
        /* Poll on the ready queue for the first ready process */
        IRQ_SAVE_DISABLE(flags);
@@ -100,6 +96,14 @@ void proc_schedule(void)
                IRQ_DISABLE;
        }
        IRQ_RESTORE(flags);
+}
+
+void proc_switch(void)
+{
+       /* Remember old process to save its context later */
+       Process * const old_process = CurrentProcess;
+
+       proc_schedule();
 
        /*
         * Optimization: don't switch contexts when the active
@@ -107,12 +111,12 @@ void proc_schedule(void)
         */
        if (CurrentProcess != 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,    old_process ? old_process->monitor.name : "NONE",
-                               CurrentProcess, CurrentProcess->monitor.name);
+                               old_process,    proc_name(old_process),
+                               CurrentProcess, proc_currentName());
                #endif
 
                /* Save context of old process and switch to new process. If there is no
@@ -135,6 +139,5 @@ void proc_schedule(void)
 void proc_yield(void)
 {
        ATOMIC(SCHED_ENQUEUE(CurrentProcess));
-
-       proc_schedule();
+       proc_switch();
 }