## **Overview**
**Related Modules:**
[DriverUtils](DriverUtils.md)
**Description:**
Declares work queue structures and interfaces.
This file provides interfaces such as initializing a work queue, a work item, and a delayed work item, adding a work or delayed work item to a work queue, and destroying a work queue, a work item, and a delayed work item. You need to define a work queue, a work item, and a delayed work item, and then call the initialization function to initialize them. The work item, delayed work item, and work queue must be destroyed when they are no longer used.
**Since:**
1.0
**Version:**
1.0
## **Summary**
## Data Structures
Describes a work item and a delayed work item. This structure defines the work and delayed work items, and then calls the initialization function HdfWorkInit or HdfDelayedWorkInit to perform initialization. The HdfAddWork() function is to add a work item to a work queue immediately, and the HdfAddDelayedWork() function is to add a work item to a work queue after the configured delayed time. | |
## Typedefs
HdfWorkFunc) (void *) | Describes a work execution function type. |
## Enumerations
{ HDF_WORK_BUSY_PENDING = 1 << 0, HDF_WORK_BUSY_RUNNING = 1 << 1 } | Enumerates statuses of a work item or a delayed work item. |
## Functions
HdfWorkQueueInit (HdfWorkQueue *queue, char *name) | |
HdfWorkInit (HdfWork *work, HdfWorkFunc func, void *arg) | |
HdfDelayedWorkInit (HdfWork *work, HdfWorkFunc func, void *arg) | Initializes a delayed work item. |
HdfWorkDestroy (HdfWork *work) | |
HdfWorkQueueDestroy (HdfWorkQueue *queue) | |
HdfDelayedWorkDestroy (HdfWork *work) | |
HdfAddWork (HdfWorkQueue *queue, HdfWork *work) | Adds a work item to a work queue. |
HdfAddDelayedWork (HdfWorkQueue *queue, HdfWork *work, unsigned long ms) | Adds a delayed work item to a work queue. |
HdfWorkBusy (HdfWork *work) | Obtains the status of a work item or delayed work item. |
HdfCancelWorkSync (HdfWork *work) | Cancels a work item. This function waits until the work item is complete. |
HdfCancelDelayedWorkSync (HdfWork *work) |