| POWERHOOK_ESTABLISH(9) | Kernel Developer's Manual | POWERHOOK_ESTABLISH(9) | 
powerhook_establish,
  powerhook_disestablish —
powerhook_establish(const
  char *name, void (*fn)(int
  why, void *a), void
  *arg);
void
  
  powerhook_disestablish(void
    *cookie);
powerhook_establish
  API is deprecated.
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 second argument.
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 undefined.
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 services). The power hooks are typically executed from an interrupt context.
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.
powerhook_establish() returns an opaque
  pointer describing the newly-established power hook. Otherwise, it returns
  NULL.
| May 14, 2009 | NetBSD 10.0 |