Lines Matching refs:ihp

106 ipmi_sdr_get_info(ipmi_handle_t *ihp)  in ipmi_sdr_get_info()  argument
119 if ((rsp = ipmi_send(ihp, &cmd)) == NULL) in ipmi_sdr_get_info()
143 ipmi_sdr_reserve_repository(ipmi_handle_t *ihp) in ipmi_sdr_reserve_repository() argument
153 if ((rsp = ipmi_send(ihp, &cmd)) == NULL) in ipmi_sdr_reserve_repository()
156 ihp->ih_reservation = *((uint16_t *)rsp->ic_data); in ipmi_sdr_reserve_repository()
165 ipmi_sdr_changed(ipmi_handle_t *ihp) in ipmi_sdr_changed() argument
169 if ((sip = ipmi_sdr_get_info(ihp)) == NULL) in ipmi_sdr_changed()
172 return (sip->isi_add_ts > ihp->ih_sdr_ts || in ipmi_sdr_changed()
173 sip->isi_erase_ts > ihp->ih_sdr_ts || in ipmi_sdr_changed()
174 ipmi_hash_first(ihp->ih_sdr_cache) == NULL); in ipmi_sdr_changed()
181 ipmi_sdr_refresh(ipmi_handle_t *ihp) in ipmi_sdr_refresh() argument
192 if ((sip = ipmi_sdr_get_info(ihp)) == NULL) in ipmi_sdr_refresh()
197 if (isi_add_ts <= ihp->ih_sdr_ts && in ipmi_sdr_refresh()
198 isi_erase_ts <= ihp->ih_sdr_ts && in ipmi_sdr_refresh()
199 ipmi_hash_first(ihp->ih_sdr_cache) != NULL) in ipmi_sdr_refresh()
202 ipmi_sdr_clear(ihp); in ipmi_sdr_refresh()
203 ipmi_entity_clear(ihp); in ipmi_sdr_refresh()
204 ihp->ih_sdr_ts = MAX(isi_add_ts, isi_erase_ts); in ipmi_sdr_refresh()
211 if ((sdr = ipmi_sdr_get(ihp, id, &id)) == NULL) in ipmi_sdr_refresh()
330 if ((ent = ipmi_zalloc(ihp, in ipmi_sdr_refresh()
339 if ((ent->isc_name = ipmi_alloc(ihp, namelen + 1)) == in ipmi_sdr_refresh()
341 ipmi_free(ihp, ent->isc_sdr); in ipmi_sdr_refresh()
342 ipmi_free(ihp, ent); in ipmi_sdr_refresh()
356 if (ipmi_hash_lookup(ihp->ih_sdr_cache, ent) != NULL) { in ipmi_sdr_refresh()
357 ipmi_free(ihp, ent->isc_sdr); in ipmi_sdr_refresh()
358 ipmi_free(ihp, ent->isc_name); in ipmi_sdr_refresh()
359 ipmi_free(ihp, ent); in ipmi_sdr_refresh()
363 ipmi_hash_insert(ihp->ih_sdr_cache, ent); in ipmi_sdr_refresh()
369 ipmi_sdr_clear(ihp); in ipmi_sdr_refresh()
370 ipmi_entity_clear(ihp); in ipmi_sdr_refresh()
425 ipmi_sdr_init(ipmi_handle_t *ihp) in ipmi_sdr_init() argument
427 if ((ihp->ih_sdr_cache = ipmi_hash_create(ihp, in ipmi_sdr_init()
437 ipmi_sdr_clear(ipmi_handle_t *ihp) in ipmi_sdr_clear() argument
441 while ((ent = ipmi_hash_first(ihp->ih_sdr_cache)) != NULL) { in ipmi_sdr_clear()
442 ipmi_hash_remove(ihp->ih_sdr_cache, ent); in ipmi_sdr_clear()
443 ipmi_free(ihp, ent->isc_sdr); in ipmi_sdr_clear()
444 ipmi_free(ihp, ent->isc_name); in ipmi_sdr_clear()
445 ipmi_free(ihp, ent); in ipmi_sdr_clear()
450 ipmi_sdr_fini(ipmi_handle_t *ihp) in ipmi_sdr_fini() argument
452 if (ihp->ih_sdr_cache != NULL) { in ipmi_sdr_fini()
453 ipmi_sdr_clear(ihp); in ipmi_sdr_fini()
454 ipmi_hash_destroy(ihp->ih_sdr_cache); in ipmi_sdr_fini()
459 ipmi_sdr_get(ipmi_handle_t *ihp, uint16_t id, uint16_t *next) in ipmi_sdr_get() argument
468 req.ic_gs_resid = ihp->ih_reservation; in ipmi_sdr_get()
484 for (i = 0; i < ihp->ih_retries; i++) { in ipmi_sdr_get()
485 if ((rsp = ipmi_send(ihp, &cmd)) != NULL) in ipmi_sdr_get()
488 if (ipmi_errno(ihp) != EIPMI_INVALID_RESERVATION) in ipmi_sdr_get()
491 if (ipmi_sdr_reserve_repository(ihp) != 0) in ipmi_sdr_get()
493 req.ic_gs_resid = ihp->ih_reservation; in ipmi_sdr_get()
501 if ((buf = ipmi_zalloc(ihp, sdr_sz + IPMI_SDR_HDR_SZ)) == NULL) { in ipmi_sdr_get()
502 (void) ipmi_set_error(ihp, EIPMI_NOMEM, NULL); in ipmi_sdr_get()
517 rsp = ipmi_send(ihp, &cmd); in ipmi_sdr_get()
526 } else if (ipmi_errno(ihp) == EIPMI_INVALID_RESERVATION) { in ipmi_sdr_get()
527 if (i >= ihp->ih_retries || in ipmi_sdr_get()
528 ipmi_sdr_reserve_repository(ihp) != 0) { in ipmi_sdr_get()
532 req.ic_gs_resid = ihp->ih_reservation; in ipmi_sdr_get()
545 ipmi_sdr_iter(ipmi_handle_t *ihp, int (*func)(ipmi_handle_t *, in ipmi_sdr_iter() argument
551 if (ipmi_hash_first(ihp->ih_sdr_cache) == NULL && in ipmi_sdr_iter()
552 ipmi_sdr_refresh(ihp) != 0) in ipmi_sdr_iter()
555 for (ent = ipmi_hash_first(ihp->ih_sdr_cache); ent != NULL; in ipmi_sdr_iter()
556 ent = ipmi_hash_next(ihp->ih_sdr_cache, ent)) { in ipmi_sdr_iter()
557 if ((ret = func(ihp, ent->isc_name, ent->isc_sdr, data)) != 0) in ipmi_sdr_iter()
565 ipmi_sdr_lookup(ipmi_handle_t *ihp, const char *idstr) in ipmi_sdr_lookup() argument
569 if (ipmi_hash_first(ihp->ih_sdr_cache) == NULL && in ipmi_sdr_lookup()
570 ipmi_sdr_refresh(ihp) != 0) in ipmi_sdr_lookup()
575 if ((ent = ipmi_hash_lookup(ihp->ih_sdr_cache, &search)) == NULL) { in ipmi_sdr_lookup()
576 (void) ipmi_set_error(ihp, EIPMI_NOT_PRESENT, NULL); in ipmi_sdr_lookup()
584 ipmi_sdr_lookup_common(ipmi_handle_t *ihp, const char *idstr, in ipmi_sdr_lookup_common() argument
589 if ((sdrp = ipmi_sdr_lookup(ihp, idstr)) == NULL) in ipmi_sdr_lookup_common()
593 (void) ipmi_set_error(ihp, EIPMI_NOT_PRESENT, NULL); in ipmi_sdr_lookup_common()
601 ipmi_sdr_lookup_fru(ipmi_handle_t *ihp, const char *idstr) in ipmi_sdr_lookup_fru() argument
603 return (ipmi_sdr_lookup_common(ihp, idstr, in ipmi_sdr_lookup_fru()
608 ipmi_sdr_lookup_generic(ipmi_handle_t *ihp, const char *idstr) in ipmi_sdr_lookup_generic() argument
610 return (ipmi_sdr_lookup_common(ihp, idstr, in ipmi_sdr_lookup_generic()
615 ipmi_sdr_lookup_compact_sensor(ipmi_handle_t *ihp, const char *idstr) in ipmi_sdr_lookup_compact_sensor() argument
617 return (ipmi_sdr_lookup_common(ihp, idstr, in ipmi_sdr_lookup_compact_sensor()
622 ipmi_sdr_lookup_full_sensor(ipmi_handle_t *ihp, const char *idstr) in ipmi_sdr_lookup_full_sensor() argument
624 return (ipmi_sdr_lookup_common(ihp, idstr, in ipmi_sdr_lookup_full_sensor()