Lines Matching refs:dp

120 cmd_dp_lookup_error(cmd_dp_t *dp)
126 * an existing error that matches 'dp'. A match is if
132 if ((ptr->dp_err == dp->dp_err) &&
133 (ptr->dp_cpuid_list[0] == dp->dp_cpuid_list[0]))
198 dp_buf_write(fmd_hdl_t *hdl, cmd_dp_t *dp)
202 if ((sz = fmd_buf_size(hdl, NULL, dp->dp_bufname)) != 0 &&
204 fmd_buf_destroy(hdl, NULL, dp->dp_bufname);
206 fmd_buf_write(hdl, NULL, dp->dp_bufname, &dp->dp_pers,
213 cmd_dp_t *dp;
220 dp = fmd_hdl_zalloc(hdl, sizeof (cmd_dp_t), FMD_SLEEP);
221 bcopy(pers, dp, sizeof (cmd_dp_pers_t));
223 return (dp);
229 cmd_dp_t *dp;
231 for (dp = cmd_list_next(&cmd.cmd_datapaths); dp != NULL;
232 dp = cmd_list_next(dp)) {
233 if (dp->dp_case == cp)
237 if (dp == NULL) {
240 fmd_hdl_debug(hdl, "restoring dp from %s\n", ptr->ptr_name);
245 fmd_hdl_debug(hdl, "dp %s from case %s not "
250 fmd_hdl_abort(hdl, "dp referenced by case %s "
256 fmd_hdl_abort(hdl, "dp buffer referenced by "
262 if ((dp = cmd_buf_read(hdl, NULL, ptr->ptr_name, dpsz)) == NULL)
263 fmd_hdl_abort(hdl, "failed to read dp buf %s",
266 switch (dp->dp_version) {
268 dp = dp_wrapv0(hdl, (cmd_dp_pers_t *)dp, dpsz);
272 "for dp state referenced by case %s.\n",
273 dp->dp_version, fmd_case_uuid(hdl, cp));
277 dp->dp_case = cp;
279 if (dp->dp_erpt_type == DP_ERROR) {
284 dp->dp_id = fmd_timer_install(hdl,
286 (hrtime_t)NANOSEC * (dp->dp_t_value + 120));
289 cmd_list_append(&cmd.cmd_datapaths, dp);
292 return (dp);
304 cmd_dp_t *dp;
307 for (dp = cmd_list_next(&cmd.cmd_datapaths); dp != NULL;
308 dp = cmd_list_next(dp)) {
309 if (dp->dp_id == id) {
310 cmd_dp_destroy(hdl, dp);
326 cmd_dp_t *dp, *next;
330 for (dp = cmd_list_next(&cmd.cmd_datapaths); dp != NULL; dp = next) {
331 next = cmd_list_next(dp);
333 for (i = 0, no_match = 0; i < dp->dp_ncpus; i++) {
334 nvl = dp_cpu_fmri(hdl, dp->dp_cpuid_list[i],
335 dp->dp_serid_list[i]);
346 cmd_dp_destroy(hdl, dp);
354 cmd_dp_free(fmd_hdl_t *hdl, cmd_dp_t *dp, int destroy)
356 if (dp->dp_case != NULL)
357 cmd_case_fini(hdl, dp->dp_case, destroy);
359 if (destroy && dp->dp_erpt_type == DP_ERROR) {
370 fmd_buf_destroy(hdl, NULL, dp->dp_bufname);
372 cmd_list_delete(&cmd.cmd_datapaths, dp);
373 fmd_hdl_free(hdl, dp, sizeof (cmd_dp_t));
377 cmd_dp_destroy(fmd_hdl_t *hdl, cmd_dp_t *dp)
379 cmd_dp_free(hdl, dp, FMD_B_TRUE);
432 cmd_dp_t *dp;
435 while ((dp = cmd_list_next(&cmd.cmd_datapaths)) != NULL)
436 cmd_dp_free(hdl, dp, FMD_B_FALSE);