#include "syslib.h" #include #include #include #include #include #define MAX_RECEIVERS 4 #define MAX_PAYLOAD 32 int sys_mq_send(int mqdes, const char *msg_ptr, pid_t dst[], unsigned int msg_prio) { message m; m.m_lsys_krn_sys_mqueue_send.mqdes = mqdes; for (int i = 0; i < MAX_RECEIVERS; i++) { if (dst[i] == -1) { m.m_lsys_krn_sys_mqueue_send.dst[i] = dst[i]; break; } endpoint_t endpoint; int ret = sys_endpoint_from_pid(dst[i], &endpoint); if (ret != 0) endpoint = -1; m.m_lsys_krn_sys_mqueue_send.dst[i] = endpoint; } memcpy(m.m_lsys_krn_sys_mqueue_send.msg, msg_ptr, MAX_PAYLOAD); return (_kernel_call(SYS_MQ_SEND, &m)); }