Lines Matching refs:hdl
110 libzfs_handle_t *hdl = arg; in libzfs_fru_gather() local
121 if (hdl->libzfs_chassis_id[0] == '\0' && in libzfs_fru_gather()
125 (void) strlcpy(hdl->libzfs_chassis_id, devpath, in libzfs_fru_gather()
126 sizeof (hdl->libzfs_chassis_id)); in libzfs_fru_gather()
141 if (libzfs_fru_lookup(hdl, devpath) != NULL) { in libzfs_fru_gather()
184 frup->zf_chain = hdl->libzfs_fru_hash[idx]; in libzfs_fru_gather()
185 hdl->libzfs_fru_hash[idx] = frup; in libzfs_fru_gather()
186 frup->zf_next = hdl->libzfs_fru_list; in libzfs_fru_gather()
187 hdl->libzfs_fru_list = frup; in libzfs_fru_gather()
264 libzfs_fru_refresh(libzfs_handle_t *hdl) in libzfs_fru_refresh() argument
277 libzfs_fru_clear(hdl, B_FALSE); in libzfs_fru_refresh()
279 if ((hdl->libzfs_topo_hdl = _topo_open(TOPO_VERSION, in libzfs_fru_refresh()
283 thp = hdl->libzfs_topo_hdl; in libzfs_fru_refresh()
290 if (hdl->libzfs_fru_hash == NULL && in libzfs_fru_refresh()
291 (hdl->libzfs_fru_hash = in libzfs_fru_refresh()
300 libzfs_fru_gather, hdl, &err); in libzfs_fru_refresh()
314 libzfs_fru_lookup(libzfs_handle_t *hdl, const char *devpath) in libzfs_fru_lookup() argument
319 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_lookup()
320 libzfs_fru_refresh(hdl); in libzfs_fru_lookup()
322 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_lookup()
325 for (frup = hdl->libzfs_fru_hash[idx]; frup != NULL; in libzfs_fru_lookup()
340 libzfs_fru_devpath(libzfs_handle_t *hdl, const char *fru) in libzfs_fru_devpath() argument
345 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_devpath()
346 libzfs_fru_refresh(hdl); in libzfs_fru_devpath()
348 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_devpath()
352 for (frup = hdl->libzfs_fru_hash[idx]; frup != NULL; in libzfs_fru_devpath()
354 if (_topo_fmri_strcmp_noauth(hdl->libzfs_topo_hdl, in libzfs_fru_devpath()
386 libzfs_fru_compare(libzfs_handle_t *hdl, const char *a, const char *b) in libzfs_fru_compare() argument
388 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_compare()
389 libzfs_fru_refresh(hdl); in libzfs_fru_compare()
391 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_compare()
394 return (_topo_fmri_strcmp_noauth(hdl->libzfs_topo_hdl, a, b)); in libzfs_fru_compare()
404 libzfs_fru_notself(libzfs_handle_t *hdl, const char *fru) in libzfs_fru_notself() argument
409 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_notself()
410 libzfs_fru_refresh(hdl); in libzfs_fru_notself()
412 if (hdl->libzfs_chassis_id[0] == '\0') in libzfs_fru_notself()
422 len = strlen(hdl->libzfs_chassis_id); in libzfs_fru_notself()
423 if (strncmp(chassisid, hdl->libzfs_chassis_id, len) == 0 && in libzfs_fru_notself()
434 libzfs_fru_clear(libzfs_handle_t *hdl, boolean_t final) in libzfs_fru_clear() argument
438 while ((frup = hdl->libzfs_fru_list) != NULL) { in libzfs_fru_clear()
439 hdl->libzfs_fru_list = frup->zf_next; in libzfs_fru_clear()
445 hdl->libzfs_fru_list = NULL; in libzfs_fru_clear()
447 if (hdl->libzfs_topo_hdl != NULL) { in libzfs_fru_clear()
448 _topo_snap_release(hdl->libzfs_topo_hdl); in libzfs_fru_clear()
449 _topo_close(hdl->libzfs_topo_hdl); in libzfs_fru_clear()
450 hdl->libzfs_topo_hdl = NULL; in libzfs_fru_clear()
454 free(hdl->libzfs_fru_hash); in libzfs_fru_clear()
455 } else if (hdl->libzfs_fru_hash != NULL) { in libzfs_fru_clear()
456 bzero(hdl->libzfs_fru_hash, in libzfs_fru_clear()