summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/gc/syscall.h29
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