diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2010-06-07 16:39:45 -0500 |
---|---|---|
committer | Patrick Williams <iawillia@us.ibm.com> | 2010-06-07 16:39:45 -0500 |
commit | 9a4698af6ee4c095a97b8800d2d5f0a4bb282b15 (patch) | |
tree | 9f5241ee1f91d21c8043b359d7bfaeb309ecd5b8 /src/lib | |
parent | aa1db69f1de27bba8ee5e128f717557780f21e0d (diff) | |
download | talos-hostboot-9a4698af6ee4c095a97b8800d2d5f0a4bb282b15.tar.gz talos-hostboot-9a4698af6ee4c095a97b8800d2d5f0a4bb282b15.zip |
Add task control syscalls.
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/makefile | 3 | ||||
-rw-r--r-- | src/lib/syscall_task.C | 26 |
2 files changed, 28 insertions, 1 deletions
diff --git a/src/lib/makefile b/src/lib/makefile index 9ea27377e..1071dc75e 100644 --- a/src/lib/makefile +++ b/src/lib/makefile @@ -1,7 +1,8 @@ OBJDIR = ../../obj include ../../config.mk -OBJS = string.o stdlib.o syscall_stub.o +OBJS = string.o stdlib.o +OBJS += syscall_stub.o syscall_task.o OBJECTS = $(addprefix ${OBJDIR}/, ${OBJS}) all: ${OBJECTS} diff --git a/src/lib/syscall_task.C b/src/lib/syscall_task.C new file mode 100644 index 000000000..bfd522933 --- /dev/null +++ b/src/lib/syscall_task.C @@ -0,0 +1,26 @@ +#include <sys/task.h> +#include <kernel/task.H> + +using namespace Systemcalls; + +void task_yield() +{ + _syscall0(TASK_YIELD); + return; +} + +int task_create(void(*fn)(void*), void* ptr) +{ + return (int64_t) _syscall2(TASK_START, (void*)fn, ptr); +} + +void task_end() +{ + _syscall0(TASK_END); // no return. + return; +} + +uint64_t task_gettid() +{ + return (uint64_t)_syscall0(TASK_GETTID); +} |