/*ARGSUSED*/ static int ppb_fm_callback(dev_info_t *dip, ddi_fm_error_t *derr, const void *no_used) { ppb_devstate_t *ppb = ddi_get_soft_state(ppb_state, ddi_get_instance(dip)); mutex_enter(&ppb->ppb_err_mutex); pci_ereport_post(dip, derr, NULL); mutex_exit(&ppb->ppb_err_mutex); return (derr->fme_status); }
/* * FMA registered error callback */ static int ppb_err_callback(dev_info_t *dip, ddi_fm_error_t *derr, const void *impl_data) { ppb_devstate_t *ppb_p = (ppb_devstate_t *)ddi_get_soft_state(ppb_state, ddi_get_instance(dip)); /* * errors handled by SPARC PCI-E framework for PCIe platforms */ if (ppb_p->parent_bus == PCIE_PCIECAP_DEV_TYPE_PCIE_DEV) return (DDI_FM_OK); /* * do the following for SPARC PCI platforms */ ASSERT(impl_data == NULL); pci_ereport_post(dip, derr, NULL); return (derr->fme_status); }
void ppb_peekpoke_cb(dev_info_t *dip, ddi_fm_error_t *derr) { (void) pci_ereport_post(dip, derr, NULL); }