Files
CherryUSB/osal/usb_workq.h
2022-01-30 22:06:00 +08:00

27 lines
591 B
C

#ifndef _USB_WORKQUEUE_H
#define _USB_WORKQUEUE_H
/* Defines the work callback */
typedef void (*usb_worker_t)(void *arg);
struct usb_work
{
usb_dlist_t list;
usb_worker_t worker;
void *arg;
};
struct usb_workqueue
{
usb_dlist_t work_list;
usb_dlist_t delay_work_list;
usb_osal_sem_t sem;
usb_osal_thread_t thread;
};
extern struct usb_workqueue g_hpworkq;
extern struct usb_workqueue g_lpworkq;
void usb_workqueue_submit(struct usb_workqueue *queue, struct usb_work *work, usb_worker_t worker, void *arg, uint32_t ticks);
int usbh_workq_initialize();
#endif