Specifications

no-involuntary-power-cycles device property to prevent involuntary power cycles
A device that might be damaged by power cycles should export the boolean (zero
length) property no-involuntary-power-cycles to notify the system that all
power cycles for the device must be under the control of the device driver.
The presence of this property prevents power from being removed from a device or
any ancestor of the device while the device driver is detached, unless the device was
voluntarily powered off as a result of the device driver calling pm_lower_power(9F).
The presence of no-involuntary-power-cycles also forces attachment of the
device driver during a CPR suspend operation and prevents the suspend from taking
place, unless the device driver returns DDI_SUCCESS when its detach(9E) entry
point is called with DDI_SUSPEND.
The presence of no-involuntary-power-cycles does not prevent the system
from being powered off due to a halt(1M) or uadmin(1M) invocation, except for CPR
suspend.
This property can be exported by a device that is not power manageable, in which
case power is not removed from the device or from any of its ancestors, even when the
driver for the device and the drivers for its ancestors are detached.
EXAMPLE 1 Use of Property in Drivers Conguration File
The following is an example of a no-involuntary-power-cycles entry in a
drivers .conf le:
no-involuntary-power-cycles=1;
...
EXAMPLE 2 Use of Property in attach() Function
The following is an example of how the preceding .conf le entry would be
implemented in the attach(9E) function of a driver:
xxattach(dev_info_t *dip, ddi_attach_cmd_t cmd)
{
...
if (ddi_prop_create(DDI_DEV_T_NONE, dip, DDI_PROP_CANSLEEP,
"no-involuntary-power-cycles", NULL, 0) != DDI_PROP_SUCCESS)
goto failed;
...
}
See attributes(5) for descriptions of the following attributes:
no-involuntary-power-cycles(9P)
NAME
DESCRIPTION
EXAMPLES
ATTRIBUTES
Data Structures for Drivers 73