status_t vmi_destroy( vmi_instance_t vmi) { if (!vmi) return VMI_FAILURE; vmi->shutting_down = TRUE; if(vmi->init_mode & VMI_INIT_EVENTS){ events_destroy(vmi); } driver_destroy(vmi); if (vmi->os_interface) { os_destroy(vmi); } if (vmi->os_data) { free(vmi->os_data); } if (vmi->arch_interface) { free(vmi->arch_interface); } vmi->os_data = NULL; pid_cache_destroy(vmi); sym_cache_destroy(vmi); rva_cache_destroy(vmi); v2p_cache_destroy(vmi); #if ENABLE_SHM_SNAPSHOT == 1 v2m_cache_destroy(vmi); #endif memory_cache_destroy(vmi); if (vmi->image_type) free(vmi->image_type); free(vmi); return VMI_SUCCESS; }
status_t vmi_destroy( vmi_instance_t vmi) { vmi->shutting_down = TRUE; if(vmi->init_mode & VMI_INIT_EVENTS){ events_destroy(vmi); } driver_destroy(vmi); pid_cache_destroy(vmi); sym_cache_destroy(vmi); rva_cache_destroy(vmi); v2p_cache_destroy(vmi); memory_cache_destroy(vmi); if (vmi->sysmap) free(vmi->sysmap); if (vmi->image_type) free(vmi->image_type); if (vmi) free(vmi); return VMI_SUCCESS; }