亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产精品久久久久久久久果冻传媒| 丝袜诱惑亚洲看片| 久久只精品国产| 日韩欧美卡一卡二| 欧美大片国产精品| 久久久久久久久岛国免费| 久久先锋影音av| 久久久久综合网| 中文字幕中文字幕一区| 综合激情成人伊人| 一区二区三区中文字幕电影| 亚洲一二三区在线观看| 亚洲高清免费观看 | 日韩影院在线观看| 天天亚洲美女在线视频| 蜜臀久久99精品久久久画质超高清 | 国产成人午夜99999| 高清久久久久久| 色综合咪咪久久| 五月天婷婷综合| 717成人午夜免费福利电影| 欧美日本一区二区三区| 91精品欧美久久久久久动漫 | 在线亚洲欧美专区二区| 在线观看日韩一区| 666欧美在线视频| 在线播放日韩导航| 日韩视频免费观看高清在线视频| 日韩一级黄色片| 久久久九九九九| 亚洲日本青草视频在线怡红院| 亚洲综合图片区| 日韩不卡一区二区三区| 国模一区二区三区白浆| 99久久99久久精品国产片果冻| 色狠狠av一区二区三区| 6080yy午夜一二三区久久| 精品福利av导航| 国产精品国产三级国产a| 亚洲成av人**亚洲成av**| 久久激五月天综合精品| 成人app网站| 五月天精品一区二区三区| 亚洲欧美日韩系列| 五月婷婷色综合| 国产91露脸合集magnet| 欧美在线一区二区| 欧美一级日韩不卡播放免费| 中文字幕av一区 二区| 香蕉成人伊视频在线观看| 国产精品一区二区免费不卡| 欧美三区免费完整视频在线观看| www国产成人免费观看视频 深夜成人网| 成人欧美一区二区三区1314| 免费人成在线不卡| 99国产精品99久久久久久| 日韩一级免费观看| 综合欧美一区二区三区| 国产麻豆精品在线| 欧美精品视频www在线观看| 1000部国产精品成人观看| 久久精品国产成人一区二区三区| 91视频在线看| 久久理论电影网| 日本视频中文字幕一区二区三区 | 国产精品色哟哟网站| 视频一区在线视频| 99久免费精品视频在线观看| 欧美成人欧美edvon| 亚洲午夜激情网站| 99r国产精品| 久久精品人人爽人人爽| 奇米色一区二区| 欧美日韩在线综合| 亚洲乱码一区二区三区在线观看| 久久99精品国产麻豆婷婷| 欧美色大人视频| 亚洲精品欧美综合四区| 成人手机电影网| 久久久亚洲精品石原莉奈| 美女任你摸久久| 欧美日韩国产欧美日美国产精品| 国产精品第一页第二页第三页| 久久99精品久久只有精品| 在线电影院国产精品| 一区二区三区中文免费| 99视频有精品| 中文字幕亚洲成人| 成人在线视频一区| 久久精品一区四区| 国产一区日韩二区欧美三区| 日韩精品中午字幕| 久久精品国产精品亚洲综合| 日韩写真欧美这视频| 免费成人深夜小野草| 日韩一区二区三区三四区视频在线观看 | 日韩一级高清毛片| 亚洲成人1区2区| 欧美网站大全在线观看| 亚洲最大成人综合| 在线视频观看一区| 一区二区三区日韩精品视频| 色天天综合色天天久久| 一区二区三区资源| 精品婷婷伊人一区三区三| 亚洲成人黄色影院| 91.麻豆视频| 蜜桃在线一区二区三区| 精品欧美一区二区在线观看| 激情五月激情综合网| 久久品道一品道久久精品| 国产剧情一区二区三区| 中文字幕第一区| 91尤物视频在线观看| 一区二区三区毛片| 欧美日韩aaaaaa| 美女爽到高潮91| 欧美极品aⅴ影院| 99精品视频一区二区三区| 亚洲自拍偷拍麻豆| 欧美一区二区三区在线看 | 欧美一区日韩一区| 经典一区二区三区| 国产欧美精品一区aⅴ影院| 94色蜜桃网一区二区三区| 亚洲高清免费观看 | 国产一区二区三区在线看麻豆| 日韩欧美一级片| 韩国在线一区二区| 国产精品久久久久久久午夜片| www..com久久爱| 亚洲福利视频一区二区| 日韩欧美一区二区三区在线| 国产精品一品二品| 悠悠色在线精品| 日韩视频一区在线观看| 国产精品 欧美精品| 中文字幕视频一区| 日韩精品亚洲一区二区三区免费| 日韩视频免费直播| 国产成人激情av| 一区二区不卡在线视频 午夜欧美不卡在 | 午夜精品123| 久久一区二区三区国产精品| 99久久综合狠狠综合久久| 亚洲超丰满肉感bbw| 久久一区二区三区国产精品| 亚洲精品国产高清久久伦理二区| 成人精品免费看| 亚洲主播在线播放| 制服.丝袜.亚洲.另类.中文| 亚洲在线视频免费观看| 欧美日韩在线精品一区二区三区激情| 亚洲精品乱码久久久久久| 在线看国产一区| 午夜av电影一区| 欧美va在线播放| 国产91精品免费| 亚洲精品日韩综合观看成人91| 亚洲另类春色国产| 51精品秘密在线观看| 国内精品在线播放| 国产精品久久99| 欧美色电影在线| 久久99久久99| 亚洲欧美一区二区三区久本道91 | 亚洲成人1区2区| 欧美成人激情免费网| 成人av在线资源网| 亚洲国产aⅴ天堂久久| 欧美精品一区二区不卡| 成人精品免费看| 日韩精品一二三| 国产喷白浆一区二区三区| 在线观看一区日韩| 中文字幕一区二区三区乱码在线| 国产在线日韩欧美| 中文字幕av不卡| 欧美午夜视频网站| 麻豆精品视频在线观看视频| 欧美国产禁国产网站cc| 欧美日韩精品欧美日韩精品一| 日本亚洲天堂网| 亚洲私人黄色宅男| 精品粉嫩aⅴ一区二区三区四区| 不卡的av中国片| 日韩一级完整毛片| 99久久国产综合精品色伊| 蜜桃视频在线一区| 一区二区三区**美女毛片| 久久综合狠狠综合久久激情| 在线观看亚洲专区| 粉嫩蜜臀av国产精品网站| 婷婷成人综合网| 亚洲日穴在线视频| 欧美精品一区二区精品网| 欧美日韩视频专区在线播放| 不卡电影一区二区三区| 精品一区二区三区久久久| 亚洲图片自拍偷拍|