Lines Matching refs:vpd

780 			cfg->vpd.vpd_reg = ptr;
851 WREG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, reg, 2);
853 while ((REG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, 2) & 0x8000) != 0x8000) {
858 *data = (REG(cfg->vpd.vpd_reg + PCIR_VPD_DATA, 4));
871 WREG(cfg->vpd.vpd_reg + PCIR_VPD_DATA, data, 4);
872 WREG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, reg | 0x8000, 2);
873 while ((REG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, 2) & 0x8000) == 0x8000) {
932 /* init vpd reader */
950 printf("vpd: val: %#x, off: %d, bytesinval: %d, byte: %#hhx, " \
980 cfg->vpd.vpd_ident = malloc(remain + 1,
991 cfg->vpd.vpd_ros = malloc(alloc *
992 sizeof(*cfg->vpd.vpd_ros), M_DEVBUF,
999 cfg->vpd.vpd_w = malloc(alloc *
1000 sizeof(*cfg->vpd.vpd_w), M_DEVBUF,
1011 cfg->vpd.vpd_ident[i++] = byte;
1014 cfg->vpd.vpd_ident[i] = '\0';
1021 cfg->vpd.vpd_ros = reallocf(cfg->vpd.vpd_ros,
1022 (alloc *= 2) * sizeof(*cfg->vpd.vpd_ros),
1025 cfg->vpd.vpd_ros[off].keyword[0] = byte;
1030 cfg->vpd.vpd_ros[off].keyword[1] = byte2;
1035 cfg->vpd.vpd_ros[off].len = dflen = byte2;
1037 strncmp(cfg->vpd.vpd_ros[off].keyword, "RV",
1049 cfg->vpd.vpd_ros[off].value = malloc(1 *
1050 sizeof(*cfg->vpd.vpd_ros[off].value),
1052 cfg->vpd.vpd_ros[off].value[0] = '\x00';
1054 cfg->vpd.vpd_ros[off].value = malloc(
1056 sizeof(*cfg->vpd.vpd_ros[off].value),
1070 cfg->vpd.vpd_ros[off].value[i++] = byte;
1071 if (strncmp(cfg->vpd.vpd_ros[off].keyword,
1089 cfg->vpd.vpd_ros[off++].value[i++] = '\0';
1091 cfg->vpd.vpd_rocnt = off;
1092 cfg->vpd.vpd_ros = reallocf(cfg->vpd.vpd_ros,
1093 off * sizeof(*cfg->vpd.vpd_ros),
1108 cfg->vpd.vpd_w = reallocf(cfg->vpd.vpd_w,
1109 (alloc *= 2) * sizeof(*cfg->vpd.vpd_w),
1112 cfg->vpd.vpd_w[off].keyword[0] = byte;
1117 cfg->vpd.vpd_w[off].keyword[1] = byte2;
1122 cfg->vpd.vpd_w[off].len = dflen = byte2;
1123 cfg->vpd.vpd_w[off].start = vrs.off - vrs.bytesinval;
1124 cfg->vpd.vpd_w[off].value = malloc((dflen + 1) *
1125 sizeof(*cfg->vpd.vpd_w[off].value),
1139 cfg->vpd.vpd_w[off].value[i++] = byte;
1144 cfg->vpd.vpd_w[off++].value[i++] = '\0';
1146 cfg->vpd.vpd_wcnt = off;
1147 cfg->vpd.vpd_w = reallocf(cfg->vpd.vpd_w,
1148 off * sizeof(*cfg->vpd.vpd_w),
1164 if (cfg->vpd.vpd_ros != NULL) {
1165 for (off = 0; cfg->vpd.vpd_ros[off].value; off++)
1166 free(cfg->vpd.vpd_ros[off].value, M_DEVBUF);
1167 free(cfg->vpd.vpd_ros, M_DEVBUF);
1168 cfg->vpd.vpd_ros = NULL;
1174 if (cfg->vpd.vpd_ident != NULL) {
1175 free(cfg->vpd.vpd_ident, M_DEVBUF);
1176 cfg->vpd.vpd_ident = NULL;
1178 if (cfg->vpd.vpd_w != NULL) {
1179 for (off = 0; cfg->vpd.vpd_w[off].value; off++)
1180 free(cfg->vpd.vpd_w[off].value, M_DEVBUF);
1181 free(cfg->vpd.vpd_w, M_DEVBUF);
1182 cfg->vpd.vpd_w = NULL;
1185 cfg->vpd.vpd_cached = 1;
1196 if (!cfg->vpd.vpd_cached && cfg->vpd.vpd_reg != 0)
1199 *identptr = cfg->vpd.vpd_ident;
1215 if (!cfg->vpd.vpd_cached && cfg->vpd.vpd_reg != 0)
1218 for (i = 0; i < cfg->vpd.vpd_rocnt; i++)
1219 if (memcmp(kw, cfg->vpd.vpd_ros[i].keyword,
1220 sizeof(cfg->vpd.vpd_ros[i].keyword)) == 0) {
1221 *vptr = cfg->vpd.vpd_ros[i].value;
1235 if (!cfg->vpd.vpd_cached && cfg->vpd.vpd_reg != 0)
1237 return (&cfg->vpd);
2418 if (dinfo->cfg.vpd.vpd_reg) {
2419 free(dinfo->cfg.vpd.vpd_ident, M_DEVBUF);
2420 for (i = 0; i < dinfo->cfg.vpd.vpd_rocnt; i++)
2421 free(dinfo->cfg.vpd.vpd_ros[i].value, M_DEVBUF);
2422 free(dinfo->cfg.vpd.vpd_ros, M_DEVBUF);
2423 for (i = 0; i < dinfo->cfg.vpd.vpd_wcnt; i++)
2424 free(dinfo->cfg.vpd.vpd_w[i].value, M_DEVBUF);
2425 free(dinfo->cfg.vpd.vpd_w, M_DEVBUF);