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

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

?? cachearchlib.c

?? vxworks的源代碼
?? 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)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美女偷拍久久| 精品中文字幕一区二区小辣椒| 欧美麻豆精品久久久久久| 国产91丝袜在线18| 国产91精品一区二区麻豆网站 | 天堂成人国产精品一区| 一区二区在线观看不卡| 亚洲人吸女人奶水| 亚洲女与黑人做爰| 亚洲一区二区三区三| 亚洲图片有声小说| 日韩中文字幕1| 秋霞午夜av一区二区三区| 91精品欧美综合在线观看最新| 日本韩国视频一区二区| 在线国产亚洲欧美| 91麻豆精品国产自产在线 | 日韩精品五月天| 一区二区成人在线观看| 亚洲日本在线天堂| 一区二区三区精品视频| 日韩极品在线观看| 国产在线播放一区三区四| 欧美国产精品一区| 综合久久久久综合| 亚洲国产精品久久不卡毛片| 全国精品久久少妇| 高潮精品一区videoshd| 91蜜桃传媒精品久久久一区二区| 欧美日韩三级一区二区| 欧美一区二区精品| 国产日产精品一区| 亚洲成人综合在线| 狠狠色狠狠色综合系列| 91色九色蝌蚪| 精品国产一区二区亚洲人成毛片| 日本一区二区三区视频视频| 亚洲午夜久久久久久久久电影网| 精品国产欧美一区二区| 国产精品美女久久久久av爽李琼| 一区二区三区四区不卡视频| 成人综合婷婷国产精品久久| 免费精品视频在线| 成人蜜臀av电影| 777午夜精品免费视频| 国产精品你懂的在线欣赏| 婷婷激情综合网| 成人精品一区二区三区中文字幕| 欧美福利电影网| 国产精品久线观看视频| 久久成人免费电影| 日本乱码高清不卡字幕| 久久久99精品久久| 日韩av中文在线观看| 亚洲国产日韩a在线播放性色| 日产国产高清一区二区三区| 男男gaygay亚洲| 99久久精品国产导航| 精品成人佐山爱一区二区| 亚洲二区在线视频| 91麻豆国产香蕉久久精品| 亚洲国产高清在线观看视频| 免费高清成人在线| 欧美日本免费一区二区三区| 亚洲日本青草视频在线怡红院| 国产在线国偷精品产拍免费yy| 欧美精品久久久久久久多人混战 | 亚洲精品乱码久久久久久日本蜜臀| 久久精品免费观看| 88在线观看91蜜桃国自产| 一区二区三区蜜桃网| 91久久一区二区| 一区免费观看视频| 丁香六月久久综合狠狠色| 26uuu国产电影一区二区| 蜜臀av性久久久久av蜜臀妖精| 欧美色倩网站大全免费| 亚洲男人天堂av| 99热这里都是精品| 中文一区二区完整视频在线观看| 久久久久99精品国产片| 久久综合九色欧美综合狠狠| 日韩在线一区二区三区| 制服丝袜亚洲网站| 奇米在线7777在线精品 | 7777精品伊人久久久大香线蕉最新版| 另类综合日韩欧美亚洲| 久久99最新地址| 欧美精品一区二区三区久久久| 欧美a一区二区| 日韩欧美中文一区二区| 精品亚洲国产成人av制服丝袜| 日韩精品专区在线影院观看| 美美哒免费高清在线观看视频一区二区| 欧美精品自拍偷拍动漫精品| 免费的成人av| 国产精品传媒入口麻豆| 欧美影片第一页| 日韩成人免费电影| 欧美国产日韩在线观看| 91啪在线观看| 日韩一区精品字幕| 2020国产精品久久精品美国| 成人黄色在线网站| 欧美色精品在线视频| 日本vs亚洲vs韩国一区三区| 2023国产一二三区日本精品2022| 国产成人在线网站| 亚洲午夜免费视频| 久久免费看少妇高潮| 93久久精品日日躁夜夜躁欧美| 五月婷婷欧美视频| 日韩一区二区三区视频在线 | 高清不卡在线观看av| 亚洲视频一区二区在线| 91精品国产综合久久久久久久久久| 国产一区高清在线| 一区二区三区在线影院| 精品国产电影一区二区| 色综合色综合色综合| 蜜臀久久99精品久久久久宅男| 中文字幕一区av| 欧美大胆人体bbbb| 欧美性猛交一区二区三区精品 | 国产亚洲综合性久久久影院| 欧洲一区二区三区免费视频| 激情深爱一区二区| 91网站在线观看视频| 日韩在线一区二区| 久久99精品一区二区三区三区| 精品日韩欧美在线| 国产精品成人一区二区艾草| 精品国产一区二区三区不卡| 亚洲一区二区三区免费视频| 欧美一区二区二区| 国产激情精品久久久第一区二区| 亚洲欧美激情一区二区| 91精品国产综合久久久蜜臀图片| 精品亚洲国内自在自线福利| 在线区一区二视频| 国产美女娇喘av呻吟久久| 亚洲综合999| 精品国产伦一区二区三区免费| 日韩专区在线视频| 日韩精品专区在线影院重磅| 国产成人啪免费观看软件| 玉足女爽爽91| 亚洲视频在线观看三级| 日韩一区二区在线观看视频 | 色狠狠一区二区| 亚洲综合视频在线| 日韩欧美在线网站| 极品尤物av久久免费看| 欧美一级二级三级乱码| 成人深夜视频在线观看| 免费的成人av| 一区二区三区波多野结衣在线观看| 在线亚洲一区二区| 一区二区在线观看免费| 亚洲欧洲av色图| 日韩精品最新网址| 日韩欧美一区在线观看| 日本道色综合久久| 国产欧美日韩卡一| 欧美日韩大陆一区二区| 91麻豆精品一区二区三区| 国产三级一区二区| 亚洲综合无码一区二区| 亚洲一区二区四区蜜桃| 日本一道高清亚洲日美韩| 亚洲地区一二三色| 成人免费三级在线| 欧美亚洲国产bt| 日韩亚洲欧美一区二区三区| 成人午夜av在线| 国产麻豆欧美日韩一区| 国产露脸91国语对白| 精品伊人久久久久7777人| 日韩一二三四区| 91浏览器在线视频| 视频一区中文字幕| 久草精品在线观看| 成人精品国产免费网站| av男人天堂一区| 91成人网在线| 精品入口麻豆88视频| 国产成人亚洲综合a∨婷婷| 夜夜嗨av一区二区三区网页| 日韩极品在线观看| 国产成人精品免费| 91久久精品网| 精品国产1区2区3区| 中文字幕巨乱亚洲| 日韩电影在线一区二区三区| 丁香婷婷综合网| 欧美日韩电影在线| 国产精品美女一区二区| 免费成人你懂的| 91在线播放网址| 久久午夜色播影院免费高清|