DDI_REMOVING_POWER(9F) Kernel Functions for Drivers DDI_REMOVING_POWER(9F)

NAME


ddi_removing_power - check whether DDI_SUSPEND might result in power
being removed from a device

SYNOPSIS


#include <sys/ddi.h>
#include <sys/sunddi.h>


int ddi_removing_power(dev_info_t *dip);


INTERFACE LEVEL


illumos DDI specific (illumos DDI)

DESCRIPTION


The ddi_removing_power() function indicates whether a currently
pending call into a driver's detach(9E) entry point with a command of
DDI_SUSPEND is likely to result in power being removed from the
device.


ddi_removing_power() can return true and power still not be removed
from the device due to a failure to suspend and power off the system.

PARAMETERS


The ddi_removing_power() function supports the following parameter:

dip
pointer to the device's dev_info structure


RETURN VALUES


The ddi_removing_power() function returns:

1
Power might be removed by the framework as a result of the
pending DDI_SUSPEND call.


0
Power will not be removed by the framework as a result of the
pending DDI_SUSPEND call.


EXAMPLES


Example 1: Protecting a Tape from Abrupt Power Removal




A tape driver that has hardware that would damage the tape if power
is removed might include this code in its detach(9E) code:


int
xxdetach(dev_info_t *dip, ddi_detach_cmd_t cmd)
{

...
case DDI_SUSPEND:
/*
* We do not allow DDI_SUSPEND if power will be removed and
* we have a device that damages tape when power is removed
* We do support DDI_SUSPEND for Device Reconfiguration,
* however.
*/
if (ddi_removing_power(dip) && xxdamages_tape(dip))
return (DDI_FAILURE);
...


ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+

SEE ALSO


cpr(4), attributes(7), attach(9E), detach(9E)


Writing Device Drivers

March 14, 2001 DDI_REMOVING_POWER(9F)

tribblix@gmail.com :: GitHub :: Privacy