コード例 #1
0
ファイル: cmd_dimm.c プロジェクト: CoryXie/opensolaris
void
cmd_dimm_destroy(fmd_hdl_t *hdl, cmd_dimm_t *dimm)
{
	int i;
	cmd_mq_t *q;

	for (i = 0; i < CMD_MAX_CKWDS; i++) {
		while ((q = cmd_list_next(&dimm->mq_root[i])) != NULL) {
			if (q->mq_serdnm != NULL) {
				if (fmd_serd_exists(hdl, q->mq_serdnm)) {
					fmd_serd_destroy(hdl, q->mq_serdnm);
				}
				fmd_hdl_strfree(hdl, q->mq_serdnm);
				q->mq_serdnm = NULL;
			}
			cmd_list_delete(&dimm->mq_root[i], q);
			fmd_hdl_free(hdl, q, sizeof (cmd_mq_t));
		}
	}

	fmd_stat_destroy(hdl, 1, &(dimm->dimm_retstat));
	cmd_dimm_free(hdl, dimm, FMD_B_TRUE);
}
コード例 #2
0
int
etm_xport_fini(fmd_hdl_t *hdl)
{
    fmd_hdl_debug(hdl, "info: xport finalizing\n");

    if (use_vldc && (etm_xport_vldc_conn != NULL)) {
        (void) etm_xport_close(hdl, etm_xport_vldc_conn);
        etm_xport_vldc_conn = NULL;
    }

    /* free any long standing properties from FMD */

    fmd_prop_free_string(hdl, etm_xport_addrs);

    /* cleanup the intermediate read buffer */

    if (etm_xport_irb_tail != etm_xport_irb_head) {
        fmd_hdl_debug(hdl, "warning: xport %d bytes stale data\n",
                      (int)(etm_xport_irb_tail - etm_xport_irb_head));
    }
    fmd_hdl_free(hdl, etm_xport_irb_area, 2 * etm_xport_irb_mtu_sz);
    etm_xport_irb_area = NULL;
    etm_xport_irb_head = NULL;
    etm_xport_irb_tail = NULL;
    etm_xport_irb_mtu_sz = 0;

    /* cleanup statistics from FMD */

    (void) fmd_stat_destroy(hdl,
                            sizeof (etm_xport_stats) / sizeof (fmd_stat_t),
                            (fmd_stat_t *)&etm_xport_stats);

    fmd_hdl_debug(hdl, "info: xport finalized ok\n");
    return (0);

} /* etm_xport_fini() */
コード例 #3
0
ファイル: gmem_dimm.c プロジェクト: CadeLaRen/illumos-gate
void
gmem_dimm_destroy(fmd_hdl_t *hdl, gmem_dimm_t *dimm)
{
	fmd_stat_destroy(hdl, 1, &(dimm->dimm_retstat));
	gmem_dimm_free(hdl, dimm, FMD_B_TRUE);
}