NAME
workqueue_create
- Create a workqueue
SYNOPSIS
int
workqueue_create(
struct workqueue **wqp
, const char *name
void (*func)(struct work *, void *), void *arg
, pri_t prio
, int ipl
, int flags
)
DESCRIPTION
workqueue_create(
)
creates a workqueue.
It takes the following arguments.
wqp
-
Specify where to store the created workqueue.
name
-
The name of the workqueue.
func
-
The function to be called for each
work
.
arg
-
An argument to be passed as a second argument of
func
.
prio
-
The process priority to be used when sleeping to wait requests.
ipl
-
The highest IPL at which this workqueue is used.
flags
-
The value of 0 indicates a standard create operation, however the following
flags may be bitwise ORed together:
WQ_MPSAFE
-
Specifies that the workqueue is multiprocessor safe and does its own locking,
otherwise the kernel lock will be held while work will be processed.
WQ_PERCPU
-
Specifies that the workqueue should have a separate queue for each CPU,
thus the work could be enqueued on concrete CPUs.
RETURN VALUES
workqueue_create(
)
returns 0 on success.
Otherwise, it returns an
errno(2).
SEE ALSO
errno(2),
condvar(9),
intro(9),
workqueue(9)