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 queue

  • name: [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 handle

  • data: [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 handle

  • data: [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 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.

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