diff options
Diffstat (limited to 'src/include/gc/syscall.h')
-rw-r--r-- | src/include/gc/syscall.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/include/gc/syscall.h b/src/include/gc/syscall.h index 4001420..5287d85 100644 --- a/src/include/gc/syscall.h +++ b/src/include/gc/syscall.h @@ -1,8 +1,28 @@ #ifndef DEF_SYSCALL_H #define DEF_SYSCALL_H +typedef unsigned long long uint64_t; +typedef unsigned int uint32_t; +typedef unsigned short uint16_t; +typedef unsigned char uint8_t; +typedef long long int64_t; +typedef int int32_t; +typedef short int16_t; +typedef char int8_t; + typedef unsigned size_t; +struct user_request { + uint32_t func, params[3]; + int isBlocking; // 1 : blocking request, 0 : nonblocking request (message) +}; + +struct user_sendrequest { + uint32_t func, a, b, c; + uint32_t answeri; + int64_t answerll; +}; + void thread_exit(); void schedule(); void thread_sleep(int time); @@ -13,5 +33,14 @@ void irq_wait(int number); int proc_priv(); int shm_create(size_t offset, size_t length); int shm_delete(size_t offset); +int object_create(); +int object_owned(int descriptor); +void object_close(int descriptor); +int request_get(int descriptor, struct user_request *rq, int wait); +int request_has(int descriptor); +void request_answer(int descriptor, int answer1, int answer2); +int request_mapShm(int descriptor, size_t offset, int number); +int request(int descriptor, struct user_sendrequest *rq); +int send_msg(int descriptor, struct user_sendrequest *rq); #endif |