power(9E)
NAME
power − power a device attached to the system
SYNOPSIS
#include <sys/ddi.h>
#include <sys/sunddi.h>
int prefixpower(dev_info_t ∗dip, int component, int level)
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI). This entry point is required. If the driver writer does not supply this entry point, the nulldev(9F) function must be used.
ARGUMENTS
dip A pointer to the device’s dev_info structure.
component The component of the driver to be managed.
level The desired power level for the component.
DESCRIPTION
The power() function is the device-specific power management entry point. This function is called when the system wants the driver to set the power level of component to level.
The level argument is the driver-defined power level to which component is set. Except for power level 0 which is defined by the framework to mean “powered off”, the interpretation of level is entirely up to the driver.
The component argument is the component of the device to be power-managed. Except for component 0, which must represent the entire device, the interpretation of component is entirely up to the driver.
The power() function can assume that the driver will be suspended (using detach(9E) with command DDI_PM_SUSPEND), before a request is made to set component 0 to power level 0 and resumed (using attach(9E) with command DDI_PM_RESUME) after setting component 0 from power level 0 to a non-zero power level.
RETURN VALUES
The power() function returns:
DDI_SUCCESS
Successfully set the power to the requested level.
DDI_FAILURE
Failed to set the power to the requested level.
CONTEXT
The power() function is called from user or kernel context only.
SEE ALSO
attach(9E), detach(9E), nulldev(9F), pm_busy_component(9F), pm_create_components(9F), pm_destroy_components(9F), pm_idle_component(9F)
Writing Device Drivers
SunOS 5.6 — Last change: 31 Jan 1997