Proactive Safety Framework  1.0
posix_msg_que.h File Reference
#include <mqueue.h>
#include <stddef.h>

Go to the source code of this file.

Classes

union  NvPSFMsgQueRetCode
 
struct  NvPSFMsgQueStatus
 

Macros

#define MQ_PERMISSIONS   0660
 Default permissions for message queues. More...
 
#define MQ_MAX_MESSAGES   10
 Maximum number of messages in the queue. More...
 
#define MQ_MAX_MSG_SIZE   2048
 Maximum size of each message in bytes. More...
 
#define MQ_MSG_BUFFER_SIZE   (MQ_MAX_MSG_SIZE + 32)
 Buffer size for messages including additional space. More...
 
#define MSG_PRIO_DEFAULT   10
 Default priority for messages. More...
 

Enumerations

enum  NvPSFMsgQueEndpointType { MSG_QUE_RECEIVER = 0 , MSG_QUE_SENDER , MSG_QUE_BIDIRECTIONAL }
 
enum  NvPSFMsgQueBlockingMode { BLOCKING = 0 , NON_BLOCKING }
 
enum  NvPSFMsgQueErr { NvPSFMSGQ_SUCCESS = 0 , NvPSFMSGQ_FAIL = 1 }
 

Functions

NvPSFMsgQueStatus NvPSFMsgQueCreate (const char *name, const NvPSFMsgQueEndpointType endpointType, const NvPSFMsgQueBlockingMode blockingMode)
 Create a message queue. More...
 
NvPSFMsgQueStatus NvPSFMsgQueClose (mqd_t mqdes)
 Close a message queue. More...
 
NvPSFMsgQueStatus NvPSFMsgQueUnlink (const char *name)
 Unlink (delete) a message queue. More...
 
NvPSFMsgQueStatus NvPSFMsgQueSend (mqd_t mqdes, const char *msg, size_t msgLen, unsigned int priority)
 Send a message over the message queue. More...
 
NvPSFMsgQueStatus NvPSFMsgQueReceive (mqd_t mqdes, char *buffer, size_t bufferLen, unsigned int *priority)
 Receive a message from the message queue. More...
 

Macro Definition Documentation

◆ MQ_MAX_MESSAGES

#define MQ_MAX_MESSAGES   10

Maximum number of messages in the queue.

◆ MQ_MAX_MSG_SIZE

#define MQ_MAX_MSG_SIZE   2048

Maximum size of each message in bytes.

◆ MQ_MSG_BUFFER_SIZE

#define MQ_MSG_BUFFER_SIZE   (MQ_MAX_MSG_SIZE + 32)

Buffer size for messages including additional space.

◆ MQ_PERMISSIONS

#define MQ_PERMISSIONS   0660

Default permissions for message queues.

◆ MSG_PRIO_DEFAULT

#define MSG_PRIO_DEFAULT   10

Default priority for messages.

Enumeration Type Documentation

◆ NvPSFMsgQueBlockingMode

Enumerator
BLOCKING 

Blocking mode for operations

NON_BLOCKING 

Non-blocking mode for operations

75  {
76  BLOCKING = 0,
NvPSFMsgQueBlockingMode
Definition: posix_msg_que.h:75
@ NON_BLOCKING
Definition: posix_msg_que.h:77
@ BLOCKING
Definition: posix_msg_que.h:76

◆ NvPSFMsgQueEndpointType

Enumerator
MSG_QUE_RECEIVER 

Message queue receiver endpoint

MSG_QUE_SENDER 

Message queue sender endpoint

MSG_QUE_BIDIRECTIONAL 
63  {
64  MSG_QUE_RECEIVER = 0,
NvPSFMsgQueEndpointType
Definition: posix_msg_que.h:63
@ MSG_QUE_SENDER
Definition: posix_msg_que.h:65
@ MSG_QUE_RECEIVER
Definition: posix_msg_que.h:64
@ MSG_QUE_BIDIRECTIONAL
Definition: posix_msg_que.h:66

◆ NvPSFMsgQueErr

Enumerator
NvPSFMSGQ_SUCCESS 

Operation was successful

NvPSFMSGQ_FAIL 

Operation failed

84  {
85  NvPSFMSGQ_SUCCESS = 0,
86  NvPSFMSGQ_FAIL = 1
NvPSFMsgQueErr
Definition: posix_msg_que.h:84
@ NvPSFMSGQ_FAIL
Definition: posix_msg_que.h:86
@ NvPSFMSGQ_SUCCESS
Definition: posix_msg_que.h:85

Function Documentation

◆ NvPSFMsgQueClose()

NvPSFMsgQueStatus NvPSFMsgQueClose ( mqd_t  mqdes)

Close a message queue.

This function closes the specified message queue descriptor.

Parameters
mqdesThe message queue descriptor to close.
Returns
A status structure indicating success or failure.

◆ NvPSFMsgQueCreate()

NvPSFMsgQueStatus NvPSFMsgQueCreate ( const char *  name,
const NvPSFMsgQueEndpointType  endpointType,
const NvPSFMsgQueBlockingMode  blockingMode 
)

Create a message queue.

This function creates a new POSIX message queue with the specified name and attributes.

Parameters
nameThe name of the message queue (must start with '/').
endpointTypeType of endpoint (sender or receiver).
blockingModeBlocking mode for the queue operations.
Returns
A status structure indicating success or failure.

◆ NvPSFMsgQueReceive()

NvPSFMsgQueStatus NvPSFMsgQueReceive ( mqd_t  mqdes,
char *  buffer,
size_t  bufferLen,
unsigned int *  priority 
)

Receive a message from the message queue.

This function receives a message from the specified message queue and stores it in the provided buffer.

Parameters
mqdesThe message queue descriptor to receive from.
bufferPointer to the buffer where the received message will be stored.
bufferLenSize of the buffer in bytes.
priorityPointer to an unsigned integer where the priority of the received message will be stored (can be NULL).
Returns
A status structure indicating success or failure and number of bytes received on success.

◆ NvPSFMsgQueSend()

NvPSFMsgQueStatus NvPSFMsgQueSend ( mqd_t  mqdes,
const char *  msg,
size_t  msgLen,
unsigned int  priority 
)

Send a message over the message queue.

This function sends a message to the specified message queue with a given priority.

Parameters
mqdesThe message queue descriptor to send the message to.
msgPointer to the message to send.
msgLenLength of the message in bytes.
priorityPriority of the message (higher values indicate higher priority).
Returns
A status structure indicating success or failure.

◆ NvPSFMsgQueUnlink()

NvPSFMsgQueStatus NvPSFMsgQueUnlink ( const char *  name)

Unlink (delete) a message queue.

This function removes the specified message queue. The queue will be deleted once all processes have closed it.

Parameters
nameThe name of the message queue to unlink (must start with '/').
Returns
A status structure indicating success or failure.