summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
b0ba66e)
This should speedup things AND reduce both code size, without exposing
too much of the scheduler guts to our valued l^Husers.
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1774
38d2e660-2303-0410-9eaa-
f027e97ec537
-/* Task scheduling services */
-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))
#if !CONFIG_KERN_MONITOR
#define proc_new(entry,data,size,stack) proc_new_with_name(NULL,(entry),(data),(size),(stack))
void proc_exit(void);
void proc_yield(void);
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);
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);
#if CONFIG_KERN_PRI
void proc_setPri(struct Process *proc, int pri);