Lines Matching defs:dimm

55 gmem_dimm_fru(gmem_dimm_t *dimm)
57 return (dimm->dimm_asru_nvl);
61 gmem_dimm_free(fmd_hdl_t *hdl, gmem_dimm_t *dimm, int destroy)
63 gmem_case_t *cc = &dimm->dimm_case;
78 gmem_fmri_fini(hdl, &dimm->dimm_asru, destroy);
81 while ((q = gmem_list_next(&dimm->mq_root[i])) != NULL) {
97 gmem_list_delete(&dimm->mq_root[i], q);
103 fmd_buf_destroy(hdl, NULL, dimm->dimm_bufname);
105 gmem_list_delete(&gmem.gm_dimms, dimm);
106 fmd_hdl_free(hdl, dimm, sizeof (gmem_dimm_t));
110 gmem_dimm_destroy(fmd_hdl_t *hdl, gmem_dimm_t *dimm)
112 fmd_stat_destroy(hdl, 1, &(dimm->dimm_retstat));
113 gmem_dimm_free(hdl, dimm, FMD_B_TRUE);
119 gmem_dimm_t *dimm;
121 for (dimm = gmem_list_next(&gmem.gm_dimms); dimm != NULL;
122 dimm = gmem_list_next(dimm)) {
123 if (strcmp(dimm->dimm_serial, serial) == 0)
124 return (dimm);
133 gmem_dimm_t *dimm;
139 fmd_hdl_debug(hdl, "Unable to get dimm serial\n");
144 fmd_hdl_debug(hdl, "dimm create nvlist dup failed");
154 dimm = fmd_hdl_zalloc(hdl, sizeof (gmem_dimm_t), FMD_SLEEP);
155 dimm->dimm_nodetype = GMEM_NT_DIMM;
156 dimm->dimm_version = GMEM_DIMM_VERSION;
157 dimm->dimm_phys_addr_low = ULLONG_MAX;
158 dimm->dimm_phys_addr_hi = 0;
159 dimm->dimm_syl_error = USHRT_MAX;
160 dimm->dimm_chipid = chip_id;
162 gmem_bufname(dimm->dimm_bufname, sizeof (dimm->dimm_bufname), "dimm_%s",
164 gmem_fmri_init(hdl, &dimm->dimm_asru, fmri, "dimm_asru_%s", serial);
168 (void) nvlist_lookup_string(dimm->dimm_asru_nvl, FM_FMRI_HC_SERIAL_ID,
169 (char **)&dimm->dimm_serial);
171 gmem_mem_retirestat_create(hdl, &dimm->dimm_retstat, dimm->dimm_serial,
174 gmem_list_append(&gmem.gm_dimms, dimm);
175 gmem_dimm_dirty(hdl, dimm);
177 return (dimm);
183 gmem_dimm_t *dimm;
190 fmd_hdl_debug(hdl, "Can't get dimm serial number\n");
195 dimm = dimm_lookup_by_serial(serial);
196 return (dimm);
224 gmem_dimm_t *dimm;
231 dimm = fmd_hdl_zalloc(hdl, sizeof (gmem_dimm_t), FMD_SLEEP);
232 bcopy(pers, dimm, sizeof (gmem_dimm_pers_t));
234 return (dimm);
240 gmem_dimm_t *dimm;
242 for (dimm = gmem_list_next(&gmem.gm_dimms); dimm != NULL;
243 dimm = gmem_list_next(dimm)) {
244 if (strcmp(dimm->dimm_bufname, ptr->ptr_name) == 0)
248 if (dimm == NULL) {
252 fmd_hdl_debug(hdl, "restoring dimm from %s\n", ptr->ptr_name);
255 fmd_hdl_abort(hdl, "dimm referenced by case %s does "
260 fmd_hdl_abort(hdl, "dimm buffer referenced by case %s "
266 if ((dimm = gmem_buf_read(hdl, NULL, ptr->ptr_name,
268 fmd_hdl_abort(hdl, "failed to read dimm buf %s",
273 dimm->dimm_version);
275 if (GMEM_DIMM_VERSIONED(dimm)) {
277 switch (dimm->dimm_version) {
279 dimm = gmem_dimm_wrapv1(hdl,
280 (gmem_dimm_pers_t *)dimm, dimmsz);
284 "for dimm state referenced by case %s.\n",
285 dimm->dimm_version, fmd_case_uuid(hdl, cp));
289 dimm = gmem_dimm_v0tov1(hdl, (gmem_dimm_0_t *)dimm,
296 gmem_dimm_dirty(hdl, dimm);
299 gmem_fmri_restore(hdl, &dimm->dimm_asru);
301 if ((errno = nvlist_lookup_string(dimm->dimm_asru_nvl,
302 FM_FMRI_HC_SERIAL_ID, (char **)&dimm->dimm_serial)) != 0)
307 gmem_mem_retirestat_create(hdl, &dimm->dimm_retstat,
308 dimm->dimm_serial, dimm->dimm_nretired,
311 gmem_list_append(&gmem.gm_dimms, dimm);
316 gmem_mem_case_restore(hdl, &dimm->dimm_case, cp, "dimm",
317 dimm->dimm_serial);
324 return (dimm);
330 gmem_dimm_t *dimm, *next;
332 for (dimm = gmem_list_next(&gmem.gm_dimms); dimm != NULL; dimm = next) {
333 next = gmem_list_next(dimm);
335 if (!gmem_dimm_present(hdl, dimm->dimm_asru_nvl))
336 gmem_dimm_destroy(hdl, dimm);
341 gmem_dimm_dirty(fmd_hdl_t *hdl, gmem_dimm_t *dimm)
343 if (fmd_buf_size(hdl, NULL, dimm->dimm_bufname) !=
345 fmd_buf_destroy(hdl, NULL, dimm->dimm_bufname);
347 /* No need to rewrite the FMRIs in the dimm - they don't change */
348 fmd_buf_write(hdl, NULL, dimm->dimm_bufname, &dimm->dimm_pers,
361 gmem_dimm_t *dimm;
363 while ((dimm = gmem_list_next(&gmem.gm_dimms)) != NULL)
364 gmem_dimm_free(hdl, dimm, FMD_B_FALSE);
474 nvlist_t *dimm = NULL;
477 fmd_hdl_debug(hdl, "Unable to get dimm serial\n");
480 dimm = gmem_find_dimm_fru(hdl, sn);
481 if (dimm == NULL) {
485 nvlist_free(dimm);
532 gmem_dimm_t *dimm = NULL, *next = NULL;
534 for (dimm = gmem_list_next(&gmem.gm_dimms); dimm != NULL;
535 dimm = next) {
536 next = gmem_list_next(dimm);
537 if (gmem_same_datapath_dimms(hdl, dimm, d) &&
538 dimm->dimm_syl_error == upos)
547 gmem_dimm_t *dimm = NULL, *next = NULL;
549 for (dimm = gmem_list_next(&gmem.gm_dimms); dimm != NULL;
550 dimm = next) {
551 next = gmem_list_next(dimm);
552 if (gmem_same_datapath_dimms(hdl, dimm, d))
553 dimm->dimm_syl_error = upos;