185 DEBUGMSGTL((MODNAME_STR, "index %lu is %s@%p\n", data->d_index,
186 rsrcinfo->ari_fmri, data));
187
188 (void) strlcpy(data->d_ari_fmri, rsrcinfo->ari_fmri,
189 sizeof (data->d_ari_fmri));
190
191 uu_avl_node_init(data, &data->d_fmri_avl, rsrc_fmri_avl_pool);
192 (void) uu_avl_find(rsrc_fmri_avl, data, NULL, &idx);
193 uu_avl_insert(rsrc_fmri_avl, data, idx);
194
195 uu_avl_node_init(data, &data->d_index_avl, rsrc_index_avl_pool);
196 (void) uu_avl_find(rsrc_index_avl, data, NULL, &idx);
197 uu_avl_insert(rsrc_index_avl, data, idx);
198
199 DEBUGMSGTL((MODNAME_STR, "completed new resource %lu/%s@%p\n",
200 data->d_index, data->d_ari_fmri, data));
201 }
202
203 data->d_valid = valid_stamp;
204
205 DEBUGMSGTL((MODNAME_STR, "timestamp updated for %lu/%s@%p: %lu\n",
206 data->d_index, data->d_ari_fmri, data, data->d_valid));
207
208 if ((update_ctx->uc_type & UCT_ALL) ||
209 update_ctx->uc_index == data->d_index) {
210 (void) strlcpy(data->d_ari_case, rsrcinfo->ari_case,
211 sizeof (data->d_ari_case));
212 data->d_ari_flags = rsrcinfo->ari_flags;
213 }
214
215 return (!(update_ctx->uc_type & UCT_ALL) &&
216 update_ctx->uc_index == data->d_index);
217 }
218
219 /*
220 * Update some or all resource data from fmd. If type includes UCT_ALL, all
221 * resources will be indexed and their data cached. If type includes
222 * UCT_INDEX, updates will stop once the resource matching index has been
223 * updated. If UCT_COUNT is set, the number of faulted resources will be
224 * set.
225 *
|
185 DEBUGMSGTL((MODNAME_STR, "index %lu is %s@%p\n", data->d_index,
186 rsrcinfo->ari_fmri, data));
187
188 (void) strlcpy(data->d_ari_fmri, rsrcinfo->ari_fmri,
189 sizeof (data->d_ari_fmri));
190
191 uu_avl_node_init(data, &data->d_fmri_avl, rsrc_fmri_avl_pool);
192 (void) uu_avl_find(rsrc_fmri_avl, data, NULL, &idx);
193 uu_avl_insert(rsrc_fmri_avl, data, idx);
194
195 uu_avl_node_init(data, &data->d_index_avl, rsrc_index_avl_pool);
196 (void) uu_avl_find(rsrc_index_avl, data, NULL, &idx);
197 uu_avl_insert(rsrc_index_avl, data, idx);
198
199 DEBUGMSGTL((MODNAME_STR, "completed new resource %lu/%s@%p\n",
200 data->d_index, data->d_ari_fmri, data));
201 }
202
203 data->d_valid = valid_stamp;
204
205 DEBUGMSGTL((MODNAME_STR, "timestamp updated for %lu/%s@%p: %d\n",
206 data->d_index, data->d_ari_fmri, data, data->d_valid));
207
208 if ((update_ctx->uc_type & UCT_ALL) ||
209 update_ctx->uc_index == data->d_index) {
210 (void) strlcpy(data->d_ari_case, rsrcinfo->ari_case,
211 sizeof (data->d_ari_case));
212 data->d_ari_flags = rsrcinfo->ari_flags;
213 }
214
215 return (!(update_ctx->uc_type & UCT_ALL) &&
216 update_ctx->uc_index == data->d_index);
217 }
218
219 /*
220 * Update some or all resource data from fmd. If type includes UCT_ALL, all
221 * resources will be indexed and their data cached. If type includes
222 * UCT_INDEX, updates will stop once the resource matching index has been
223 * updated. If UCT_COUNT is set, the number of faulted resources will be
224 * set.
225 *
|