From bd8c35d8e7bea4a69799e11ab13d65deb16fed49 Mon Sep 17 00:00:00 2001 From: Jeremy Lorelli Date: Tue, 23 Sep 2025 09:16:29 -0700 Subject: [PATCH] Implement epicsMessageQueueSend/epicsMessageQueueReceive to resolve link error These were defined as macros in osdMessageQueue.h, but declared as prototypes in epcisMessageQueue.h public header. We need to implement them as C functions for these to actually be usable. --- .../src/osi/os/RTEMS-posix/osdMessageQueue.c | 16 ++++++++++++++++ .../src/osi/os/RTEMS-posix/osdMessageQueue.h | 2 -- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/modules/libcom/src/osi/os/RTEMS-posix/osdMessageQueue.c b/modules/libcom/src/osi/os/RTEMS-posix/osdMessageQueue.c index 7ccdc878d..fd55fa005 100644 --- a/modules/libcom/src/osi/os/RTEMS-posix/osdMessageQueue.c +++ b/modules/libcom/src/osi/os/RTEMS-posix/osdMessageQueue.c @@ -74,6 +74,22 @@ LIBCOM_API void epicsStdCall epicsMessageQueueDestroy( free(id); } +LIBCOM_API int epicsStdCall epicsMessageQueueSend( + epicsMessageQueueId id, + void *message, + unsigned int messageSize) +{ + return mq_send(id->id, (const char*)message, messageSize, 0); +} + +LIBCOM_API int epicsStdCall epicsMessageQueueReceive( + epicsMessageQueueId id, + void *message, + unsigned int messageSize) +{ + return mq_receive(id->id, (char*)message, messageSize, NULL); +} + LIBCOM_API int epicsStdCall epicsMessageQueueTrySend( epicsMessageQueueId id, diff --git a/modules/libcom/src/osi/os/RTEMS-posix/osdMessageQueue.h b/modules/libcom/src/osi/os/RTEMS-posix/osdMessageQueue.h index 95e66e73e..a3fc30bd4 100644 --- a/modules/libcom/src/osi/os/RTEMS-posix/osdMessageQueue.h +++ b/modules/libcom/src/osi/os/RTEMS-posix/osdMessageQueue.h @@ -23,6 +23,4 @@ struct epicsMessageQueueOSD { mqd_t id; char name[24]; }; -#define epicsMessageQueueSend(q,m,l) (mq_send((q)->id, (const char*)(m), (l), 0)) -#define epicsMessageQueueReceive(q,m,s) (mq_receive((q)->id, (char*)(m), (s), NULL))