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

     Solaris DDI specific (Solaris 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(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Interface Stability         | Evolving                    |
    |_____________________________|_____________________________|


SEE ALSO

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

     Writing Device Drivers


Man(1) output converted with man2html