summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/kernel/syscalls.H3
-rw-r--r--src/include/kernel/task.H2
-rw-r--r--src/include/kernel/taskmgr.H3
-rw-r--r--src/include/sys/syscall.h2
-rw-r--r--src/include/sys/task.h20
5 files changed, 27 insertions, 3 deletions
diff --git a/src/include/kernel/syscalls.H b/src/include/kernel/syscalls.H
index a7a0ef6b7..826ac93b9 100644
--- a/src/include/kernel/syscalls.H
+++ b/src/include/kernel/syscalls.H
@@ -6,6 +6,9 @@ namespace Systemcalls
enum SysCalls
{
TASK_YIELD = 0,
+ TASK_START,
+ TASK_END,
+ TASK_GETTID,
SYSCALL_MAX
};
diff --git a/src/include/kernel/task.H b/src/include/kernel/task.H
index d9256c365..4cd19bd04 100644
--- a/src/include/kernel/task.H
+++ b/src/include/kernel/task.H
@@ -23,4 +23,6 @@ struct task_t
task_t* next;
};
+enum { TASK_DEFAULT_STACK_SIZE = 4 };
+
#endif
diff --git a/src/include/kernel/taskmgr.H b/src/include/kernel/taskmgr.H
index 34267324c..2bdb39c16 100644
--- a/src/include/kernel/taskmgr.H
+++ b/src/include/kernel/taskmgr.H
@@ -10,15 +10,14 @@ class TaskManager
static void setCurrentTask(task_t* t);
typedef void(*task_fn_t)(void*);
+ static task_t* createTask(task_fn_t, void*);
friend class CpuManager;
- friend class Kernel;
protected:
TaskManager();
~TaskManager() {};
static task_t* createIdleTask();
- static task_t* createTask(task_fn_t, void*);
private:
tid_t getNextTid();
diff --git a/src/include/sys/syscall.h b/src/include/sys/syscall.h
index b418b5d15..36f84a51f 100644
--- a/src/include/sys/syscall.h
+++ b/src/include/sys/syscall.h
@@ -19,7 +19,7 @@ void* _syscall7(uint64_t, void*, void*, void*, void*, void*, void*, void*);
#ifdef __cplusplus
}
+#include <kernel/syscalls.H>
#endif
-#include <kernel/syscalls.H>
#endif
diff --git a/src/include/sys/task.h b/src/include/sys/task.h
new file mode 100644
index 000000000..84ddb10f9
--- /dev/null
+++ b/src/include/sys/task.h
@@ -0,0 +1,20 @@
+#ifndef __SYS_TASK_H
+#define __SYS_TASK_H
+
+#include <sys/syscall.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+void task_yield();
+int task_create(void(*)(void*), void*);
+void task_end();
+
+uint64_t task_gettid();
+
+#ifdef __cplusplus
+}
+#endif
+#endif
OpenPOWER on IntegriCloud