void vm_map_store_entry_unlink( vm_map_t map, vm_map_entry_t entry) { vm_map_t VMEU_map; vm_map_entry_t VMEU_entry = NULL; vm_map_entry_t VMEU_first_free = NULL; VMEU_map = (map); VMEU_entry = (entry); if (map->holelistenabled == FALSE) { if (VMEU_entry->vme_start <= VMEU_map->first_free->vme_start){ VMEU_first_free = VMEU_entry->vme_prev; } else { VMEU_first_free = VMEU_map->first_free; } } _vm_map_store_entry_unlink(&VMEU_map->hdr, VMEU_entry); vm_map_store_update( map, entry, VM_MAP_ENTRY_DELETE); update_first_free_ll(VMEU_map, VMEU_first_free); #ifdef VM_MAP_STORE_USE_RB if (vm_map_store_has_RB_support( &VMEU_map->hdr )) { update_first_free_rb(VMEU_map, entry, FALSE); } #endif }
void vm_map_store_update_first_free( vm_map_t map, vm_map_entry_t first_free) { update_first_free_ll(map, first_free); #ifdef VM_MAP_STORE_USE_RB if (vm_map_store_has_RB_support( &map->hdr )) { update_first_free_rb(map, first_free); } #endif }
void vm_map_store_update_first_free( vm_map_t map, vm_map_entry_t first_free_entry, boolean_t new_entry_creation) { update_first_free_ll(map, first_free_entry); #ifdef VM_MAP_STORE_USE_RB if (vm_map_store_has_RB_support( &map->hdr )) { update_first_free_rb(map, first_free_entry, new_entry_creation); } #endif }
void vm_map_store_entry_link( vm_map_t map, vm_map_entry_t after_where, vm_map_entry_t entry) { vm_map_t VMEL_map; vm_map_entry_t VMEL_entry; VMEL_map = (map); VMEL_entry = (entry); _vm_map_store_entry_link(&VMEL_map->hdr, after_where, VMEL_entry); if( VMEL_map->disable_vmentry_reuse == TRUE ) { UPDATE_HIGHEST_ENTRY_END( VMEL_map, VMEL_entry); } else { update_first_free_ll(VMEL_map, VMEL_map->first_free); #ifdef VM_MAP_STORE_USE_RB if (vm_map_store_has_RB_support( &VMEL_map->hdr )) { update_first_free_rb(VMEL_map, VMEL_map->first_free); } #endif } }