static void vl_unmap_shmem_internal (u8 is_client) { svm_region_t *rp; int i; api_main_t *am = &api_main; if (!svm_get_root_rp ()) return; for (i = 0; i < vec_len (am->mapped_shmem_regions); i++) { rp = am->mapped_shmem_regions[i]; is_client ? svm_region_unmap_client (rp) : svm_region_unmap (rp); } vec_free (am->mapped_shmem_regions); am->shmem_hdr = 0; is_client ? svm_region_exit_client () : svm_region_exit (); /* $$$ more careful cleanup, valgrind run... */ vec_free (am->msg_handlers); vec_free (am->msg_endian_handlers); vec_free (am->msg_print_handlers); }
void svmdb_unmap (svmdb_client_t * client) { ASSERT (client); if (!svm_get_root_rp ()) return; svm_region_unmap ((void *) client->db_rp); svm_region_exit (); vec_free (client); }