pci_restore_config_regs man page on SmartOS

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

PCI_SAVE_CONFIG_REGS(9F)			      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 │ Committed	      │
       └────────────────────┴─────────────────┘

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

       Writing Device Drivers

       PCI Bus Power Management Interface Specification Version 1.1

       PCI Bus Specification Revision 2.1

				 Jun 02, 2000	      PCI_SAVE_CONFIG_REGS(9F)
[top]

List of man pages available for SmartOS

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