summaryrefslogtreecommitdiff
path: root/src/kernel/ipc/request.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/ipc/request.h')
-rw-r--r--src/kernel/ipc/request.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/kernel/ipc/request.h b/src/kernel/ipc/request.h
index bf90c68..4a35dc3 100644
--- a/src/kernel/ipc/request.h
+++ b/src/kernel/ipc/request.h
@@ -10,13 +10,12 @@
struct request {
struct object *obj;
- struct thread *requester;
- uint32_t func, param1, param2, param3;
- struct seg_map *shm_cli, *shm_srv;
- int answerType;
+ struct thread *requester; //0 if nonblocking message
+ uint32_t func, params[3];
+ struct seg_map *shm_srv[3], *shm_cli[3];
union {
- int num;
- struct object* obj;
+ int64_t ll;
+ uint32_t n;
} answer;
};
@@ -25,5 +24,14 @@ struct user_request {
int hasShm;
};
+//syscalls
+int request_get(int obj, uint32_t ptr, int wait);
+int request_has(int obj);
+void request_answer(int obj, uint32_t answer);
+int request_mapShm(int obj, uint32_t pos, int number);
+
+int request(int obj, uint32_t func, uint32_t a, uint32_t b, uint32_t c, uint32_t answerptr);
+int send_msg(int obj, uint32_t func, uint32_t a, uint32_t b, uint32_t c);
+
#endif