Пример #1
0
/*
 * 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();
}
Пример #2
0
//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);
                }
    }
}
Пример #4
0
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;
}