hdf_workqueue.h

Overview

Related Modules:

DriverUtils

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

Data Structure Name

Description

HdfWork

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.

HdfWorkQueue

Describes a work queue.

Typedefs

Typedef Name

Description

HdfWorkFunc) (void )

typedef void( 

Describes a work execution function type.

Enumerations

Enumeration Name

Description

{ HDF_WORK_BUSY_PENDING = 1 << 0, HDF_WORK_BUSY_RUNNING = 1 << 1 }

Enumerates statuses of a work item or a delayed work item.

Functions

Function Name

Description

HdfWorkQueueInit (HdfWorkQueue queue, char name)

int32_t 

Initializes a work queue.

HdfWorkInit (HdfWork work, HdfWorkFunc func, void arg)

int32_t 

Initializes a work item.

HdfDelayedWorkInit (HdfWork work, HdfWorkFunc func, void arg)

int32_t 

Initializes a delayed work item.

HdfWorkDestroy (HdfWork work)

void 

Destroys a work item.

HdfWorkQueueDestroy (HdfWorkQueue queue)

void 

Destroys a work queue.

HdfDelayedWorkDestroy (HdfWork work)

void 

Destroys a delayed work item.

HdfAddWork (HdfWorkQueue queue, HdfWork work)

bool 

Adds a work item to a work queue.

HdfAddDelayedWork (HdfWorkQueue queue, HdfWork work, unsigned long ms)

bool 

Adds a delayed work item to a work queue.

HdfWorkBusy (HdfWork work)

unsigned int 

Obtains the status of a work item or delayed work item.

HdfCancelWorkSync (HdfWork work)

bool 

Cancels a work item. This function waits until the work item is complete.

HdfCancelDelayedWorkSync (HdfWork work)

bool 

Cancels a delayed work item.