From 40dae3708fbc0d84a0a2a4bd2cf024992c03db0d Mon Sep 17 00:00:00 2001 From: Salvatore Benedetto Date: Thu, 11 Sep 2008 15:03:01 +0000 Subject: [PATCH] * Adding msg{rcv,snd,get,ctl} syscalls to the system * Add message queue init function call to main.cpp git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27417 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/kernel/posix/xsi_message_queue.h | 2 ++ headers/private/system/syscalls.h | 11 +++++++++++ src/system/kernel/main.cpp | 2 ++ src/system/kernel/syscalls.cpp | 1 + 4 files changed, 16 insertions(+) diff --git a/headers/private/kernel/posix/xsi_message_queue.h b/headers/private/kernel/posix/xsi_message_queue.h index fda71429e2..2221b78dd2 100644 --- a/headers/private/kernel/posix/xsi_message_queue.h +++ b/headers/private/kernel/posix/xsi_message_queue.h @@ -15,6 +15,8 @@ __BEGIN_DECLS +extern void xsi_msg_init(); + /* user calls */ int _user_xsi_msgctl(int messageQueueID, int command, struct msqid_ds *buffer); int _user_xsi_msgget(key_t key, int messageQueueFlags); diff --git a/headers/private/system/syscalls.h b/headers/private/system/syscalls.h index b1c34a5043..00d14938f4 100644 --- a/headers/private/system/syscalls.h +++ b/headers/private/system/syscalls.h @@ -24,6 +24,7 @@ struct fd_info; struct fd_set; struct fs_info; struct iovec; +struct msqid_ds; struct net_stat; struct pollfd; struct rlimit; @@ -101,6 +102,16 @@ extern int _kern_xsi_semctl(int semID, int semNumber, int command, extern status_t _kern_xsi_semop(int semID, struct sembuf *semOps, size_t numSemOps); +/* POSIX XSI message queue syscalls */ +extern int _kern_xsi_msgctl(int messageQueueID, int command, + struct msqid_ds *buffer); +extern int _kern_xsi_msgget(key_t key, int messageQueueFlags); +extern ssize_t _kern_xsi_msgrcv(int messageQueueID, void *messagePointer, + size_t messageSize, long messageType, int messageFlags); +extern int _kern_xsi_msgsnd(int messageQueueID, + const void *messagePointer, size_t messageSize, + int messageFlags); + /* team & thread syscalls */ extern thread_id _kern_load_image(const char* const* flatArgs, size_t flatArgsSize, int32 argCount, int32 envCount, diff --git a/src/system/kernel/main.cpp b/src/system/kernel/main.cpp index 6e5ce4d1f1..04a0240cf0 100644 --- a/src/system/kernel/main.cpp +++ b/src/system/kernel/main.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -170,6 +171,7 @@ _start(kernel_args *bootKernelArgs, int currentCPU) TRACE("init POSIX semaphores\n"); realtime_sem_init(); xsi_sem_init(); + xsi_msg_init(); TRACE("init VM threads\n"); vm_init_post_thread(&sKernelArgs); diff --git a/src/system/kernel/syscalls.cpp b/src/system/kernel/syscalls.cpp index cb96279252..7b92ee3e9f 100644 --- a/src/system/kernel/syscalls.cpp +++ b/src/system/kernel/syscalls.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include