34 lines
811 B
C
34 lines
811 B
C
|
|
#include "osal/sleep.h"
|
||
|
|
#include "osal/work.h"
|
||
|
|
#include "osal/irq.h"
|
||
|
|
__bobj struct os_workqueue user_wkq;
|
||
|
|
#define USER_WKQ user_wkq
|
||
|
|
|
||
|
|
int32 os_run_userwork(struct os_work *work)
|
||
|
|
{
|
||
|
|
if (!USER_WKQ.init || work == NULL || work->func == NULL) {
|
||
|
|
return -EINVAL;
|
||
|
|
}
|
||
|
|
|
||
|
|
os_work_schedule(&USER_WKQ, work);
|
||
|
|
return RET_OK;
|
||
|
|
}
|
||
|
|
|
||
|
|
int32 os_run_userwork_delay(struct os_work *work, uint32 delay_ms)
|
||
|
|
{
|
||
|
|
if (!USER_WKQ.init || work == NULL || work->func == NULL) {
|
||
|
|
return -EINVAL;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (delay_ms == 0) {
|
||
|
|
os_work_schedule(&USER_WKQ, work);
|
||
|
|
} else {
|
||
|
|
os_work_schedule_delay(&USER_WKQ, work, delay_ms);
|
||
|
|
}
|
||
|
|
return RET_OK;
|
||
|
|
}
|
||
|
|
|
||
|
|
void user_workqueue_init(uint16 pri,void *stack,uint16 stack_size)
|
||
|
|
{
|
||
|
|
os_workqueue_init(&USER_WKQ,"userworkqueue",pri,stack,stack_size);
|
||
|
|
}
|