XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_task_queue.h
浏览该文件的文档.
1
12#ifndef __XF_TASK_QUEUE_H__
13#define __XF_TASK_QUEUE_H__
14
15/* ==================== [Includes] ========================================== */
16
17#include "xf_utils.h"
18
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32/* ==================== [Defines] =========================================== */
33
34/* ==================== [Typedefs] ========================================== */
35
39typedef struct _xf_task_queue_t {
40 uint8_t *head;
41 uint8_t *tail;
42 uint8_t *writer;
43 uint8_t *reader;
44 volatile size_t waiting;
45 size_t count;
46 size_t size;
48
56
57/* ==================== [Global Prototypes] ================================= */
58
70xf_err_t xf_task_queue_init(xf_task_queue_t *const queue, void *data, const size_t size, const size_t count);
71
81
90
97size_t xf_task_queue_count(const xf_task_queue_t *const queue);
98
107void *xf_task_queue_peek(const xf_task_queue_t *const queue);
108
116
125
138
148
158xf_err_t xf_task_queue_receive(xf_task_queue_t *const queue, void *const buffer);
159
160/* ==================== [Macros] ============================================ */
161
162#ifdef __cplusplus
163} /* extern "C" */
164#endif
165
171#endif // __XF_TASK_QUEUE_H__
bool xf_task_queue_is_full(const xf_task_queue_t *const queue)
判断队列是否已满。
xf_err_t xf_task_queue_receive(xf_task_queue_t *const queue, void *const buffer)
从队列接收一个元素。
xf_err_t xf_task_queue_reset(xf_task_queue_t *const queue)
重置队列。
bool xf_task_queue_is_empty(const xf_task_queue_t *const queue)
判断队列是否为空。
size_t xf_task_queue_available(const xf_task_queue_t *const queue)
获取队列剩余空间。
xf_err_t xf_task_queue_init(xf_task_queue_t *const queue, void *data, const size_t size, const size_t count)
队列对象初始化。
xf_err_t xf_task_queue_remove_front(xf_task_queue_t *const queue)
从队列删除第一个元素。
_xf_task_queue_mode_t
消息队列传输模式枚举。
void * xf_task_queue_peek(const xf_task_queue_t *const queue)
获取队列第一个元素。
size_t xf_task_queue_count(const xf_task_queue_t *const queue)
获取队列数据个数
enum _xf_task_queue_mode_t xf_task_queue_mode_t
消息队列传输模式枚举。
xf_err_t xf_task_queue_send(xf_task_queue_t *const queue, void *item, const xf_task_queue_mode_t pos)
队列发送数据。
struct _xf_task_queue_t xf_task_queue_t
消息队列对象结构体。
@ XF_TASK_QUEUE_SEND_TO_BACK
@ XF_TASK_QUEUE_SEND_TO_FRONT
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
Definition xf_err.h:69
static xf_osal_queue_t queue
Definition xf_main.c:35
消息队列对象结构体。
volatile size_t waiting