1/* 2 * Copyright 2008, Haiku Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Salvatore Benedetto <salvatore.benedetto@gmail.com> 7 */ 8 9#include <sys/msg.h> 10 11#include <errno.h> 12#include <fcntl.h> 13#include <stdarg.h> 14#include <stdlib.h> 15 16#include <OS.h> 17 18#include <errno_private.h> 19#include <syscall_utils.h> 20#include <syscalls.h> 21 22 23int 24msgctl(int messageQueueID, int command, struct msqid_ds *buffer) 25{ 26 RETURN_AND_SET_ERRNO(_kern_xsi_msgctl(messageQueueID, command, buffer)); 27} 28 29 30int 31msgget(key_t key, int messageQueueFlags) 32{ 33 RETURN_AND_SET_ERRNO(_kern_xsi_msgget(key, messageQueueFlags)); 34} 35 36 37ssize_t 38msgrcv(int messageQueueID, void *messagePointer, size_t messageSize, 39 long messageType, int messageFlags) 40{ 41 RETURN_AND_SET_ERRNO_TEST_CANCEL(_kern_xsi_msgrcv(messageQueueID, 42 messagePointer, messageSize, messageType, messageFlags)); 43} 44 45 46int 47msgsnd(int messageQueueID, const void *messagePointer, size_t messageSize, 48 int messageFlags) 49{ 50 RETURN_AND_SET_ERRNO_TEST_CANCEL(_kern_xsi_msgsnd(messageQueueID, 51 messagePointer, messageSize, messageFlags)); 52} 53