pf_data_t
pf_data_t *pfd_p = PCIE_ZALLOC(pf_data_t);
pf_data_t *pfd_p = PCIE_DIP2PFD(dip);
kmem_free(PCIE_DIP2PFD(dip), sizeof (pf_data_t));
pcie_rc_init_pfd(dev_info_t *dip, pf_data_t *pfd_p)
pcie_rc_fini_pfd(pf_data_t *pfd_p)
pf_data_t *pfd_p = PCIE_DIP2PFD(dip);
static void pf_pcix_regs_gather(pf_data_t *pfd_p, pcie_bus_t *bus_p);
static void pf_pcie_regs_gather(pf_data_t *pfd_p, pcie_bus_t *bus_p);
static void pf_pci_regs_gather(pf_data_t *pfd_p, pcie_bus_t *bus_p);
static void pf_en_dq(pf_data_t *pfd_p, pf_impl_t *impl_p);
static void pf_adjust_for_no_aer(pf_data_t *);
static void pf_adjust_for_no_saer(pf_data_t *);
static pf_data_t *pf_get_pcie_bridge(pf_data_t *, pcie_req_id_t);
static pf_data_t *pf_get_parent_pcie_bridge(pf_data_t *);
static boolean_t pf_matched_in_rc(pf_data_t *, pf_data_t *,
pf_en_dq(pf_data_t *pfd_p, pf_impl_t *impl)
pf_data_t *head_p = impl->pf_dq_head_p;
pf_data_t *, const pf_fab_err_tbl_t *, uint32_t);
pf_data_t *tail_p = impl->pf_dq_tail_p;
pf_data_t *root_p, *last_p = NULL;
pf_data_t *, pf_data_t *);
pf_data_t *, pf_data_t *);
pf_data_t *, pf_data_t *);
pf_data_t *, pf_data_t *);
pf_data_t *, pf_data_t *);
pf_data_t *, pf_data_t *);
pf_data_t *, pf_data_t *);
pf_data_t *, pf_data_t *);
pf_data_t *, pf_data_t *);
pf_data_t *, pf_data_t *);
pf_data_t *, pf_data_t *);
pf_data_t *pfd_p;
static int pf_log_hdl_lookup(dev_info_t *, ddi_fm_error_t *, pf_data_t *,
pf_data_t *pfd_p, const pf_fab_err_tbl_t *tbl, uint32_t err_reg)
static void pf_reset_pfd(pf_data_t *);
pf_analyse_ca_ur(ddi_fm_error_t *derr, uint32_t bit, pf_data_t *dq_head_p,
pf_data_t *pfd_p)
pf_analyse_ma_ta(ddi_fm_error_t *derr, uint32_t bit, pf_data_t *dq_head_p,
pf_data_t *pfd_p)
pf_analyse_pci(ddi_fm_error_t *derr, uint32_t bit, pf_data_t *dq_head_p,
pf_data_t *pfd_p)
pf_data_t *parent_pfd_p;
pf_analyse_perr_assert(ddi_fm_error_t *derr, uint32_t bit, pf_data_t *dq_head_p,
pf_data_t *pfd_p)
pf_analyse_ptlp(ddi_fm_error_t *derr, uint32_t bit, pf_data_t *dq_head_p,
pf_data_t *pfd_p)
pf_data_t *parent_pfd_p;
pf_data_t *bdg_pfd_p;
pf_analyse_sc(ddi_fm_error_t *derr, uint32_t bit, pf_data_t *dq_head_p,
pf_data_t *pfd_p)
pf_analyse_to(ddi_fm_error_t *derr, uint32_t bit, pf_data_t *dq_head_p,
pf_data_t *pfd_p)
pf_data_t *rppfd = PCIE_DIP2PFD(rpdip);
pf_analyse_uc(ddi_fm_error_t *derr, uint32_t bit, pf_data_t *dq_head_p,
pf_data_t *pfd_p)
pf_analyse_uc_data(ddi_fm_error_t *derr, uint32_t bit, pf_data_t *dq_head_p,
pf_data_t *pfd_p)
pf_no_panic(ddi_fm_error_t *derr, uint32_t bit, pf_data_t *dq_head_p,
pf_data_t *pfd_p)
pf_panic(ddi_fm_error_t *derr, uint32_t bit, pf_data_t *dq_head_p,
pf_data_t *pfd_p)
pf_data_t *root_pfd_p = PCIE_BUS2PFD(rbus_p);
pf_adjust_for_no_aer(pf_data_t *pfd_p)
pf_data_t *pfd_p;
pf_adjust_for_no_saer(pf_data_t *pfd_p)
static pf_data_t *
pf_get_pcie_bridge(pf_data_t *pfd_p, pcie_req_id_t secbus)
pf_data_t *bdg_pfd_p;
static pf_data_t *
pf_get_parent_pcie_bridge(pf_data_t *pfd_p)
pf_matched_in_rc(pf_data_t *dq_head_p, pf_data_t *pfd_p,
pf_data_t *rc_pfd_p;
pf_pci_find_trans_type(pf_data_t *pfd_p, uint64_t *addr, uint32_t *trans_type,
pf_data_t *rc_pfd_p;
pf_pci_decode(pf_data_t *pfd_p, uint16_t *cmd)
pf_data_t *pfd_p;
pf_log_hdl_lookup(dev_info_t *rpdip, ddi_fm_error_t *derr, pf_data_t *pfd_p,
pf_scan_fabric(dev_info_t *rdip, ddi_fm_error_t *derr, pf_data_t *root_pfd_p)
pf_data_t *pfd_p, *pfd_head_p, *pfd_tail_p;
pf_data_t *pfd_p;
pf_data_t *pfd_p = PCIE_DIP2PFD(dip);
pf_data_t *pfd_p = PCIE_DIP2PFD(dip);
pf_reset_pfd(pf_data_t *pfd_p)
pf_data_t *temp_pfd_p;
pf_data_t *temp_pfd_p;
pf_find_busp_by_aer(pf_impl_t *impl, pf_data_t *pfd_p)
pf_find_busp_by_saer(pf_impl_t *impl, pf_data_t *pfd_p)
pf_data_t *pfd_p = PCIE_BUS2PFD(bus_p);
pf_pcix_regs_gather(pf_data_t *pfd_p, pcie_bus_t *bus_p)
pf_pcie_regs_gather(pf_data_t *pfd_p, pcie_bus_t *bus_p)
pf_pci_regs_gather(pf_data_t *pfd_p, pcie_bus_t *bus_p)
pf_pcix_regs_clear(pf_data_t *pfd_p, pcie_bus_t *bus_p)
pf_pcie_regs_clear(pf_data_t *pfd_p, pcie_bus_t *bus_p)
pf_pci_regs_clear(pf_data_t *pfd_p, pcie_bus_t *bus_p)
pf_data_t *pfd_p = PCIE_DIP2PFD(dip);
pf_pci_find_rp_fault(pf_data_t *pfd_p, pcie_bus_t *bus_p)
pciev_eh(pf_data_t *pfd_p, pf_impl_t *impl)
pf_data_t *root_pfd_p = impl->pf_dq_head_p;
pciev_eh_exit(pf_data_t *root_pfd_p, uint_t intr_type)
pciev_get_affected_dev(pf_impl_t *impl, pf_data_t *pfd_p,
pf_data_t *bus_pfd;
pf_data_t *pe_prev; /* Next error in queue */
pf_data_t *pe_next; /* Next error in queue */
pf_data_t *pf_dq_head_p; /* ptr to fault data queue */
pf_data_t *pf_dq_tail_p; /* ptr pt last fault data q */
extern void pcie_rc_init_pfd(dev_info_t *dip, pf_data_t *pfd);
extern void pcie_rc_fini_pfd(pf_data_t *pfd);
pf_data_t *root_pfd_p);
extern int pf_pci_decode(pf_data_t *, uint16_t *);
extern pcie_bus_t *pf_find_busp_by_aer(pf_impl_t *, pf_data_t *);
extern pcie_bus_t *pf_find_busp_by_saer(pf_impl_t *, pf_data_t *);
extern int pciev_eh(pf_data_t *, pf_impl_t *);
extern pcie_bus_t *pciev_get_affected_dev(pf_impl_t *, pf_data_t *,
extern void pciev_eh_exit(pf_data_t *, uint_t);
PCIE_DIP2PFD(devi) = kmem_zalloc(sizeof (pf_data_t), KM_SLEEP);
kmem_free(PCIE_DIP2PFD(devi), sizeof (pf_data_t));
pf_data_t *pfd_p;
pf_data_t *pfd_p;
pf_data_t *pfd_p = px_get_pfd(px_p);
pf_data_t *
pf_data_t *pfd_p = &px_p->px_pfd_arr[idx];
pf_data_t *
pf_data_t *pfd_p;
pf_data_t *root_pfd_p = PCIE_DIP2PFD(px_p->px_dip);
pf_data_t *pfd_p;
extern pf_data_t *px_rp_en_q(px_t *px_p, pcie_req_id_t fault_bdf,
extern pf_data_t *px_get_pfd(px_t *px_p);
pf_data_t px_pfd_arr[5];
px_err_fill_pfd(dev_info_t *dip, pf_data_t *pfd_p, px_rc_err_t *epkt) {
pf_data_t *pfd_p;
pf_data_t *pfd_p)
static void px_err_fill_pfd(dev_info_t *dip, pf_data_t *pfd_p,
px_rc_err_t *epkt, pf_data_t *pfd_p);
px_rc_err_t *epkt, pf_data_t *pfd_p);
px_rc_err_t *epkt, pf_data_t *pfd_p);
px_rc_err_t *epkt, pf_data_t *pfd_p);
px_rc_err_t *epkt, pf_data_t *pfd_p);
px_rc_err_t *epkt, pf_data_t *pfd_p);
px_rc_err_t *epkt, pf_data_t *pfd_p);
px_rc_err_t *epkt, pf_data_t *pfd_p);
pf_data_t *pfd_p)
pf_data_t *pfd_p)
pf_data_t *pfd_p)
pf_data_t *pfd_p)
pf_data_t *pfd_p)
pf_data_t *pfd_p)
pf_data_t *pfd_p)