X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fkern%2Fproc.h;h=d5b168895bd31082e8aec7fdb8d66d1d20df7a51;hb=6f173abf128765ef8e4f71b0cd1619e2d2691cfb;hp=e9a910d4d5fbc466ae7bc217f7e651103b4532a5;hpb=e62ca0b357f09804d7d894949df44224c9d74bb7;p=bertos.git diff --git a/bertos/kern/proc.h b/bertos/kern/proc.h index e9a910d4..d5b16889 100644 --- a/bertos/kern/proc.h +++ b/bertos/kern/proc.h @@ -54,9 +54,8 @@ */ struct Process; -/* Task scheduling services */ void proc_init(void); -struct Process *proc_new_with_name(const char* name, void (*entry)(void), iptr_t data, size_t stacksize, cpu_stack_t *stack); +struct Process *proc_new_with_name(const char *name, void (*entry)(void), iptr_t data, size_t stacksize, cpu_stack_t *stack); #if !CONFIG_KERN_MONITOR #define proc_new(entry,data,size,stack) proc_new_with_name(NULL,(entry),(data),(size),(stack)) @@ -66,16 +65,27 @@ struct Process *proc_new_with_name(const char* name, void (*entry)(void), iptr_t void proc_exit(void); void proc_yield(void); +void proc_rename(struct Process *proc, const char *name); +const char *proc_name(struct Process *proc); +const char *proc_currentName(void); +iptr_t proc_currentUserData(void); int proc_testSetup(void); int proc_testRun(void); int proc_testTearDown(void); -struct Process *proc_current(void); -iptr_t proc_currentUserData(void); -void proc_rename(struct Process *proc, const char *name); -const char *proc_name(struct Process *proc); -const char *proc_currentName(void); +/** + * Return the context structure of the currently running process. + * + * The details of the Process structure are private to the scheduler. + * The address returned by this function is an opaque pointer that can + * be passed as an argument to other process-related functions. + */ +INLINE struct Process *proc_current(void) +{ + extern struct Process *CurrentProcess; + return CurrentProcess; +} #if CONFIG_KERN_PRI void proc_setPri(struct Process *proc, int pri); @@ -222,7 +232,7 @@ INLINE bool proc_allowed(void) */ #define CONFIG_KERN_MINSTACKSIZE \ (CPU_SAVED_REGS_CNT * 2 * sizeof(cpu_stack_t) \ - + 32 * sizeof(int)) + + 48 * sizeof(int)) #endif #endif