IRQ_ASSERT_{EN,DIS}ABLE(): Rename for consistency.
[bertos.git] / bertos / kern / proc_p.h
index 6a79eec30d6048194f359f40458e3d8943b39e2d..fbac38fc565a59016267868d9a20f95a0c64fe9e 100644 (file)
 
 #include <cpu/types.h>        /* for cpu_stack_t */
 
-#include <mware/list.h>
+#include <struct/list.h>
+
+#if CONFIG_KERN_PREEMPTIVE
+       #include <ucontext.h> // XXX
+#endif
 
 typedef struct Process
 {
@@ -60,6 +64,8 @@ typedef struct Process
 
 #if CONFIG_KERN_PREEMPTIVE
        int          forbid_cnt;  /**< Nesting count for proc_forbid()/proc_permit(). */
+       bool         leaving;     /**< XXX: maybe global? */
+       ucontext_t   context;
 #endif
 
 #if CONFIG_KERN_HEAP
@@ -116,6 +122,11 @@ extern REGISTER List     ProcReadyList;
 /** Schedule to another process *without* adding the current to the ready list. */
 void proc_schedule(void);
 
+#if CONFIG_KERN_PREEMPT
+void proc_entry(void (*user_entry)(void));
+void preempt_init(void);
+#endif
+
 #if CONFIG_KERN_MONITOR
        /** Initialize the monitor */
        void monitor_init(void);