sysmon_taskq(9)
- NetBSD Manual Pages
SYSMON_TASKQ(9) NetBSD Kernel Developer's Manual SYSMON_TASKQ(9)
NAME
sysmon_taskq -- general purpose system monitoring task queue
SYNOPSIS
#include <dev/sysmon/sysmon_taskq.h>
void
sysmon_task_queue_preinit(void);
void
sysmon_task_queue_init(void);
void
sysmon_task_queue_fini(void);
int
sysmon_task_queue_sched(u_int pri, void (*func)(void *), void *arg);
void
sysmon_task_queue_barrier(u_int pri);
DESCRIPTION
The machine-independent sysmon_taskq provides a simple general purpose
task queue. It can be used to run callbacks that require thread context,
but do not warrant the use of a more fine-grained solution.
Although the intended usage is related to the context of system monitor-
ing and power management, also other comparable functions are suitable
for sysmon_taskq.
FUNCTIONS
The necessary internal data structures are initialized during system
startup by sysmon_task_queue_preinit(). Before actual usage, a machine-
dependent procedure should finish the initialization by calling
sysmon_task_queue_init(). This will create a kernel thread that can be
later halted by sysmon_task_queue_fini(). All scheduled tasks are exe-
cuted before the queue is halted.
The sysmon_task_queue_sched() function enqueues func to be executed at
the priority pri. If pri is 0, the scheduled function will be placed as
the last element in the queue. The single argument passed to func is
specified by arg.
The sysmon_task_queue_barrier() function waits for the completion of all
tasks at pri or lower currently queued at the time of the call.
RETURN VALUES
Upon successful completion, sysmon_task_queue_sched() returns 0. Other-
wise, the following error values are returned:
[EINVAL] An invalid parameter was specified.
[ENOMEM] There was not enough memory.
SEE ALSO
queue(3), kthread(9), workqueue(9)
AUTHORS
Jason R. Thorpe <thorpej@NetBSD.org>
NetBSD 10.99 January 24, 2010 NetBSD 10.99
Powered by man-cgi (2024-03-20).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.