Message Queue API
API Reference
Header File
Source: include/msgq.h
#include <msgq.h>
Functions
-
int msgq_create(unsigned int *qhandle, char *name, int ele_size)
Create Task Independent message queue
- Parameters:
qhandle – [out] pointer to store handle to queue
name – [in] Queue name, for debugging only (cannot be null)
ele_size – [in] Size of data pushed to queue
- Returns:
0 on success, negative value on error
-
int msgq_push(unsigned int qhandle, void *data)
Push data to queue
- Parameters:
qhandle – [in] Queue handle
data – [in] Pointer to data. Size of data is fixed when creating message queue see msgq_create
- Returns:
-
int msgq_try_pop(unsigned int qhandle, void *data)
Try to get data from queue. This is a non blocking call.
- Parameters:
qhandle – [in] Queue handle
data – [out] Pointer to buffer to store data
- Returns:
0 on success, negative value on error
-
int msgq_pop(unsigned int qhandle, void *data, int timeout)
Get data from queue. This is a blocking call, Task will be suspended if no data is available in queue. If no timeout is specified task will block until any data is received in queue
- Parameters:
qhandle – [in] Queue handle
data – [out] Pointer to buffer to store data
timeout – [in] Timeout value in milliseconds, If 0 task will suspend until new data is received.
- Returns:
0 on success, negative value on error
-
int msgq_empty(unsigned int qhandle)
Check message queue empty or not
- Parameters:
qhandle – [in] Queue handle
- Returns:
1 if empty, 0 if not empty, negative value on error
-
int msgq_delete(unsigned int qhandle)
Delete message queue
- Parameters:
qhandle – [in] Queue handle
- Returns:
0 on success, negative value on error
