X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fkern%2Fproc_p.h;h=a5c7dbe3120ef6ff134039ecd4adca68c63e52f0;hb=fe0a14d1434098bfd0780d06a2a7e55f27940d27;hp=54ea3710acb4f5ca4c72831451b82dc8e9cf01bd;hpb=ebaf963fb967c6511649cd8c348c56812214501f;p=bertos.git diff --git a/bertos/kern/proc_p.h b/bertos/kern/proc_p.h index 54ea3710..a5c7dbe3 100644 --- a/bertos/kern/proc_p.h +++ b/bertos/kern/proc_p.h @@ -41,7 +41,6 @@ #define KERN_PROC_P_H #include "cfg/cfg_proc.h" -#include "cfg/cfg_signal.h" #include "cfg/cfg_monitor.h" #include @@ -49,49 +48,11 @@ #include /* for cpu_stack_t */ #include // IRQ_ASSERT_DISABLED() -#include - #if CONFIG_KERN_PREEMPT #include // XXX #endif -typedef struct Process -{ -#if CONFIG_KERN_PRI - PriNode link; /**< Link Process into scheduler lists */ -#else - Node link; /**< Link Process into scheduler lists */ -#endif - cpu_stack_t *stack; /**< Per-process SP */ - iptr_t user_data; /**< Custom data passed to the process */ - -#if CONFIG_KERN_SIGNALS - sigmask_t sig_wait; /**< Signals the process is waiting for */ - sigmask_t sig_recv; /**< Received signals */ -#endif - -#if CONFIG_KERN_HEAP - uint16_t flags; /**< Flags */ -#endif - -#if CONFIG_KERN_HEAP | CONFIG_KERN_MONITOR | (ARCH & ARCH_EMUL) - cpu_stack_t *stack_base; /**< Base of process stack */ - size_t stack_size; /**< Size of process stack */ -#endif - -#if CONFIG_KERN_PREEMPT - ucontext_t context; -#endif - -#if CONFIG_KERN_MONITOR - struct ProcMonitor - { - Node link; - const char *name; - } monitor; -#endif - -} Process; +#include // struct Process /** @@ -133,7 +94,7 @@ extern REGISTER List ProcReadyList; SCHED_ENQUEUE_INTERNAL(proc); \ } while (0) -#ifdef CONFIG_KERN_PRI +#if CONFIG_KERN_PRI /** * Changes the priority of an already enqueued process. * @@ -144,7 +105,7 @@ extern REGISTER List ProcReadyList; * * \note Performance could be improved with a different implementation of priority list. */ -INLINE void SCHED_CHANGE_PRI(struct Process *proc) +INLINE void sched_reenqueue(struct Process *proc) { IRQ_ASSERT_DISABLED(); LIST_ASSERT_VALID(&ProcReadyList); @@ -152,9 +113,9 @@ INLINE void SCHED_CHANGE_PRI(struct Process *proc) PriNode *pos = NULL; FOREACH_NODE(n, &ProcReadyList) { - if (n == &proc->link) + if (n == &proc->link.link) { - pos = n; + pos = (PriNode *)n; break; } }