Lines Matching refs:hdl

106 	libzfs_handle_t *hdl = arg;  in libzfs_fru_gather()  local
117 if (hdl->libzfs_chassis_id[0] == '\0' && in libzfs_fru_gather()
121 (void) strlcpy(hdl->libzfs_chassis_id, devpath, in libzfs_fru_gather()
122 sizeof (hdl->libzfs_chassis_id)); in libzfs_fru_gather()
137 if (libzfs_fru_lookup(hdl, devpath) != NULL) { in libzfs_fru_gather()
180 frup->zf_chain = hdl->libzfs_fru_hash[idx]; in libzfs_fru_gather()
181 hdl->libzfs_fru_hash[idx] = frup; in libzfs_fru_gather()
182 frup->zf_next = hdl->libzfs_fru_list; in libzfs_fru_gather()
183 hdl->libzfs_fru_list = frup; in libzfs_fru_gather()
257 libzfs_fru_refresh(libzfs_handle_t *hdl) in libzfs_fru_refresh() argument
270 libzfs_fru_clear(hdl, B_FALSE); in libzfs_fru_refresh()
272 if ((hdl->libzfs_topo_hdl = _topo_open(TOPO_VERSION, in libzfs_fru_refresh()
276 thp = hdl->libzfs_topo_hdl; in libzfs_fru_refresh()
283 if (hdl->libzfs_fru_hash == NULL && in libzfs_fru_refresh()
284 (hdl->libzfs_fru_hash = in libzfs_fru_refresh()
293 libzfs_fru_gather, hdl, &err); in libzfs_fru_refresh()
307 libzfs_fru_lookup(libzfs_handle_t *hdl, const char *devpath) in libzfs_fru_lookup() argument
312 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_lookup()
313 libzfs_fru_refresh(hdl); in libzfs_fru_lookup()
315 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_lookup()
318 for (frup = hdl->libzfs_fru_hash[idx]; frup != NULL; in libzfs_fru_lookup()
333 libzfs_fru_devpath(libzfs_handle_t *hdl, const char *fru) in libzfs_fru_devpath() argument
338 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_devpath()
339 libzfs_fru_refresh(hdl); in libzfs_fru_devpath()
341 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_devpath()
345 for (frup = hdl->libzfs_fru_hash[idx]; frup != NULL; in libzfs_fru_devpath()
347 if (_topo_fmri_strcmp_noauth(hdl->libzfs_topo_hdl, in libzfs_fru_devpath()
379 libzfs_fru_compare(libzfs_handle_t *hdl, const char *a, const char *b) in libzfs_fru_compare() argument
381 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_compare()
382 libzfs_fru_refresh(hdl); in libzfs_fru_compare()
384 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_compare()
387 return (_topo_fmri_strcmp_noauth(hdl->libzfs_topo_hdl, a, b)); in libzfs_fru_compare()
397 libzfs_fru_notself(libzfs_handle_t *hdl, const char *fru) in libzfs_fru_notself() argument
402 if (hdl->libzfs_fru_hash == NULL) in libzfs_fru_notself()
403 libzfs_fru_refresh(hdl); in libzfs_fru_notself()
405 if (hdl->libzfs_chassis_id[0] == '\0') in libzfs_fru_notself()
415 len = strlen(hdl->libzfs_chassis_id); in libzfs_fru_notself()
416 if (strncmp(chassisid, hdl->libzfs_chassis_id, len) == 0 && in libzfs_fru_notself()
427 libzfs_fru_clear(libzfs_handle_t *hdl, boolean_t final) in libzfs_fru_clear() argument
431 while ((frup = hdl->libzfs_fru_list) != NULL) { in libzfs_fru_clear()
432 hdl->libzfs_fru_list = frup->zf_next; in libzfs_fru_clear()
438 hdl->libzfs_fru_list = NULL; in libzfs_fru_clear()
440 if (hdl->libzfs_topo_hdl != NULL) { in libzfs_fru_clear()
441 _topo_snap_release(hdl->libzfs_topo_hdl); in libzfs_fru_clear()
442 _topo_close(hdl->libzfs_topo_hdl); in libzfs_fru_clear()
443 hdl->libzfs_topo_hdl = NULL; in libzfs_fru_clear()
447 free(hdl->libzfs_fru_hash); in libzfs_fru_clear()
448 } else if (hdl->libzfs_fru_hash != NULL) { in libzfs_fru_clear()
449 bzero(hdl->libzfs_fru_hash, in libzfs_fru_clear()