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

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

?? cachearchlib.c

?? vxworks的源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
	else	    {	    /* Instruction cache */	    cacheIInvalidateAll ();	/* Invalidate all cache tags */	    cacheArchState |= MMUCR_I_ENABLE;	/* note turning I-cache on */	    }	/*	 * Only actually enable either cache if MMU is already on, else it will	 * be done later by mmuEnable(), as will the setting of	 * cacheDataEnabled and the calling of cacheFuncsSet().	 * Only change those bits that require setting, relying on the	 * current state of the MMUCR.	 */	oldLevel = intIFLock ();	if (cacheMmuIsOn ())	    {	    cacheDataEnabled = TRUE;	    cacheFuncsSet ();	    mmuModifyCr (cacheArchState, cacheArchState);	    }	intIFUnlock (oldLevel);#endif /* (ARMCACHE == ARMCACHE_940T,946E) */#if ARMCACHE_NEEDS_IMB	if (cache == INSTRUCTION_CACHE)	    /*	     * If they've asked to enable the I-cache, we'd better flush the	     * prefetch unit by doing an Instruction Memory Barrier (IMB	     * instruction).	     */	    cacheIMB ();#endif /* ARMCACHE_NEEDS_IMB */	} /* endif cache not already enabled */    return OK;    } /* cacheArchEnable() *//********************************************************************************* cacheArchDisable - disable an ARM cache** This routine flushes, clears and disables the specified ARM instruction or* data cache.** RETURNS: OK, or ERROR if the cache type is invalid or the cache control* is not supported.** NOMANUAL*/LOCAL STATUS cacheArchDisable    (    CACHE_TYPE	cache		/* cache to disable */    )    {    if (cacheProbe (cache) != OK)	return ERROR;		/* invalid cache */    if (cacheIsOn (cache))		/* already off? */	{#if ((ARMCACHE == ARMCACHE_710A) || (ARMCACHE == ARMCACHE_720T) || \     (ARMCACHE == ARMCACHE_740T) || (ARMCACHE == ARMCACHE_810))	/* keep a note that we have disabled the cache */	cacheArchState = 0;	/*	 * Clear (flush and invalidate) D-cache, drain W/Buffer, disable	 * D-cache, switch off Write Buffer.	 */	cacheDClearDisable ();	cacheDataEnabled = FALSE;	/* data cache is off */	cacheFuncsSet ();		/* update data function ptrs */#endif /* 710A, 720T, 740T */#if ((ARMCACHE == ARMCACHE_SA110)  || (ARMCACHE == ARMCACHE_SA1100) || \     (ARMCACHE == ARMCACHE_SA1500))	if (cache == DATA_CACHE)	    {	    /* keep a note that we have disabled the cache */	    cacheArchState = 0;	    /*	     * Clear (flush and invalidate) D-cache, drain W/Buffer, disable	     * D-cache, switch off Write Buffer.	     */	    cacheDClearDisable ();	    cacheDataEnabled = FALSE;	/* data cache is off */	    cacheFuncsSet ();		/* update data function ptrs */	    }	else	    /* Instruction cache: disable, flush I-cache and do branch */	    cacheIClearDisable ();#endif /* SA110, SA1100, SA1500 */#if ((ARMCACHE == ARMCACHE_920T)   || (ARMCACHE == ARMCACHE_926E)   || \     (ARMCACHE == ARMCACHE_940T)   || (ARMCACHE == ARMCACHE_946E)   || \     (ARMCACHE == ARMCACHE_XSCALE) || (ARMCACHE == ARMCACHE_1020E)  || \     (ARMCACHE == ARMCACHE_1022E))	if (cache == DATA_CACHE)	    {	    /* note that we have disabled the cache. W bit is Should Be One */	    cacheArchState &= ~MMUCR_C_ENABLE;	    /*	     * Clear (flush and invalidate) D-cache, drain W/Buffer, disable	     * D-cache.	     */	    cacheDClearDisable ();	    cacheDataEnabled = FALSE;	/* data cache is off */	    cacheFuncsSet ();		/* update data function ptrs */	    }	else	    {	    /*	     * Instruction cache: note disabling, disable, flush	     * I-cache and do branch. On 920T, don't need to keep note	     * of I-cache setting, only on 940T, where I-cache cannot be	     * enabled without MMU.	     */#if ((ARMCACHE == ARMCACHE_940T) || (ARMCACHE == ARMCACHE_946E))	    cacheArchState &= ~MMUCR_I_ENABLE;#endif	    cacheIClearDisable ();	    }#endif /* 920T, 926E, 940T, 946E, XSCALE, 1020E, 1022E */#if ARMCACHE_NEEDS_IMB	if (cache == INSTRUCTION_CACHE)	    /*	     * If they've asked to enable the I-cache, we'd better flush the	     * prefetch unit by doing an Instruction Memory Barrier (IMB	     * instruction).	     */	    cacheIMB ();#endif /* ARMCACHE_NEEDS_IMB */	} /* endif cache was on */    return OK;    } /* cacheArchDisable() *//********************************************************************************* cacheArchFlush - flush entries from an ARM cache** This routine flushes (writes out to memory) some or all entries from the* specified ARM cache and drains write-buffer, if appropriate.** RETURNS: OK, or ERROR if the cache type is invalid or the cache control* is not supported.** NOMANUAL*/LOCAL STATUS cacheArchFlush    (    CACHE_TYPE	cache,		/* cache to flush */    void *	address,	/* address to flush */    size_t	bytes		/* bytes to flush */    )    {    if (cacheProbe (cache) != OK)	return ERROR;		/* invalid cache */#if ((ARMCACHE == ARMCACHE_710A) || (ARMCACHE == ARMCACHE_720T) || \     (ARMCACHE == ARMCACHE_740T))    cacheArchPipeFlush ();	/* drain W/B */#endif#if ((ARMCACHE == ARMCACHE_810)    || (ARMCACHE == ARMCACHE_SA110)  || \     (ARMCACHE == ARMCACHE_SA1100) || (ARMCACHE == ARMCACHE_SA1500) || \     (ARMCACHE == ARMCACHE_920T)   || (ARMCACHE == ARMCACHE_926E)   || \     (ARMCACHE == ARMCACHE_940T)   || (ARMCACHE == ARMCACHE_946E)   || \     (ARMCACHE == ARMCACHE_XSCALE) || (ARMCACHE == ARMCACHE_1020E)  || \     (ARMCACHE == ARMCACHE_1022E))    if (cache == DATA_CACHE)	{	if ((bytes == ENTIRE_CACHE) ||#if (ARMCACHE == ARMCACHE_810)	    /*	     * On 810, to flush an individual address, we actually end up	     * flushing much more. If the address range corresponds to 8	     * segments or more, we might as well do the lot and be done with	     * it.	     */	    (bytes >= (_CACHE_ALIGN_SIZE * 8)))#endif#if (ARMCACHE == ARMCACHE_940T)	    /* similar arguments on 940T, for 4 segments or more */	    (bytes >= (_CACHE_ALIGN_SIZE * 4)))#endif#if ((ARMCACHE == ARMCACHE_SA110)  || (ARMCACHE == ARMCACHE_SA1100) || \     (ARMCACHE == ARMCACHE_SA1500) || (ARMCACHE == ARMCACHE_920T)   || \     (ARMCACHE == ARMCACHE_926E)   || (ARMCACHE == ARMCACHE_946E)   || \     (ARMCACHE == ARMCACHE_XSCALE) || (ARMCACHE == ARMCACHE_1020E)  || \     (ARMCACHE == ARMCACHE_1022E))	    (bytes >= D_CACHE_SIZE))#endif	    cacheDFlushAll ();	/* also drains W/B */	else	    {	    /* not doing all the cache, do the area requested */	    bytes += (size_t) address;	    address = (void *) ((UINT) address & ~(_CACHE_ALIGN_SIZE - 1));	    do		{		cacheDFlush (address);		address = (void *) ((UINT) address + _CACHE_ALIGN_SIZE);		}	    while ((size_t) address < bytes);	    cacheArchPipeFlush ();	/* drain write buffer */	    }	} /* endif data cache */    /* else I-cache. No need to do anything as I-cache is read-only. */#endif    return OK;    } /* cacheArchFlush() *//********************************************************************************* cacheArchInvalidate - invalidate entries from an ARM cache** This routine invalidates some or all entries from the specified ARM cache.** RETURNS: OK, or ERROR if the cache type is invalid or the cache control* is not supported.** NOMANUAL*/LOCAL STATUS cacheArchInvalidate    (    CACHE_TYPE	cache, 		/* cache to clear */    void *	address,	/* address to clear */    size_t	bytes		/* bytes to clear */    )    {    if (cacheProbe (cache) != OK)	return ERROR;		/* invalid cache */#if ((ARMCACHE == ARMCACHE_710A) || (ARMCACHE == ARMCACHE_720T) || \     (ARMCACHE == ARMCACHE_740T))    cacheDInvalidateAll ();	/* Cannot invalidate individual lines */#endif#if (ARMCACHE == ARMCACHE_810)    /*     * On 810, to invalidate an individual address, we actually end     * up invalidating much more, so we need to flush it first, to avoid     * invalidating some dirty data.  If the address range corresponds to 8     * segments or more, we might as well do the lot and be done with it. If     * the user has actually asked to invalidate all the cache, then we can     * actually do an invalidate of all the cache, not a clear.     */    if (cache == DATA_CACHE)	{	if (bytes == ENTIRE_CACHE)	    cacheDInvalidateAll();	else	    if (bytes >= (_CACHE_ALIGN_SIZE * 8))		cacheDClearAll();	    else		{		bytes += (size_t) address;		address = (void *) ((UINT) address & ~(_CACHE_ALIGN_SIZE - 1));		do		    {		    cacheDClear (address);		    address = (void *) ((UINT) address + _CACHE_ALIGN_SIZE);		    }		while ((size_t) address < bytes);		cacheArchPipeFlush ();	/* drain write buffer */		}	}    else	{	/* Instruction cache */	if (bytes == ENTIRE_CACHE)	    cacheIMB ();	/* Execute IMB to flush Prefetch Unit */	else	    cacheIMBRange(address, (INSTR *) ((UINT32)address + bytes));	}#endif#if ((ARMCACHE == ARMCACHE_SA110)  || \     (ARMCACHE == ARMCACHE_SA1100) || (ARMCACHE == ARMCACHE_SA1500))    if (cache == DATA_CACHE)	if (bytes == ENTIRE_CACHE)	    cacheDInvalidateAll ();	else	    {	    bytes += (size_t) address;	    address = (void *) ((UINT) address & ~(_CACHE_ALIGN_SIZE - 1));	    do		{		cacheDInvalidate (address);		address = (void *) ((UINT) address + _CACHE_ALIGN_SIZE);		}	    while ((size_t) address < bytes);	    }    else	/* I-cache */	cacheIInvalidateAll ();	/* Cannot invalidate individual lines */#endif    /*     * The if (bytes == ENTIRE_CACHE) used to be (== ENTIRE_CACHE) ||     * (bytes >= D_CACHE_SIZE), which would invalidate unexpected bits of     * the cache. Fixes SPR #30698.     */#if ((ARMCACHE == ARMCACHE_920T)   || (ARMCACHE == ARMCACHE_926E)   || \     (ARMCACHE == ARMCACHE_946E)   || (ARMCACHE == ARMCACHE_XSCALE) || \     (ARMCACHE == ARMCACHE_1020E)  || (ARMCACHE == ARMCACHE_1022E))    if (cache == DATA_CACHE)	if (bytes == ENTIRE_CACHE)	    cacheDInvalidateAll ();	else	    {	    bytes += (size_t) address;	    address = (void *) ((UINT) address & ~(cacheArchAlignSize - 1));	    do		{		cacheDInvalidate (address);		address = (void *) ((UINT) address + cacheArchAlignSize);		}	    while ((size_t) address < bytes);	    }    else	/* I-cache */	if ((bytes == ENTIRE_CACHE) || (bytes >= I_CACHE_SIZE))	    cacheIInvalidateAll ();	else	    {#if (ARMCACHE == ARMCACHE_XSCALE)	    /* visionProbe will not operate correctly with single line flushes*/	    cacheIInvalidateAll ();#else	    bytes += (size_t) address;	    address = (void *) ((UINT) address & ~(cacheArchAlignSize - 1));	    do		{		cacheIInvalidate (address);#if (ARMCACHE == ARMCACHE_XSCALE)		btbInvalidate ();#endif /* (ARMCACHE == ARMCACHE_XSCALE) */		address = (void *) ((UINT) address + cacheArchAlignSize);		}	    while ((size_t) address < bytes);#endif /* (ARMCACHE == XSCALE) */	    }#endif /* (ARMCACHE == ARMCACHE_920T,926E,946E,XSCALE,1020E,1022E) */#if (ARMCACHE == ARMCACHE_940T)    /*     * On 940T, we also end up invalidating much more, so we need to     * flush it first, to avoid invalidating some dirty data.  If the     * address range corresponds to 4 segments or more, we might as well     * do the lot and be done with it. If the user has actually asked to     * invalidate all the cache, then we can actually do an invalidate of     * all the cache, not a clear.     */    if (cache == DATA_CACHE)	{	if (bytes == ENTIRE_CACHE)	    cacheDInvalidateAll();	else	    if (bytes >= (_CACHE_ALIGN_SIZE * 4))		cacheDClearAll();	    else		{		bytes += (size_t) address;		address = (void *) ((UINT) address & ~(_CACHE_ALIGN_SIZE - 1));		do		    {		    cacheDClear (address);		    address = (void *) ((UINT) address + _CACHE_ALIGN_SIZE);		    }		while ((size_t) address < bytes);		cacheArchPipeFlush ();	/* drain write buffer */		}	}    else	{	/* Instruction cache */	if (bytes == ENTIRE_CACHE)	    cacheIInvalidateAll();	else	    if (bytes >= (_CACHE_ALIGN_SIZE * 4))		cacheIInvalidateAll();	    else		{		bytes += (size_t) address;		address = (void *) ((UINT) address & ~(_CACHE_ALIGN_SIZE - 1));		do		    {		    cacheIInvalidate (address);		    address = (void *) ((UINT) address + _CACHE_ALIGN_SIZE);		    }		while ((size_t) address < bytes);		}	}#endif    return OK;    } /* cacheArchInvalidate() *//*******************************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品视频在线免费观看| 亚洲一区在线免费观看| 一区二区三区蜜桃网| 激情综合网av| 欧美日韩综合色| 成人免费小视频| 黄色成人免费在线| 欧美精品日韩综合在线| 亚洲欧美区自拍先锋| 国产福利一区在线| 日韩欧美一区二区三区在线| 亚洲一区二区精品3399| 99视频在线精品| 国产蜜臀av在线一区二区三区| 天堂蜜桃91精品| 91免费版pro下载短视频| 久久人人爽人人爽| 国产又粗又猛又爽又黄91精品| 91精品国产综合久久久久久久久久| 国产精品久久久久久久久免费丝袜| 日本欧美一区二区| 欧美日韩卡一卡二| 亚洲成a人片在线不卡一二三区| av资源网一区| 中文字幕欧美激情一区| 激情图片小说一区| 久久亚区不卡日本| 国产精品66部| 中文字幕av一区 二区| 丰满少妇久久久久久久| 国产日韩欧美不卡在线| 风间由美一区二区av101| 国产欧美一区二区三区在线老狼 | 欧美日精品一区视频| 一区二区三区免费在线观看| 色婷婷狠狠综合| 亚洲大片一区二区三区| 正在播放一区二区| 强制捆绑调教一区二区| 精品日韩在线观看| 国产一区二区在线看| 久久久91精品国产一区二区三区| 国产电影精品久久禁18| 中文字幕一区二区三区乱码在线 | 综合久久久久久久| 91在线视频18| 亚洲午夜久久久| 日韩一区二区在线看| 国产在线精品一区二区不卡了 | 日本色综合中文字幕| 欧美xxx久久| 国产成人免费在线观看| 亚洲欧美日本在线| 91精品久久久久久久91蜜桃| 国产乱人伦偷精品视频不卡| 国产精品丝袜久久久久久app| 91丨porny丨中文| 亚洲成av人片| 26uuu亚洲综合色欧美| 波多野结衣精品在线| 亚洲一二三四在线观看| 日韩三级在线观看| 国产精品一区二区你懂的| 亚洲精品第一国产综合野| 91精品啪在线观看国产60岁| 国产乱色国产精品免费视频| 一区二区三区自拍| 日韩美女天天操| 色偷偷一区二区三区| 免费人成在线不卡| 成人欧美一区二区三区小说| 日韩网站在线看片你懂的| 9色porny自拍视频一区二区| 天堂蜜桃91精品| 亚洲欧洲日产国码二区| 日韩欧美在线网站| 91视频www| 国产一区二区三区免费播放| 亚洲午夜激情网站| 国产精品视频看| 91麻豆精品国产91久久久资源速度| 国产91富婆露脸刺激对白| 视频一区欧美精品| 亚洲天堂免费看| 精品国产髙清在线看国产毛片| 日本久久精品电影| 国产精品一区二区男女羞羞无遮挡| 午夜精品福利一区二区三区蜜桃| 国产精品婷婷午夜在线观看| 日韩视频免费直播| 欧美日韩成人一区| 91蝌蚪porny| 国产成人h网站| 久久99国产精品久久99果冻传媒| 亚洲福利一区二区三区| 亚洲视频综合在线| 国产精品色噜噜| 国产亚洲欧洲997久久综合| 欧美一区二区视频在线观看2022| 色狠狠色狠狠综合| 97久久人人超碰| 成人一区在线看| 国产盗摄一区二区| 国产成人在线观看| 国产麻豆成人传媒免费观看| 麻豆精品在线播放| 丝袜美腿亚洲一区| 五月天一区二区三区| 一区二区不卡在线播放| 亚洲精品亚洲人成人网在线播放| 国产精品久久777777| 国产欧美一区二区三区沐欲| 久久影院视频免费| 久久午夜羞羞影院免费观看| 精品欧美一区二区久久| 精品免费视频.| 欧美一个色资源| 2021中文字幕一区亚洲| 精品国产三级电影在线观看| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美日韩亚洲不卡| 欧美三级视频在线观看| 9191久久久久久久久久久| 宅男在线国产精品| 日韩免费观看高清完整版| 26uuu欧美日本| 国产精品免费aⅴ片在线观看| 1区2区3区国产精品| 亚洲精品成a人| 天堂精品中文字幕在线| 精品一区二区三区蜜桃| 福利一区福利二区| 一本色道综合亚洲| 欧美一区日本一区韩国一区| 精品国产3级a| 亚洲国产精品v| 樱桃国产成人精品视频| 香蕉久久一区二区不卡无毒影院| 免费高清不卡av| 国产精品一卡二| 色综合天天性综合| 欧美日韩美女一区二区| 久久夜色精品一区| 一区二区三区在线观看动漫| 日韩不卡免费视频| 成人三级伦理片| 欧美剧情电影在线观看完整版免费励志电影 | 在线不卡中文字幕| 国产校园另类小说区| 亚洲色图欧美在线| 蜜臀99久久精品久久久久久软件| 国产成人午夜精品影院观看视频| 色偷偷久久一区二区三区| 欧美一级日韩免费不卡| 国产精品乱码人人做人人爱 | 成人av资源在线观看| 91国内精品野花午夜精品| 日韩女优电影在线观看| 亚洲婷婷国产精品电影人久久| 美女脱光内衣内裤视频久久网站| 不卡的av电影| 日韩午夜三级在线| 亚洲一区在线观看网站| 国产成人亚洲精品青草天美| 6080日韩午夜伦伦午夜伦| 国产精品久久久久aaaa樱花| 久久99精品久久久| 欧美日韩精品专区| 中文字幕日韩精品一区 | 色综合久久久久久久久久久| 日韩美女天天操| 亚洲1区2区3区4区| aa级大片欧美| 欧美国产欧美综合| 激情亚洲综合在线| 91精品国产色综合久久ai换脸| 国产精品久久久久四虎| 国产麻豆9l精品三级站| 日韩欧美一级特黄在线播放| 亚洲国产另类av| 色偷偷成人一区二区三区91| 国产精品久久久久影院亚瑟 | 国产成人av影院| 精品国产三级电影在线观看| 视频一区视频二区在线观看| 欧美体内she精高潮| 亚洲天堂网中文字| 成人av第一页| 国产精品毛片a∨一区二区三区| 国产精品中文有码| 国产喷白浆一区二区三区| 精品在线亚洲视频| 精品国产乱码久久久久久蜜臀| 蜜臀va亚洲va欧美va天堂 | 欧美日韩高清在线播放| 一区二区三区91| 日本精品裸体写真集在线观看| 亚洲同性同志一二三专区| 色综合久久综合网欧美综合网| 亚洲狠狠丁香婷婷综合久久久|