Lines Matching defs:phymap

9794  * phymap implementation
9893 impl_sas_phymap_t *phymap = (impl_sas_phymap_t *)arg;
9894 char *context = damap_name(phymap->phymap_dam);
9903 mutex_enter(&phymap->phymap_lock);
9904 phymap->phymap_reports = phymap->phymap_phys_noisy = 0;
9910 phys = ddi_soft_state_bystr_get(phymap->phymap_name2phys, damn);
9914 mutex_exit(&phymap->phymap_lock);
9919 if (ddi_soft_state_bystr_zalloc(phymap->phymap_name2ua, damn) !=
9923 mutex_exit(&phymap->phymap_lock);
9926 if (!(ua = ddi_soft_state_bystr_get(phymap->phymap_name2ua, damn))) {
9929 mutex_exit(&phymap->phymap_lock);
9935 if (name = ddi_soft_state_bystr_get(phymap->phymap_ua2name, ua)) {
9946 name = ddi_soft_state_bystr_get(phymap->phymap_ua2name, ua);
9952 mutex_exit(&phymap->phymap_lock);
9958 if (ddi_soft_state_bystr_zalloc(phymap->phymap_ua2name, ua) !=
9960 ddi_soft_state_bystr_free(phymap->phymap_name2ua, damn);
9963 mutex_exit(&phymap->phymap_lock);
9966 name = ddi_soft_state_bystr_get(phymap->phymap_ua2name, ua);
9968 ddi_soft_state_bystr_free(phymap->phymap_name2ua, damn);
9971 mutex_exit(&phymap->phymap_lock);
9978 SCSI_HBA_LOG((_LOGPHY, phymap->phymap_self, NULL,
9981 if (phymap->phymap_acp) {
9985 mutex_exit(&phymap->phymap_lock);
9987 (phymap->phymap_acp)(phymap->phymap_private, ua, &ua_priv);
9988 mutex_enter(&phymap->phymap_lock);
9991 SCSI_HBA_LOG((_LOGPHY, phymap->phymap_self, NULL,
9993 mutex_exit(&phymap->phymap_lock);
10001 impl_sas_phymap_t *phymap = (impl_sas_phymap_t *)arg;
10002 char *context = damap_name(phymap->phymap_dam);
10009 mutex_enter(&phymap->phymap_lock);
10010 phymap->phymap_reports = phymap->phymap_phys_noisy = 0;
10015 if (!(ua = ddi_soft_state_bystr_get(phymap->phymap_name2ua, damn))) {
10018 mutex_exit(&phymap->phymap_lock);
10022 SCSI_HBA_LOG((_LOGPHY, phymap->phymap_self, NULL,
10024 if (phymap->phymap_dcp) {
10026 mutex_exit(&phymap->phymap_lock);
10027 (phymap->phymap_dcp)(phymap->phymap_private, ua, ua_priv);
10028 mutex_enter(&phymap->phymap_lock);
10030 SCSI_HBA_LOG((_LOGPHY, phymap->phymap_self, NULL,
10034 ddi_soft_state_bystr_free(phymap->phymap_ua2name, ua);
10035 ddi_soft_state_bystr_free(phymap->phymap_name2ua, damn);
10036 mutex_exit(&phymap->phymap_lock);
10049 impl_sas_phymap_t *phymap;
10057 phymap = kmem_zalloc(sizeof (*phymap), KM_SLEEP);
10058 phymap->phymap_self = self;
10059 phymap->phymap_reports_max = 1 * sas_phymap_phy_max_factor;
10060 phymap->phymap_acp = activate_cb;
10061 phymap->phymap_dcp = deactivate_cb;
10062 phymap->phymap_private = phymap_priv;
10063 mutex_init(&phymap->phymap_lock, NULL, MUTEX_DRIVER, NULL);
10065 (void) snprintf(context, sizeof (context), "%s%d.phymap",
10069 if (ddi_soft_state_init(&phymap->phymap_phy2name,
10072 if (ddi_soft_state_bystr_init(&phymap->phymap_name2phys,
10076 if (ddi_soft_state_bystr_init(&phymap->phymap_name2ua,
10079 if (ddi_soft_state_bystr_init(&phymap->phymap_ua2name,
10085 phymap, sas_phymap_config, sas_phymap_unconfig,
10086 &phymap->phymap_dam) != DAM_SUCCESS)
10090 *handlep = (sas_phymap_t *)phymap;
10093 fail: sas_phymap_destroy((sas_phymap_t *)phymap);
10101 impl_sas_phymap_t *phymap = (impl_sas_phymap_t *)handle;
10107 context = phymap->phymap_dam ?
10108 damap_name(phymap->phymap_dam) : "unknown";
10109 SCSI_HBA_LOG((_LOGPHY, phymap->phymap_self, NULL, "%s", context));
10111 if (phymap->phymap_dam)
10112 damap_destroy(phymap->phymap_dam);
10115 for (physet = phymap->phymap_physets; physet; physet = nphyset) {
10124 phymap->phymap_name2phys, name);
10131 if (phymap->phymap_ua2name)
10132 ddi_soft_state_bystr_fini(&phymap->phymap_ua2name);
10133 if (phymap->phymap_name2ua)
10134 ddi_soft_state_bystr_fini(&phymap->phymap_name2ua);
10136 if (phymap->phymap_name2phys)
10137 ddi_soft_state_bystr_fini(&phymap->phymap_name2phys);
10138 if (phymap->phymap_phy2name)
10139 ddi_soft_state_fini(&phymap->phymap_phy2name);
10141 mutex_destroy(&phymap->phymap_lock);
10142 kmem_free(phymap, sizeof (*phymap));
10150 impl_sas_phymap_t *phymap = (impl_sas_phymap_t *)handle;
10151 char *context = damap_name(phymap->phymap_dam);
10163 mutex_enter(&phymap->phymap_lock);
10164 SCSI_HBA_LOG((_LOGPHY, phymap->phymap_self, NULL, "%s: %s: add phy %d",
10168 name = ddi_get_soft_state(phymap->phymap_phy2name, phy);
10176 mutex_exit(&phymap->phymap_lock);
10182 phymap->phymap_phy2name, phy) != DDI_SUCCESS) {
10187 name = ddi_get_soft_state(phymap->phymap_phy2name, phy);
10197 phys = ddi_soft_state_bystr_get(phymap->phymap_name2phys, name);
10199 if (ddi_soft_state_bystr_zalloc(phymap->phymap_name2phys,
10205 phys = ddi_soft_state_bystr_get(phymap->phymap_name2phys, name);
10220 physet->physet_next = phymap->phymap_physets;
10221 phymap->phymap_physets = physet;
10237 if (phy > phymap->phymap_phy_max) {
10238 phymap->phymap_phy_max = phy + 1;
10239 phymap->phymap_reports_max = phymap->phymap_phy_max *
10245 * activate timer. Otherwise, if phymap->phymap_reports add/rem reports
10250 * phymap->phymap_reports.
10253 if (phymap->phymap_reports++ < phymap->phymap_reports_max) {
10254 if (damap_addr_add(phymap->phymap_dam, name,
10256 SCSI_HBA_LOG((_LOGPHY, phymap->phymap_self, NULL,
10264 phymap->phymap_phys_noisy++;
10265 if (phymap->phymap_phys_noisy == 1)
10269 mutex_exit(&phymap->phymap_lock);
10273 ddi_soft_state_free(phymap->phymap_phy2name, phy);
10274 mutex_exit(&phymap->phymap_lock);
10281 impl_sas_phymap_t *phymap = (impl_sas_phymap_t *)handle;
10282 char *context = damap_name(phymap->phymap_dam);
10289 mutex_enter(&phymap->phymap_lock);
10290 phymap->phymap_reports++;
10293 name = ddi_get_soft_state(phymap->phymap_phy2name, phy);
10301 SCSI_HBA_LOG((_LOGPHY, phymap->phymap_self, NULL, "%s: %s: rem phy %d",
10305 phys = ddi_soft_state_bystr_get(phymap->phymap_name2phys, name);
10322 (phymap->phymap_reports++ < phymap->phymap_reports_max)) {
10323 if (damap_addr_del(phymap->phymap_dam, name) == DAM_SUCCESS) {
10324 SCSI_HBA_LOG((_LOGPHY, phymap->phymap_self, NULL,
10336 ddi_soft_state_free(phymap->phymap_phy2name, phy); /* free */
10337 mutex_exit(&phymap->phymap_lock);
10344 impl_sas_phymap_t *phymap = (impl_sas_phymap_t *)handle;
10345 char *context = damap_name(phymap->phymap_dam);
10354 mutex_enter(&phymap->phymap_lock);
10355 ua = ddi_soft_state_bystr_get(phymap->phymap_name2ua, name);
10356 SCSI_HBA_LOG((_LOG(3), phymap->phymap_self, NULL,
10358 mutex_exit(&phymap->phymap_lock);
10365 impl_sas_phymap_t *phymap = (impl_sas_phymap_t *)handle;
10366 char *context = damap_name(phymap->phymap_dam);
10373 mutex_enter(&phymap->phymap_lock);
10374 name = ddi_soft_state_bystr_get(phymap->phymap_ua2name, ua);
10376 phyid = damap_lookup(phymap->phymap_dam, name);
10378 ua_priv = damap_id_priv_get(phymap->phymap_dam, phyid);
10379 damap_id_rele(phymap->phymap_dam, phyid);
10383 SCSI_HBA_LOG((_LOG(3), phymap->phymap_self, NULL,
10386 mutex_exit(&phymap->phymap_lock);
10393 impl_sas_phymap_t *phymap = (impl_sas_phymap_t *)handle;
10398 mutex_enter(&phymap->phymap_lock);
10399 name = ddi_soft_state_bystr_get(phymap->phymap_ua2name, ua);
10401 phys = ddi_soft_state_bystr_get(phymap->phymap_name2phys, name);
10405 mutex_exit(&phymap->phymap_lock);
10412 impl_sas_phymap_t *phymap = (impl_sas_phymap_t *)handle;
10417 mutex_enter(&phymap->phymap_lock);
10418 name = ddi_soft_state_bystr_get(phymap->phymap_ua2name, ua);
10422 phys = ddi_soft_state_bystr_get(phymap->phymap_name2phys, name);
10432 fail: mutex_exit(&phymap->phymap_lock);
10462 impl_sas_phymap_t *phymap = (impl_sas_phymap_t *)handle;
10467 mutex_enter(&phymap->phymap_lock);
10468 name = ddi_get_soft_state(phymap->phymap_phy2name, phy);
10471 ua = ddi_soft_state_bystr_get(phymap->phymap_name2ua, name);
10478 fail: mutex_exit(&phymap->phymap_lock);