#include <struct/list.h>
+#if CONFIG_KERN_PREEMPTIVE
+ #include <ucontext.h> // XXX
+#endif
+
typedef struct Process
{
Node link; /**< Link Process into scheduler lists */
#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
/** 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);