Index Index for
Section 9
Index Alphabetical
listing for P
Bottom of page Bottom of
page

pci_config_hdr(9s)

NAME

pci_config_hdr - PCI: Contains configuration and register layout information

SYNOPSIS

___________________________________ Member Name Data Type ___________________________________ vendor_id u_short device_id u_short command u_short status u_short rev_id u_char class_code struct class_code cache_line_size u_char latency_timer u_char hdr_type u_char bist u_char bar0 io_handle_t bar1 io_handle_t bar2 io_handle_t bar3 io_handle_t bar4 io_handle_t bar5 io_handle_t cis_ptr io_handle_t sub_vendor_id u_short sub_device_id u_short exp_rom_bar io_handle_t intr_line u_char intr_pin u_char min_gnt u_char max_lat u_char config_base io_handle_t private u_long ___________________________________

MEMBERS

vendor_id Specifies a vendor ID. The PCI bus configuration code obtains this vendor ID from the vendor ID device register. This ID identifies the manufacturer of the device that operates on the PCI bus. Manufacturers who are members of the PCI special interest group (SIG) can request a vendor ID to avoid conflict with other vendors. device_id Specifies a device ID that identifies the specific device. The PCI bus configuration code obtains this device ID from the device ID device register. The device's manufacturer determines its device ID. command Specifies a command that provides general control over a device's ability to generate and respond to PCI bus cycles. The PCI bus configuration code obtains the command from the command device register. The PCI bus configuration code can set the command device register, as represented in the command member, to the bitwise inclusive OR of the command device register bits defined in /usr/sys/include/io/dec/pci/pci.h. status Records status information for PCI bus-related events. The PCI bus configuration code copies this status information from the status device register to the status member. Reads to the status device register behave normally, but writes are handled specially. Some bits may not be set by a write. For instance, most error bits are designated as W1C (write 1 to clear). That is, whenever data is written to the register, those register bits are cleared that correspond to those data bit positions that are set. No other register bits are affected by the write. The status device register bits are defined in /usr/sys/include/io/dec/pci/pci.h. rev_id Specifies a device-specific revision ID. The PCI bus configuration code obtains this device-specific revision ID from the revision ID device register. The device's manufacturer determines its revision ID. class_code Specifies a class code. This member is a data structure that stores information related to the device's class code device register. cache_line_size Specifies a cache line size in units of 32-bit words. The PCI bus configuration code obtains this cache line size from the cache line size device register. Power-on self-test code sets the cache_line_size member according to PCI Local Bus Specification Revision 2.1. latency_timer Indicates the value of a bus master's latency timer in units of PCI bus clock ticks. The PCI bus configuration code obtains this latency timer from the latency timer device register. hdr_type Identifies a multifunction device and specifies the layout of bytes 16 through 63 in the configuration space header. The PCI bus configuration code obtains this information from the header type device register. bist Controls and records the status of a device's built-in self test. The PCI bus configuration code obtains this value from the built-in self test device register. bar0 Contains an I/O handle to the address space specified by the base address zero (BAR0) device register. A driver can read the I/O handle from the bar0 member and use it in calls to the read_io_port and write_io_port routines to access the address space. bar1 Contains an I/O handle to the address space specified by the base address one (BAR1) device register. A driver can read the I/O handle from the bar1 member and use it in calls to the read_io_port and write_io_port routines to access the address space. bar2 Contains an I/O handle to the address space specified by the base address two (BAR2) device register. A driver can read the I/O handle from the bar2 member and use it in calls to the read_io_port and write_io_port routines to access the address space. bar3 Contains an I/O handle to the address space specified by the base address three (BAR3) device register. A driver can read the I/O handle from the bar3 member and use it in calls to the read_io_port and write_io_port routines to access the address space. bar4 Contains an I/O handle to the address space specified by the base address four (BAR4) device register. A driver can read the I/O handle from the bar4 member and use it in calls to the read_io_port and write_io_port routines to access the address space. bar5 Contains an I/O handle to the address space specified by the base address five (BAR5) device register. A driver can read the I/O handle from the bar5 member and use it in calls to the read_io_port and write_io_port routines to access the address space. cis_ptr Points to the Card Information Structure (CIS) for a CardBus card. This read-only register contains an offset to where the CIS begins in configuration space, memory space, or expansion ROM space. sub_vendor_id Specifies a subsystem vendor ID. The PCI bus configuration code obtains this subsystem vendor ID from the subsystem vendor ID device register. This ID identifies the manufacturer of a device that operates on the PCI bus from the same controller card as other devices with the same vendor and device IDs. The device's manufacturer determines its subsystem device ID. sub_device_id Specifies a subsystem device ID that identifies the specific device. The PCI bus configuration code obtains this subsystem device ID from the subsystem device ID device register. This ID identifies a device that operates on the PCI bus from the same controller card as other devices with the same vendor and device IDs. The device's manufacturer determines its subsystem device ID. exp_rom_bar Contains an I/O handle to the address space specified by the expansion ROM base address device register. A driver can read the I/O handle from the exp_rom_bar member and use it in calls to the read_io_port and write_io_port routines to access the address space. intr_line Specifies interrupt routing information for a PCI bus device. This member may or may not indicate to which input of the system interrupt controllers the device's interrupt pin is connected. Device drivers use the ihandler_id_t key returned from the handler_add routine to enable, disable, and delete an interrupt service routine in the operating system. intr_pin Determines the mapping of handler_add calls to system interrupt request line logic. min_gnt Specifies a minimal time period for which the device requires a bus grant. The min_gnt member stores a value that specifies how long a burst period the device needs. The period of time is expressed in units of 1/4 microseconds. max_lat Specifies maximum latency information. The max_lat member stores a value that specifies how often the device needs to gain access to the PCI bus. The period of time is expressed in units of 1/4 microseconds. config_base Provides an I/O handle to the base of a PCI bus device's configuration address space. The driver can use this I/O handle in calls to the read_io_port and write_io_port routines. private Specifies a private storage area that the device driver can use for storing driver-specific data.

DESCRIPTION

The pci_config_hdr data structure contains information that describes configuration and device register layout information for each device connected to a controller that operates on a PCI bus.

FILES

<io/dec/pci/pci.h>

SEE ALSO

Data Structures: pci_config_hdr(9s) Manuals: Writing PCI Bus Device Drivers

Index Index for
Section 9
Index Alphabetical
listing for P
Top of page Top of
page