Files
arcs/arcs-sdk/components/work_queue/workqueue.h
2026-08-13 16:50:52 +08:00

31 lines
729 B
C

#ifndef _WORKQUEUE_H_
#define _WORKQUEUE_H_
#include "FreeRTOS.h"
#include "queue.h"
#ifdef __cplusplus
extern "C" {
#endif
// 工作项结构体
typedef struct {
void (*function)(void *param); // 工作函数指针
void *parameter; // 工作函数参数
} workqueue_item_t;
// 工作队列句柄
typedef struct {
QueueHandle_t queue; // 存储工作项的队列
TaskHandle_t taskHandle; // 工作队列任务句柄
StaticTask_t statictask;
} workqueue_t;
workqueue_t *workqueue_create(const char *name, int priority, uint16_t queueLength, uint16_t stackSize);
int workqueue_submit(workqueue_t *workQueue, void (*function)(void *), void *parameter);
#ifdef __cplusplus
}
#endif
#endif