pci_restore_config_regs man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

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

NAME
       pci_save_config_regs,  pci_restore_config_regs  -  save and restore the
       PCI configuration registers

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

       int pci_save_config_regs(dev_info_t *dip);

       int pci_restore_config_regs(dev_info_t *dip);

INTERFACE LEVEL
       Solaris DDI-specific (Solaris DDI).

ARGUMENTS
       dip

	   Pointer to the device's dev_info structure.

DESCRIPTION
       pci_save_config_regs() saves the	 current  configuration	 registers  on
       persistent system memory. pci_restore_config_regs() restores configura‐
       tion registers previously saved by pci_save_config_regs().

       pci_save_config_regs() should be called by the driver's	power()	 entry
       point  before  powering	a  device  off	(to  PCI  state D3). Likewise,
       pci_restore_config_regs() should be called after powering a  device  on
       (from PCI state D3), but before accessing the device. See power(9E).

RETURN VALUES
       pci_save_config_regs() and pci_restore_config_regs() return:

       DDI_SUCCESS

	   Operation completed successfully.

       DDI_FAILURE

	   Operation failed to complete successfully.

CONTEXT
       Both these functions can be called from user or kernel context.

EXAMPLES
       Example 1: Invoking the save and restore functions

       static int
       xx_power(dev_info_t *dip, int component, int level) {
	  struct xx *xx;
	  int rval = DDI_SUCCESS;

	  xx = ddi_get_soft_state(xx_softstate, ddi_get_instance(dip));
	  if (xx == NULL) {
	      return (DDI_FAILURE);
	  }

	  mutex_enter(&xx−>x_mutex);

	  switch (level) {
	  case PM_LEVEL_D0:
	      XX_POWER_ON(xx);
	      if (pci_restore_config_regs(dip) == DDI_FAILURE) {
		  /*
		   * appropriate error path handling here
		   */
		  ...
		  rval = DDI_FAILURE;
		  }
	      break;

	  case PM_LEVEL_D3:
	      if (pci_save_config_regs(dip) == DDI_FAILURE) {
		   /*
		    * appropriate error path handling here
		    */
		   ...
		   rval = DDI_FAILURE;
		   }
	       else {
		   XX_POWER_OFF(xx);
	       }
	       break;

	   default:
		 rval = DDI_FAILURE;
		 break;
	   }

	   mutex_exit(&xx−>x_mutex);
	   return (rval);
       }

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Evolving			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       attributes(5), power(9E)

       Writing Device Drivers

       PCI Bus Power Management Interface Specification Version 1.1

       PCI Bus Specification Revision 2.1

SunOS 5.10			 02 June 2000	      pci_save_config_regs(9F)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net