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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cachearchlib.c

?? VxWorks BSP框架源代碼包含頭文件和驅(qū)動
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* cacheArchLib.c - 68K cache management library *//* Copyright 1984-1994 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------03j,29nov95,jdi  doc: fixed typos.03i,02aug95,tpr  added cacheArch060DmaMalloc ().03g,26oct94,tmk  added MC68LC040 support03h,02jun94,tpr  added cacheStoreBufEnable() and cacheStoreBufDisable().		 clean up following code review.		 added MC68060 cpu support.03g,23feb93,jdi  doc: changed cacheArchInvalidate() to refer to 68040 only.03f,15feb93,jdi  made everything NOMANUAL except for cacheArchLibInit() and		 cacheArchClearEntry().03e,10feb93,jwt  added missing address alignment for !ENTIRE_CACHE cases.03d,24jan93,jdi  documentation cleanup for 5.1.03c,22dec92,jwt  added cacheArchInvalidate() for '040 invalidate pointer.03b,19oct92,jcf  fixed writethrough mode cacheFlushRtn.03a,01oct92,jcf  reduced interface to attach to new cacheLib.02l,23sep92,jdi  documentation cleanup, some ansification.02k,23aug92,jcf  changed call to valloc to be indirect.  changed filename.02j,02aug92,jwt  corrected and added "fail" return value for cacheIsOn().02i,31jul92,jwt  converted per buffer function pointers to global; new names.02h,19jul92,jcf  got CPU32 to compile.02g,18jul92,smb  Changed errno.h to errnoLib.h.02f,15jul91,jwt  further refinement of 68K cache library for 5.1:                 freeze -> lock; added address and bytes parameters;                  added cacheMc68kModeSet(); deleted burst routines; cleanup.02e,14jul92,jwt  added missing cacheMc68kFree; cleaned up compiler warnings.02d,13jul92,rdc  added cacheMalloc.02c,03jul92,jwt  first cut at 5.1 cache support; changed name from cacheLib.c.02b,26may92,rrr  the tree shuffle02a,07jan92,jcf  added special 68040 data cache disable routine.		 cleaned up so 68000/68010 don't carry unnecessary luggage.		 obsoleted cacheReset().		 cacheEnable()/cacheDisable() take into account cache state.01f,04oct91,rrr  passed through the ansification filter                  -changed functions to ansi style		  -changed includes to have absolute path from h/		  -fixed #else and #endif		  -changed copyright notice01e,25sep91,yao  added support for CPU32.01d,28aug91,shl  added support for MC68040, added cacheClearPage(),		 updated copyright.01c,28sep90,jcf  documentation.01b,02aug90,jcf  lint.01a,15jul90,jcf  written.*//*DESCRIPTIONThis library contains architecture-specific cache library functions forthe Motorola 68K family instruction and data caches.  The various membersof the 68K family of processors support different cache mechanisms; thus,some operations cannot be performed by certain processors because theylack particular functionalities.  In such cases, the routines in thislibrary return ERROR.  Processor-specific constraints are addressed in themanual entries for routines in this library.  If the caches areunavailable or uncontrollable, the routines return ERROR.  There is nodata cache on the 68020; however, data cache operations return OK.INTERNALThe cache enable and disable processes consist of the following actions,executed by cacheArchEnable() and cacheArchDisable().  To enablea disabled cache, first the cache is fully invalidated.  Then the cache mode (write-through, copy-back, etc.) is configured.  Finally, the cache is turnedon.  Enabling an already enabled cache results in no operation.INTERNALTo disable an enabled cache, first the cache is invalidated.  However, a cacheconfigured in copy-back mode must first have been pushed out to memory.  Onceinvalidated, the cache is turned off.  Disabling an already disabled cacheresults in no operation.For general information about caching, see the manual entry for cacheLib.INCLUDE FILES: cacheLib.hSEE ALSO: cacheLib, vmLibINTERNALThe 68040 has a totally different way of handling its larger caches."burst fill", "freezing", and "clearing" are managed in hardware, or inthe ITT/DTT/PTE entry definitions.  They are NOT direct/simple entries inthe CAAR (which does not exist), or int the CACR (which is now a simpleenable/disable).In addition, the 040 caches are not the simple mechanism used by the020/030: caches may be "non serialized off", "serialized off","write-through", or "copy-back".  And these types may be set individuallybased on decoding an address range through one of four transparanttranslation registers, or through the MMU page table entries (a three-leveltable structure).The 68060 caches are slightly different from the 68040 caches. The inhibitedserialized and non serialized mode was removed and replaced by precise and imprecise mode. But except the names these modes seem to be identical. A four-deep store buffer is added to increase writethrough or imprecise modeperformance. For these modes the store buffer can be enabled or not.A branch cache is also available, linked to the instruction cache to smooththe instruction stream flow thus achieving integer performance level.The frozen cache capability is provided for instruction and data cache.*//* LINTLIBRARY */#include "vxWorks.h"#include "errnoLib.h"#include "cacheLib.h"#include "stdlib.h"#include "private/memPartLibP.h"#include "private/vmLibP.h"#include "private/funcBindP.h"/* forward declarations */LOCAL STATUS	cacheProbe (CACHE_TYPE cache);LOCAL void	cacheSet (CACHE_TYPE cache, int value, int mask);LOCAL BOOL	cacheIsOn (CACHE_TYPE cache);#if	(CPU==MC68060)LOCAL VOID	cacheBranchInv (void);LOCAL void *	cacheArch060DmaMalloc (size_t bytes);#endif	/* (CPU==MC68060) *//********************************************************************************* cacheArchLibInit - initialize the 68K cache library* * This routine initializes the cache library for Motorola MC680x0* processors.  It initializes the function pointers and configures the* caches to the specified cache modes.  Modes should be set before caching* is enabled.  If two complementary flags are set (enable/disable), no* action is taken for any of the input flags.** The caching modes vary for members of the 68K processor family:** .TS* tab(|);* l l l.* 68020: | CACHE_WRITETHROUGH     | (instruction cache only)** 68030: | CACHE_WRITETHROUGH     | *        | CACHE_BURST_ENABLE     |*        | CACHE_BURST_DISABLE    |*        | CACHE_WRITEALLOCATE    | (data cache only)*        | CACHE_NO_WRITEALLOCATE | (data cache only)** 68040: | CACHE_WRITETHROUGH     |*        | CACHE_COPYBACK         | (data cache only)*        | CACHE_INH_SERIAL       | (data cache only)*        | CACHE_INH_NONSERIAL    | (data cache only)*        | CACHE_BURST_ENABLE     | (data cache only)*        | CACHE_NO_WRITEALLOCATE | (data cache only)** 68060: | CACHE_WRITETHROUGH     |*        | CACHE_COPYBACK         | (data cache only)*        | CACHE_INH_PRECISE      | (data cache only)*        | CACHE_INH_IMPRECISE    | (data cache only)*        | CACHE_BURST_ENABLE     | (data cache only)* .TE* * The write-through, copy-back, serial, non-serial, precise and non precise* modes change the state of the data transparent translation register (DTTR0)* CM bits. Only DTTR0 is modified, since it typically maps DRAM space. ** RETURNS: OK.*/STATUS cacheArchLibInit    (    CACHE_MODE	instMode,	/* instruction cache mode */    CACHE_MODE	dataMode	/* data cache mode */    )    {#if ((CPU == MC68020) || (CPU == MC68030) || (CPU == MC68040) || \     (CPU==MC68060) || (CPU == MC68LC040))    cacheLib.enableRtn		= cacheArchEnable;	/* cacheEnable() */    cacheLib.disableRtn		= cacheArchDisable;	/* cacheDisable() */    cacheLib.lockRtn		= cacheArchLock;	/* cacheLock() */    cacheLib.unlockRtn		= cacheArchUnlock;	/* cacheUnlock() */    cacheLib.clearRtn		= cacheArchClear;	/* cacheClear() */    cacheLib.dmaMallocRtn	= (FUNCPTR)cacheArchDmaMalloc;#if	(CPU == MC68060)    if (dataMode & CACHE_SNOOP_ENABLE)	cacheLib.dmaMallocRtn	= (FUNCPTR) cacheArch060DmaMalloc;#endif    cacheLib.dmaFreeRtn		= (FUNCPTR) cacheArchDmaFree;    cacheLib.dmaVirtToPhysRtn	= NULL;    cacheLib.dmaPhysToVirtRtn	= NULL;    cacheLib.textUpdateRtn	= cacheArchTextUpdate;#if ((CPU == MC68020) || (CPU == MC68030))    cacheLib.flushRtn		= NULL;			/* writethrough */    cacheLib.invalidateRtn	= cacheArchClear;	/* cacheFlush() */    cacheLib.pipeFlushRtn	= NULL;#elif ((CPU == MC68040) || (CPU == MC68060) || (CPU == MC68LC040))    cacheLib.flushRtn		= cacheArchClear;	/* cacheFlush() */    cacheLib.invalidateRtn	= cacheArchInvalidate;	/* cacheInvalidate() */    cacheLib.pipeFlushRtn	= (FUNCPTR) cache040WriteBufferFlush;#endif#endif	/* ((CPU==MC68020) || (CPU==MC68030) || (CPU==MC68040) || \	 *  (CPU==MC68060) || (CPU == MC68LC040)) */#if ((CPU == MC68020) || (CPU == MC68030))    /* check for parameter errors */    if (((instMode & CACHE_COPYBACK)) || ((dataMode & CACHE_COPYBACK)) ||	((instMode & (CACHE_SNOOP_ENABLE | CACHE_SNOOP_DISABLE)) != 0) ||	((dataMode & (CACHE_SNOOP_ENABLE | CACHE_SNOOP_DISABLE)) != 0) ||	((instMode & (CACHE_WRITEALLOCATE | CACHE_NO_WRITEALLOCATE)) != 0) ||	((dataMode & CACHE_WRITEALLOCATE)&&(dataMode &CACHE_NO_WRITEALLOCATE))||	((instMode & CACHE_BURST_ENABLE) && (instMode & CACHE_BURST_DISABLE)) ||	((dataMode & CACHE_BURST_ENABLE) && (dataMode & CACHE_BURST_DISABLE)))	return (ERROR);    /* set instruction cache mode attributes */    if (instMode & CACHE_BURST_ENABLE)	cacheSet (INSTRUCTION_CACHE, C_BURST, C_BURST);    if (instMode & CACHE_BURST_DISABLE)	cacheSet (INSTRUCTION_CACHE, 0, C_BURST);    /* set data cache mode attributes */    if (dataMode & CACHE_WRITEALLOCATE)	cacheSet (DATA_CACHE, C_ALLOCATE, C_ALLOCATE);    if (dataMode & CACHE_NO_WRITEALLOCATE) 	cacheSet (DATA_CACHE, 0, C_ALLOCATE);    if (dataMode & CACHE_BURST_ENABLE)	cacheSet (DATA_CACHE, C_BURST, C_BURST);    if (dataMode & CACHE_BURST_DISABLE)	cacheSet (DATA_CACHE, 0, C_BURST);    cacheSet (INSTRUCTION_CACHE, 0, C_ENABLE);	/* turn off instruction cache */    cacheSet (DATA_CACHE, 0, C_ENABLE);		/* turn off data cache */    cacheSet (INSTRUCTION_CACHE, C_CLR, C_CLR);	/* invalidate I-cache entries */    cacheSet (DATA_CACHE, C_CLR, C_CLR);	/* invalidate D-cache entries */#elif ((CPU == MC68040) || (CPU == MC68060) || (CPU == MC68LC040))    /* check for parameter errors */#if 	(CPU == MC68040 || CPU == MC68LC040)    if (((instMode & ~CACHE_WRITETHROUGH) != 0) ||        ((dataMode & CACHE_COPYBACK) && (dataMode & CACHE_WRITETHROUGH)) ||	((dataMode & CACHE_INH_SERIAL) && (dataMode & CACHE_INH_NONSERIAL)) ||	((dataMode & CACHE_SNOOP_ENABLE) && (dataMode & CACHE_SNOOP_DISABLE)) ||	((dataMode & CACHE_WRITEALLOCATE)) ||	((dataMode & CACHE_BURST_DISABLE)))#elif	(CPU == MC68060)    if (((instMode & ~(CACHE_WRITETHROUGH)) !=0) ||	((dataMode & CACHE_COPYBACK) && (dataMode & CACHE_WRITETHROUGH)) ||	((dataMode & CACHE_INH_PRECISE) && (dataMode & CACHE_INH_IMPRECISE)) ||	((dataMode & CACHE_SNOOP_ENABLE) && (dataMode & CACHE_SNOOP_DISABLE)) ||	((dataMode & CACHE_WRITEALLOCATE)) ||	((dataMode & CACHE_NO_WRITEALLOCATE)) ||	((dataMode & CACHE_BURST_DISABLE)))#endif 	return (ERROR);    if (dataMode & CACHE_WRITETHROUGH) 	{	cacheDTTR0ModeSet (C_TTR_WRITETHROUGH);	cacheLib.flushRtn = cacheArchClear;	/* mmu may turn on copy back */	}    else if (dataMode & CACHE_COPYBACK)	{	cacheDTTR0ModeSet (C_TTR_COPYBACK);	cacheLib.flushRtn = cacheArchClear;	}    else#if	(CPU == MC68040 || CPU == MC68LC040)	if (dataMode & CACHE_INH_SERIAL)	{	cacheDTTR0ModeSet (C_TTR_SERIALIZED);	cacheLib.flushRtn = NULL;	}    else if (dataMode & CACHE_INH_NONSERIAL)	{	cacheDTTR0ModeSet (C_TTR_NOT_SERIAL);	cacheLib.flushRtn = (FUNCPTR) cache040WriteBufferFlush;	}#elif	(CPU == MC68060)	if (dataMode & CACHE_INH_PRECISE)	{	cacheDTTR0ModeSet (C_TTR_PRECISE);	cacheLib.flushRtn = NULL;	}    else if (dataMode & CACHE_INH_IMPRECISE)	{	cacheDTTR0ModeSet (C_TTR_NOT_PRECISE);	cacheLib.flushRtn = (FUNCPTR) cache040WriteBufferFlush;	}#endif    cacheSet (INSTRUCTION_CACHE, 0, C_ENABLE);	/* turn off instruction cache */    cacheSet (DATA_CACHE, 0, C_ENABLE);		/* turn off data cache */    cacheCINV (INSTRUCTION_CACHE,CACHE_ALL,0x0);/* invalidate I-cache entries */    cacheCINV (DATA_CACHE, CACHE_ALL, 0x0);	/* invalidate D-cache entries */#endif	/* (CPU == MC68040 || CPU == MC68060 || CPU == MC68LC040) */    cacheDataMode	= dataMode;		/* save dataMode for enable */    cacheDataEnabled	= FALSE;		/* d-cache is currently off */    cacheMmuAvailable	= FALSE;		/* no mmu yet */    return (OK);    }/* No further cache support required MC68000, MC68010, or CPU32 */#if ((CPU==MC68020) || (CPU==MC68030) || (CPU==MC68040) || \     (CPU==MC68060) || (CPU==MC68LC040))/********************************************************************************* cacheArchEnable - enable a 68K cache** This routine enables the specified 68K instruction or data cache.** RETURNS: OK, or ERROR if the cache type is invalid or the cache control* is not supported.** NOMANUAL*/STATUS cacheArchEnable    (    CACHE_TYPE	cache		/* cache to enable */    )    {    if (cacheProbe (cache) != OK)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
51精品国自产在线| 成人丝袜高跟foot| 精品国产露脸精彩对白| 成人午夜精品在线| 一二三四区精品视频| 精品免费一区二区三区| 不卡一二三区首页| 日韩精品久久理论片| 国产三级精品三级| 欧美日韩日本视频| 国产成人午夜99999| 亚洲一区成人在线| 久久久久亚洲蜜桃| 日韩欧美综合在线| 欧美肥妇bbw| 在线免费观看日本欧美| 波多野结衣的一区二区三区| 国产一区二区中文字幕| 日韩在线观看一区二区| 一区二区三区加勒比av| 最新中文字幕一区二区三区| 久久精品视频免费| 欧美tickling网站挠脚心| 欧美日韩国产小视频| 99精品一区二区| 成人av资源在线观看| 国产成人在线视频网站| 国产一区二区女| 日韩和欧美一区二区三区| 亚洲一区二区高清| 一片黄亚洲嫩模| 亚洲精品高清在线| 亚洲精品高清在线| 亚洲日本欧美天堂| 亚洲乱码精品一二三四区日韩在线 | 婷婷综合五月天| 亚洲乱码国产乱码精品精的特点| 中文字幕在线观看不卡| 国产欧美一区视频| 国产日韩欧美制服另类| 国产精品免费视频一区| 国产精品高潮久久久久无| 国产精品美女视频| 亚洲日本欧美天堂| 一区二区三区国产| 丝袜美腿成人在线| 日韩av高清在线观看| 久色婷婷小香蕉久久| 国产在线不卡视频| 成人视屏免费看| 97se亚洲国产综合自在线不卡| 91日韩精品一区| 色猫猫国产区一区二在线视频| 欧美在线观看一二区| 欧美午夜影院一区| 91精品国产色综合久久ai换脸| 日韩欧美一区二区三区在线| 精品国产乱码久久久久久图片| 久久无码av三级| 18欧美乱大交hd1984| 亚洲一区在线观看免费观看电影高清| 一区二区三区在线观看国产| 日韩高清在线不卡| 国精产品一区一区三区mba桃花| 成人动漫一区二区| 在线亚洲一区二区| 日韩午夜av一区| 国产精品灌醉下药二区| 日本亚洲三级在线| 国产成人免费xxxxxxxx| 91福利精品视频| 精品国产免费人成在线观看| 国产精品福利av| 天天亚洲美女在线视频| 国产精品一区二区久久精品爱涩| 91丨porny丨户外露出| 欧美夫妻性生活| 国产欧美一区二区在线| 亚洲高清三级视频| 国产凹凸在线观看一区二区| 欧美日韩国产一二三| 久久久99免费| 性久久久久久久久久久久 | 色婷婷综合中文久久一本| 欧美三级在线视频| 国产视频一区在线播放| 亚洲午夜激情av| 国产成人精品免费视频网站| 欧美日韩日日摸| 国产精品理论在线观看| 欧美96一区二区免费视频| 国产东北露脸精品视频| 欧美一区二区三区系列电影| 综合中文字幕亚洲| 精品一区二区三区久久| 欧美日韩综合在线免费观看| 国产日韩精品一区二区浪潮av| 污片在线观看一区二区| 成人免费高清视频| 精品国产一区久久| 午夜精品123| 99re热这里只有精品免费视频| 欧美大片在线观看一区二区| 亚洲精品久久嫩草网站秘色| 国产精品中文字幕日韩精品| 日韩一区国产二区欧美三区| 亚洲国产精品一区二区www| 成人av免费在线观看| 欧美变态凌虐bdsm| 丝袜美腿亚洲色图| 欧美色成人综合| 一区二区欧美国产| 91女神在线视频| 中文字幕国产精品一区二区| 久久精品国产成人一区二区三区| 在线成人av影院| 亚洲国产视频一区二区| 在线视频欧美精品| 亚洲日本一区二区| 91毛片在线观看| 中文字幕制服丝袜一区二区三区| 国产成人免费视频网站高清观看视频| 日韩三级精品电影久久久| 日韩国产欧美三级| 欧美日韩精品欧美日韩精品一综合| 亚洲欧美韩国综合色| 91香蕉视频黄| 亚洲免费资源在线播放| 一本久道久久综合中文字幕| 中文字幕日本不卡| 99国产精品国产精品毛片| 亚洲欧洲精品一区二区三区不卡 | 国产综合成人久久大片91| 欧美一区二区三区视频在线观看| 日日夜夜一区二区| 欧美日精品一区视频| 天天综合网天天综合色| 欧美巨大另类极品videosbest| 日韩在线播放一区二区| 91精品国产一区二区三区蜜臀 | 粉嫩aⅴ一区二区三区四区五区| 久久久精品欧美丰满| 另类欧美日韩国产在线| 久久青草国产手机看片福利盒子| 国产精品自拍av| 一区精品在线播放| 一本色道综合亚洲| 亚洲国产你懂的| 日韩一级二级三级精品视频| 国产在线视频不卡二| 国产精品天干天干在线综合| 成人av电影在线播放| 亚洲一区二区在线播放相泽| 日韩一区二区三区电影| 国产精品1024| 亚洲色图在线播放| 欧美日韩国产色站一区二区三区| 毛片不卡一区二区| 国产免费久久精品| 在线观看精品一区| 日精品一区二区| 久久久久高清精品| 色综合久久久久久久| 日韩精品乱码免费| 中文字幕乱码日本亚洲一区二区 | |精品福利一区二区三区| 91免费观看视频| 日本亚洲电影天堂| 亚洲国产成人在线| 欧美乱妇23p| 国产乱码一区二区三区| 一区二区日韩av| 久久日韩粉嫩一区二区三区| 91蜜桃视频在线| 九九精品视频在线看| 综合久久久久久久| 日韩免费观看高清完整版在线观看| 粉嫩蜜臀av国产精品网站| 五月天一区二区| 国产欧美视频一区二区| 欧美另类高清zo欧美| 丁香啪啪综合成人亚洲小说 | 一区二区在线观看视频| 欧美sm极限捆绑bd| 欧美性猛片xxxx免费看久爱| 国精产品一区一区三区mba桃花| 日韩一区欧美一区| 欧美电视剧免费观看| 欧美专区日韩专区| 粉嫩av亚洲一区二区图片| 日本一区中文字幕| 亚洲免费伊人电影| 久久久久久久久久久久电影| 欧美日韩视频在线观看一区二区三区 | 日精品一区二区三区| 欧美韩国日本综合| 精品国产免费人成在线观看| 欧美性xxxxxxxx| 波多野洁衣一区| 国产精品99久久久久久久女警|