Lines Matching defs:ihp

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