pcifm.h revision 49fbdd30212f016ddd49c4b5c997b0b827ff0962
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_PCIFM_H
#define _SYS_PCIFM_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* PCI device type defines.
*/
#define PCI_BRIDGE_DEV 0x02
#define PCIX_DEV 0x04
/*
* PCI and PCI-X valid flags
*/
#define PCI_ERR_STATUS_VALID 0x1
#define PCI_BDG_SEC_STAT_VALID 0x2
#define PCI_BDG_CTRL_VALID 0x4
#define PCIX_ERR_STATUS_VALID 0x8
#define PCIX_ERR_ECC_STS_VALID 0x10
#define PCIX_ERR_S_ECC_STS_VALID 0x20
#define PCIX_BDG_STATUS_VALID 0x40
#define PCIX_BDG_SEC_STATUS_VALID 0x80
/*
* PCI(-X) structures used (by pci_ereport_setup, pci_ereport_post, and
* pci_ereport_teardown) to gather and report errors detected by PCI(-X)
* compliant devices.
*/
typedef struct pci_bdg_error_regs {
typedef struct pci_error_regs {
typedef struct pci_erpt {
void *pe_regs; /* Pointer to extended error regs */
} pci_erpt_t;
typedef struct pcix_ecc_regs {
typedef struct pcix_error_regs {
typedef struct pcix_bdg_error_regs {
/*
* pcie bus specific structure
*/
typedef struct pci_fme_bus_specific {
int pci_bs_type;
int pci_bs_flags;
#define PCI_BS_ADDR_VALID 1
#define PCI_BS_BDF_VALID 2
/*
* target error queue defines
*/
#define TARGET_MAX_ERRS 6
#define TGT_PCI_SPACE_UNKNOWN 4
typedef struct pci_target_err {
char *tgt_err_class;
char *tgt_bridge_type;
(((x) == DDI_FM_NONFATAL) ? nonfatal++ :\
#ifdef __cplusplus
}
#endif
#endif /* _SYS_PCIFM_H */