/* * Terminate specified virtual memory space. * This is called when task is terminated. */ void vm_terminate(vm_map_t map) { struct region *reg, *tmp; if (--map->refcnt >= 1) return; sched_lock(); reg = &map->head; do { if (reg->flags != REG_FREE) { /* Free region if it is not shared and mapped */ if (!(reg->flags & REG_SHARED) && !(reg->flags & REG_MAPPED)) { page_free(reg->addr, reg->size); } } tmp = reg; reg = reg->next; region_delete(&map->head, tmp); } while (reg != &map->head); kmem_free(map); sched_unlock(); }
//adv region release static void ui_adv_pic_region_release(void) { RET_CODE ret = ERR_FAILURE; void * p_disp_dev = dev_find_identifier(NULL, DEV_IDT_TYPE, SYS_DEV_TYPE_DISPLAY); if(NULL != pic_adv_region) { ret = disp_layer_remove_region(p_disp_dev, DISP_LAYER_ID_SUBTITL, pic_adv_region); MT_ASSERT(SUCCESS == ret); ret = region_delete(pic_adv_region); MT_ASSERT(SUCCESS == ret); pic_adv_region = NULL; } }
void kvdb_osddrv_deinit(void) { KVDB_GRAPHIC_DEBUG("%s, %d \n", __FUNCTION__, __LINE__); RET_CODE ret = SUCCESS; if(region) { ret = disp_layer_remove_region(p_disp, DISP_LAYER_ID_SUBTITL, region); MT_ASSERT(SUCCESS == ret); ret = region_delete(region);//destroy the browser region MT_ASSERT(SUCCESS == ret); region = NULL; if(buf_logo) { mtos_align_free(buf_logo); } } }
RET_CODE ui_adv_stop_mul_pic(void) { RET_CODE ret; adv_mul_pic_t *p; adv_mul_pic_t *pre; BOOL b_disable_sub_show = FALSE; void * p_disp_dev = dev_find_identifier(NULL, DEV_IDT_TYPE, SYS_DEV_TYPE_DISPLAY); mul_pic_lock(); p = adv_mul_pic_list; if(p != NULL) { b_disable_sub_show = TRUE; } while (p != NULL) { DEBUG(ADS,INFO,"[%s][%d]p->pic_handle:%p\n",__FUNCTION__,__LINE__,p->pic_handle); ret = mul_pic_stop(p->pic_handle); MT_ASSERT(ret == SUCCESS); ret = mul_pic_destroy_chain(p->pic_handle); MT_ASSERT(ret == SUCCESS); disp_layer_remove_region(p_disp_dev, DISP_LAYER_ID_SUBTITL, p->p_region); region_delete(p->p_region); p->p_region = NULL; mtos_align_dma_free(p->p_region_buffer); pre = p; p = p->next; mtos_free(pre); pre = NULL; } adv_mul_pic_list = NULL; adv_mul_pic_index = 0; mul_pic_unlock(); if(b_disable_sub_show) { disp_layer_show(p_disp_dev, DISP_LAYER_ID_SUBTITL, FALSE); } return SUCCESS; }