- NetBSD Manual Pages
POWERHOOK_ESTABLISH(9) NetBSD Kernel Developer's Manual POWERHOOK_ESTABLISH(9)
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.
powerhook_establish, powerhook_disestablish -- add or remove a power
powerhook_establish(const char *name, void (*fn)(int why, void *a),
The powerhook_establish() function adds fn of the list of hooks invoked
by dopowerhooks(9) at power change. When invoked, the hook function fn
will be passed the new power state as the first argument and arg as its
The powerhook_disestablish() function removes the hook described by the
opaque pointer cookie from the list of hooks to be invoked at power
change. If cookie is invalid, the result of powerhook_disestablish() is
Power hooks should be used to perform activities that must happen when
the power situation to the computer changes. Because of the environment
in which they are run, power hooks cannot rely on many system services
(including file systems, and timeouts and other interrupt-driven ser-
vices). The power hooks are typically executed from an interrupt con-
The different reasons for calling the power hooks are: suspend, standby,
and resume. The reason is reflected in the why argument and the values
PWR_SOFTSUSPEND, PWR_SUSPEND, PWR_SOFTSTANDBY, PWR_STANDBY,
PWR_SOFTRESUME, and PWR_RESUME. It calls with PWR_SOFTxxx in the normal
priority level while the other callings are protected with splhigh(9).
At suspend the system is going to lose (almost) all power, standby
retains some power (e.g., minimal power to USB devices), and at resume
power is back to normal.
If successful, powerhook_establish() returns an opaque pointer describing
the newly-established power hook. Otherwise, it returns NULL.
NetBSD 5.0 September 24, 2006 NetBSD 5.0