Message Queue API¶
API Reference¶
Header File¶
Functions¶
-
int
msgq_create(unsigned int *qhandle, char *name, int ele_size)¶ Create Task Independent message queue
- Return
0 on success, negative value on error
- Parameters
qhandle: [out] pointer to store handle to queuename: [in] Queue name, for debugging only (cannot be null)ele_size: [in] Size of data pushed to queue
-
int
msgq_push(unsigned int qhandle, void *data)¶ Push data to queue
- Return
- Parameters
qhandle: [in] Queue handledata: [in] Pointer to data. Size of data is fixed when creating message queue see msgq_create
-
int
msgq_try_pop(unsigned int qhandle, void *data)¶ Try to get data from queue. This is a non blocking call.
- Return
0 on success, negative value on error
- Parameters
qhandle: [in] Queue handledata: [out] Pointer to buffer to store data
-
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
- Return
0 on success, negative value on error
- Parameters
qhandle: [in] Queue handledata: [out] Pointer to buffer to store datatimeout: [in] Timeout value in milliseconds, If 0 task will suspend until new data is received.
-
int
msgq_empty(unsigned int qhandle)¶ Check message queue empty or not
- Return
1 if empty, 0 if not empty, negative value on error
- Parameters
qhandle: [in] Queue handle
-
int
msgq_delete(unsigned int qhandle)¶ Delete message queue
- Return
0 on success, negative value on error
- Parameters
qhandle: [in] Queue handle
