亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? graphic_loader.c.svn-base

?? sigmadesign smp8623 gui source code ,bingo
?? SVN-BASE
?? 第 1 頁 / 共 4 頁
字號:
		}	}	DGifCloseFile(gif_hdr);	return RM_OK;}static void PrintCacheStatys(RMascii* where){//	entry* np;////	entryLRU* lp;//	RMuint32 blocks_till_now = g_OSDwidth + ((g_OSDwidth & 0x3F) ? (64 - (g_OSDwidth & 0x3F)) : 0);//	blocks_till_now *= g_OSDheight + ((g_OSDheight & 0x3F) ? (64 - (g_OSDheight & 0x3F)) : 0);//	blocks_till_now *= 10;//	blocks_till_now /= TILESIZE;////	printf("================ %s =================\n",where);//	printf("================ Cache Begin =================\n\n");//	for(np = cache.lh_first; np != NULL; np = np->entries.le_next)//	{//		RMuint16 blocks = np->size / TILESIZE;//		RMuint16 i;//		for(i = 0; i < blocks; i++)//		{//			if(np->freeBlock)//			{//				printf(".");//				blocks_till_now --;//			} else {//				if(i == 0)//				{//					printf("[");//					blocks_till_now --;//				} else if(i == blocks - 1)//				{//					printf("]");//					blocks_till_now --;//				}//				else//				{//					printf("=");//					blocks_till_now --;//				}//			}////			if(!(blocks_till_now % 48))//				printf("\n");//		}////		printf("block: %p next: %p prev: %p\n", np, np->entries.le_next, np->entries.le_prev);////		printf("begin: %lu end: %lu: size: %lu free: %d locked %d\n", np->begin, np->end, np->size, np->freeBlock, np->locked);//	}//	printf("\n================ Cache End ===================\n");//	printf("================ LRU Begin ===================\n");//	for(lp = lru.lh_first; lp != NULL; lp = lp->entries.le_next)//	{//		printf("block: %p next: %p prev: %p item: %p\n", lp, lp->entries.le_next, lp->entries.le_prev, lp->item);////		printf("begin: %d end: %d: size: %d free: %d\n", (RMuint16)np->begin, (RMuint16)np->end, (RMuint16)np->size, np->freeBlock);//	}//	printf("================ LRU End =====================\n");}RMstatus AllocateBuffer(	RMdrawBuffer *pBuffer,	RMuint32 size,	RMbool locked){	RMstatus status = RM_ERROR;//	RMuint32 limit;	RMuint32 innersize;	entry* np = NULL;	for(np = cache.lh_first; np != NULL; np = np->entries.le_next)	{		if(np->size >= size && np->freeBlock)		{			innersize = ((size / TILESIZE) + 1) * TILESIZE;			if(np->size > innersize) {				entry* n = (entry*) MALLOC (sizeof(entry));				entryLRU* nlru = (entryLRU*) MALLOC (sizeof(entryLRU));				n->begin = np->begin;		//		printf("%lu %lu %d\n", size, innersize, (RMuint16)((size / TILESIZE) + 1));				n->end = n->begin + innersize;				n->size = innersize;				n->freeBlock = FALSE;				n->locked = locked;				pBuffer->baseAddr = n->begin;				pBuffer->size = size;				pBuffer->limit = n->end;				pBuffer->offset = 0;				pBuffer->pMappedAddr = g_BaseBuffer.pMappedAddr + n->begin - g_BaseBuffer.baseAddr;				np->begin = n->end;				np->size = np->size - innersize;				nlru->item = n;				LIST_INSERT_HEAD(&lru, nlru, entries);				if(np == cache.lh_first) {					LIST_INSERT_HEAD(&cache, n, entries);				} else				{					entry* t = np->entries.le_prev;		//			printf("%p %p %p %p\n", np->entries.le_prev, t, t->entries.le_next, np);					LIST_INSERT_AFTER(t, n, entries);					if(np->size == 0) {						LIST_REMOVE(&cache, np, entries);						RFREE(np);					}				}				PrintCacheStatys("Allocate Buffer greater");				return RM_OK;//break;			} else {				entryLRU* nlru = (entryLRU*) MALLOC (sizeof(entryLRU));				np->freeBlock = FALSE;				np->locked = locked;				pBuffer->baseAddr = np->begin;				pBuffer->size = size;				pBuffer->limit = np->end;				pBuffer->offset = 0;				pBuffer->pMappedAddr = g_BaseBuffer.pMappedAddr + np->begin - g_BaseBuffer.baseAddr;				nlru->item = np;				LIST_INSERT_HEAD(&lru, nlru, entries);				PrintCacheStatys("Allocate Buffer equel");				return RM_OK;//break;			}		}	}	if(np == NULL)		return status;//	if(g_BaseBuffer.baseAddr){//		limit = g_BaseBuffer.baseAddr + g_BaseBuffer.offset + size;//		if(limit > g_BaseBuffer.limit){//			printf("Could not allocate, missing %ld\n", g_BaseBuffer.limit - limit);//			return RM_ERROR;//		}////		pBuffer->baseAddr = g_BaseBuffer.baseAddr + g_BaseBuffer.offset;//		pBuffer->pMappedAddr = g_BaseBuffer.pMappedAddr + g_BaseBuffer.offset;//		pBuffer->size = size;//		pBuffer->limit = limit;//		pBuffer->offset = 0;////		g_BaseBuffer.offset += size;////		status = RM_OK;////		printf("Allocated %ld, left %ld\n", size, g_BaseBuffer.size - g_BaseBuffer.offset);//	}	return status;}RMstatus AllocateBackBuffer(	struct RUA* pRua,	RMdrawBuffer *pBaseBuffer,	RMuint32 size){	RMstatus status;	if(pBaseBuffer->baseAddr != 0)		return RM_ERROR;	RMMemset(pBaseBuffer, 0, sizeof(RMdrawBuffer));	pBaseBuffer->baseAddr = RUAMalloc(pRua, 0, RUA_DRAM_UNCACHED, size);	if(pBaseBuffer->baseAddr == 0)		return RM_ERROR;	status = RUALock(pRua, pBaseBuffer->baseAddr, size);	if(RMFAILED(status)){		RUAFree(pRua, pBaseBuffer->baseAddr);		return RM_ERROR;	}	pBaseBuffer->pMappedAddr = RUAMap(pRua, pBaseBuffer->baseAddr, size);	if (pBaseBuffer->pMappedAddr == NULL){		RUAUnLock(pRua, pBaseBuffer->baseAddr, size);		RUAFree(pRua, pBaseBuffer->baseAddr);		return RM_ERROR;	}	pBaseBuffer->offset = 0;	pBaseBuffer->limit = pBaseBuffer->baseAddr + size;	pBaseBuffer->size = size;	//RMMemcpy(pBaseBuffer, &g_BaseBuffer, sizeof(RMdrawBuffer));	return RM_OK;}RMstatus AllocateBaseBuffer(	struct RUA* pRua,	RMdrawBuffer *pBaseBuffer,	RMuint32 size){	RMstatus status;	entry* np;	if(pBaseBuffer->baseAddr != 0)		return RM_ERROR;	LIST_INIT(&cache);	LIST_INIT(&lru);	RMMemset(&g_BaseBuffer, 0, sizeof(RMdrawBuffer));	g_BaseBuffer.baseAddr = RUAMalloc(pRua, 0, RUA_DRAM_UNCACHED, size);	if(g_BaseBuffer.baseAddr == 0)		return RM_ERROR;	status = RUALock(pRua, g_BaseBuffer.baseAddr, size);	if(RMFAILED(status)){		RUAFree(pRua, g_BaseBuffer.baseAddr);		return RM_ERROR;	}	g_BaseBuffer.pMappedAddr = RUAMap(pRua, g_BaseBuffer.baseAddr, size);	if (g_BaseBuffer.pMappedAddr == NULL){		RUAUnLock(pRua, g_BaseBuffer.baseAddr, size);		RUAFree(pRua, g_BaseBuffer.baseAddr);		return RM_ERROR;	}	np = (entry*) MALLOC(sizeof(entry));	np->begin = g_BaseBuffer.baseAddr;	np->end = g_BaseBuffer.baseAddr + size;	np->size = size;	np->freeBlock = TRUE;	RMASSERT(np != NULL);	LIST_INSERT_HEAD(&cache, np, entries);//	PrintCacheStatys("Allocate Base Buffer");	g_BaseBuffer.offset = 0;	g_BaseBuffer.limit = g_BaseBuffer.baseAddr + size;	g_BaseBuffer.size = size;	RMMemcpy(pBaseBuffer, &g_BaseBuffer, sizeof(RMdrawBuffer));	return RM_OK;}RMstatus FreeBackBuffer(struct RUA* pRua, RMdrawBuffer *pBaseBuffer){	// free drawing buffer	if(pBaseBuffer->baseAddr != 0){		RUAUnMap(pRua, pBaseBuffer->pMappedAddr, pBaseBuffer->size);		RUAUnLock(pRua, pBaseBuffer->baseAddr, pBaseBuffer->size);		RUAFree(pRua, pBaseBuffer->baseAddr);		pBaseBuffer->baseAddr = 0;		return RM_OK;	}	return RM_ERROR;}RMstatus FreeBaseBuffer(struct RUA* pRua){	// free drawing buffer	if(g_BaseBuffer.baseAddr != 0){		RUAUnMap(pRua, g_BaseBuffer.pMappedAddr, g_BaseBuffer.size);		RUAUnLock(pRua, g_BaseBuffer.baseAddr, g_BaseBuffer.size);		RUAFree(pRua, g_BaseBuffer.baseAddr);		g_BaseBuffer.baseAddr = 0;		while (cache.lh_first != NULL)			{				entry* n = cache.lh_first;				LIST_REMOVE(&cache, cache.lh_first, entries);//				printf("remove: %p\n", n);				RFREE(n);			}			while (lru.lh_first != NULL)			{				entryLRU* n = lru.lh_first;				LIST_REMOVE(&lru, lru.lh_first, entries);//				printf("remove: %p\n", n);				RFREE(n);			}//			PrintCacheStatys("FreeBaseBuffer");		return RM_OK;	}	return RM_ERROR;}RMstatus ResetBuffer(RMdrawBuffer *pBaseBuffer){	entry* n = cache.lh_first->entries.le_next;	entryLRU* nlru = lru.lh_first;	while (n->entries.le_next != NULL)	{		if(n->begin == pBaseBuffer->baseAddr)		{//		if(cache.lh_first->freeBlock) {			if(n->entries.le_next && n->entries.le_next->freeBlock && n->entries.le_prev && n->entries.le_prev->freeBlock)			{				entry* n_end = n->entries.le_next;				entry* _n = n;				LIST_REMOVE(&cache, n, entries);				n->entries.le_prev->end = n->entries.le_next->end;				n->entries.le_prev->size += n->size + n_end->size;				LIST_REMOVE(&cache, n_end, entries);				while(nlru->entries.le_next)				{					if(nlru->item == n)					{						entryLRU* _nlru = nlru;						LIST_REMOVE(&lru, nlru, entries);						nlru = nlru->entries.le_next;						RFREE(_nlru);						break;					}					nlru = nlru->entries.le_next;				}				n = n_end->entries.le_next;				RFREE(n_end);				RFREE(_n);				break;			}			else if(n->entries.le_next && n->entries.le_next->freeBlock)			{				LIST_REMOVE(&cache, n, entries);				n->entries.le_next->begin = n->begin;				n->entries.le_next->size += n->size;				while(nlru->entries.le_next)				{					if(nlru->item == n)					{						entryLRU* _nlru = nlru;						LIST_REMOVE(&lru, nlru, entries);						nlru = nlru->entries.le_next;						RFREE(_nlru);						break;					}					nlru = nlru->entries.le_next;				}				RFREE(n);				break;			}			else if(n->entries.le_prev && n->entries.le_prev->freeBlock)			{				LIST_REMOVE(&cache, n, entries);				n->entries.le_prev->end = n->end;				n->entries.le_prev->size += n->size;				while(nlru->entries.le_next)				{					if(nlru->item == n)					{						entryLRU* _nlru = nlru;						LIST_REMOVE(&lru, nlru, entries);						nlru = nlru->entries.le_next;						RFREE(_nlru);						break;					}					nlru = nlru->entries.le_next;				}				RFREE(n);				break;			}			else			{				n->freeBlock = TRUE;				while(nlru->entries.le_next)				{					if(nlru->item == n)					{						entryLRU* _nlru = nlru;						LIST_REMOVE(&lru, nlru, entries);						nlru = nlru->entries.le_next;						RFREE(_nlru);						break;					}					nlru = nlru->entries.le_next;				}				break;			}		}		n = n->entries.le_next;	}	PrintCacheStatys("Reset Buffer");	return RM_OK;}RMstatus ResetBaseBuffer(RMdrawBuffer *pBaseBuffer){	RMMemcpy(&g_BaseBuffer, pBaseBuffer, sizeof(RMdrawBuffer));//	PrintCacheStatys("Reset Base Buffer");	while (cache.lh_first->entries.le_next != NULL)	{		entry* n = cache.lh_first->entries.le_next;		LIST_REMOVE(&cache, n, entries);//		if(cache.lh_first->freeBlock) {			cache.lh_first->end = n->end;			cache.lh_first->size += n->size;			cache.lh_first->freeBlock = TRUE;			cache.lh_first->locked = FALSE;//		}		RFREE(n);//		PrintCacheStatys("Reset Base Buffer");	}	while (lru.lh_first != NULL)	{			entryLRU* n = lru.lh_first;			LIST_REMOVE(&lru, lru.lh_first, entries);//			printf("remove: %p\n", n);			RFREE(n);	}//	PrintCacheStatys("Reset Base Buffer");	return RM_OK;}void UpdateCache(RMuint8 i){	entryLRU* nlru = lru.lh_first;//	printf("bitmap base addres: %lu\n", g_bitmaps[i].pBmpAddr);	while(nlru->entries.le_next)	{		if(nlru->item->begin == g_bitmaps[i].pBmpAddr)			break;		nlru = nlru->entries.le_next;	}	if(i == 0)		nlru->item->locked = TRUE;//	if(nlru == NULL)//		RMASSERT(FALSE);	LIST_REMOVE(&lru, nlru, entries);	LIST_INSERT_HEAD(&lru, nlru, entries);//	PrintCacheStatys("UpdateCache");}void CacheFlush(){	entry* n = cache.lh_first;	entryLRU* l = lru.lh_first;	printf("CACHE FLUSH!!!!!! \n");	while (n->entries.le_next != NULL)	{		if(n->entries.le_next->locked) {			n->freeBlock = TRUE;			n = n->entries.le_next;		} else {			entry* t = n->entries.le_next;			LIST_REMOVE(&cache, t, entries);	//			if(cache.lh_first->freeBlock) {			n->end = t->end;			n->size += t->size;			n->freeBlock = TRUE;			n->locked = FALSE;	//		}			RFREE(t);			if(n->entries.le_next != NULL)				n = n->entries.le_next;			else				break;		}	//		PrintCacheStatys("Reset Base Buffer");	}	printf("CACHE FLUSH!!!!!! \n");	while (l->entries.le_next != NULL)	{		if(l->item->locked)		{			l = l->entries.le_next;		} else {			entryLRU* t = l;			l = l->entries.le_next;			LIST_REMOVE(&lru, t, entries);	//			printf("remove: %p\n", n);			RFREE(t);		}	}	printf("CACHE FLUSH!!!!!! \n");}RMstatus FindFreeSpace(RMuint32 size, RMuint8* newindex){	entryLRU* nlru = lru.lh_first;	RMint8 i;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区成人在线视频| 国产精品久久久久久久久快鸭| 欧美四级电影在线观看| 成人一区二区三区| caoporm超碰国产精品| caoporm超碰国产精品| 99re热这里只有精品视频| 91在线视频在线| 欧美视频中文一区二区三区在线观看| 色婷婷av久久久久久久| 欧美视频在线一区| 日韩精品一区二区三区在线播放| 9191久久久久久久久久久| 91精品国产日韩91久久久久久| 在线播放国产精品二区一二区四区 | 午夜av一区二区三区| 午夜视频一区二区三区| 免费欧美日韩国产三级电影| 性欧美大战久久久久久久久| 日韩av电影免费观看高清完整版| 久久精品av麻豆的观看方式| 国产精品一区二区久久不卡 | 丁香六月综合激情| 9久草视频在线视频精品| 色哟哟在线观看一区二区三区| 欧美色图激情小说| 日韩一区二区高清| 国产精品久久久久久久久免费桃花| 亚洲在线观看免费| 久久97超碰色| 一本到三区不卡视频| 日韩片之四级片| 国产精品成人免费在线| 日本视频免费一区| 国产宾馆实践打屁股91| 欧美日韩电影在线播放| 国产日韩精品视频一区| 亚欧色一区w666天堂| 国产精品资源网站| 欧美狂野另类xxxxoooo| 久久久久97国产精华液好用吗| 1000精品久久久久久久久| 蜜桃视频免费观看一区| 97se狠狠狠综合亚洲狠狠| 91精品国产乱码久久蜜臀| 国产精品国产三级国产普通话99| 日本美女视频一区二区| 91在线视频免费观看| 久久久久久免费网| 免费在线欧美视频| 欧美三级视频在线观看| 自拍偷拍亚洲综合| 激情成人午夜视频| 欧美大黄免费观看| 午夜精品福利一区二区蜜股av| 国产成人精品三级麻豆| 日韩精品中文字幕一区| 午夜精品福利久久久| 在线观看www91| 综合久久一区二区三区| 成人一区二区三区中文字幕| 久久蜜桃av一区二区天堂| 免费观看一级特黄欧美大片| 欧美日韩不卡视频| 午夜亚洲国产au精品一区二区| 色噜噜夜夜夜综合网| 亚洲欧洲av一区二区三区久久| 国产麻豆午夜三级精品| 欧美tickle裸体挠脚心vk| 日韩高清国产一区在线| 在线不卡中文字幕播放| 日韩在线一区二区| 69堂亚洲精品首页| 免费成人结看片| 日韩免费在线观看| 久久国产婷婷国产香蕉| 日韩免费观看高清完整版| 蜜桃av噜噜一区| 日韩精品一区二区三区视频在线观看 | 97se狠狠狠综合亚洲狠狠| 欧美国产精品v| 成人免费va视频| 国产精品久久久久三级| 成人高清视频免费观看| 日韩一区欧美小说| 欧美日韩一区久久| 三级成人在线视频| 久久综合国产精品| 国产精品一区在线观看乱码| 国产精品麻豆视频| 色狠狠桃花综合| 日本麻豆一区二区三区视频| 2021国产精品久久精品| 色悠悠亚洲一区二区| 亚洲一区二区三区爽爽爽爽爽| 欧美日韩精品综合在线| 久久不见久久见免费视频1| 久久久精品影视| 91精彩视频在线| 免费在线观看一区| 国产精品久线观看视频| 欧美专区日韩专区| 精品一区二区免费看| 国产精品国产自产拍高清av| 欧美精三区欧美精三区| 国产原创一区二区| 一区二区日韩电影| 欧美大片在线观看| 在线看国产一区二区| 久久精品99久久久| 亚洲六月丁香色婷婷综合久久| 欧美日韩精品免费| 国产ts人妖一区二区| 亚州成人在线电影| 中文字幕在线观看不卡视频| 欧美日韩1234| 92国产精品观看| 国产福利一区二区三区| 五月婷婷综合在线| 1000部国产精品成人观看| 精品国产精品网麻豆系列| 91视频在线看| 国产成人午夜片在线观看高清观看| 亚洲图片欧美色图| 日韩美女精品在线| 久久精品这里都是精品| 欧美日韩色一区| 99riav久久精品riav| 国产高清精品网站| 看片网站欧美日韩| 日韩国产成人精品| 亚洲va中文字幕| 亚洲视频一区二区免费在线观看| 欧美r级在线观看| 欧美一二三在线| 色综合天天视频在线观看| 激情综合网最新| 日本不卡的三区四区五区| 亚洲国产精品久久久久秋霞影院| 国产精品视频线看| 国产欧美日韩三级| 一区二区三区中文免费| 久久精品一二三| 精品国产免费视频| 精品免费国产一区二区三区四区| 欧美高清hd18日本| 欧美日韩一区久久| 67194成人在线观看| 欧美日韩精品高清| 91.com在线观看| 欧美一区二区三区免费大片| 欧美日精品一区视频| 欧美视频一区二区| 8x8x8国产精品| 欧美不卡一区二区| 26uuu欧美日本| 中日韩免费视频中文字幕| 欧美激情一区二区三区不卡| 国产农村妇女精品| 亚洲三级视频在线观看| 亚洲制服丝袜在线| 免费观看在线色综合| 激情五月婷婷综合| 丰满放荡岳乱妇91ww| jizz一区二区| 欧美艳星brazzers| 91精品视频网| 久久久国产午夜精品| 国产精品美女一区二区在线观看| 中文字幕制服丝袜成人av| 亚洲欧美另类久久久精品2019| 亚洲摸摸操操av| 日韩精品欧美精品| 国模少妇一区二区三区| 成人国产一区二区三区精品| 色偷偷久久一区二区三区| 91精品免费在线| 国产拍揄自揄精品视频麻豆| 国产成人精品亚洲午夜麻豆| 色偷偷88欧美精品久久久| 91.com视频| 1024国产精品| 麻豆精品在线播放| 97se亚洲国产综合自在线观| 欧美一级日韩免费不卡| 国产视频在线观看一区二区三区| 一区二区三区在线高清| 老色鬼精品视频在线观看播放| 不卡在线视频中文字幕| 日韩欧美久久久| 亚洲丝袜精品丝袜在线| 精品一区二区三区视频| 在线观看欧美黄色| 久久先锋影音av| 亚洲一区二区3| 高清免费成人av| 欧美不卡一区二区| 午夜精品久久久久影视| 成人亚洲一区二区一| 欧美一级爆毛片|