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

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

?? cachesb1lib.c

?? vxworks的源代碼
?? C
字號:
/* cacheSb1Lib.c: Cache library for Broadcom SB-1 Core (L1) Caches *//* Copyright 2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/********************************************************************** *  Copyright 2000,2001*  Broadcom Corporation. All rights reserved.* *  This software is furnished under license to Wind River Systems, Inc.*  and may be used only in accordance with the terms and conditions *  of this license.  No title or ownership is transferred hereby.********************************************************************* *//* * This file has been developed or significantly modified by the * MIPS Center of Excellence Dedicated Engineering Staff. * This notice is as per the MIPS Center of Excellence Master Partner * Agreement, do not remove this notice without checking first with * WR/Platforms MIPS Center of Excellence engineering management. *//*modification history--------------------01d,17may02,pes  Before aborting cacheTextUpdate() on null pointer, check for                 ENTIRE_CACHE.01c,08may02,pes  Add protection against null pointers, zero counts, and                 requests involving kseg1 in cacheXXXTextUpdate().01b,04dec01,agf  add Broadcom copyright notice01a,14nov01,agf  created*//*DESCRIPTIONThis library contains architecture-specific cache library functions forthe Broadcom Sb1 architecture.  The Sb1 utilizes a variable-sizeinstruction and data cache that operates in write-back (only) mode.  Cacheline size also varies.For general information about caching, see the manual entry for cacheLib.INCLUDE FILES: cacheLib.hSEE ALSO: cacheLib*/#include "vxWorks.h"#include "cacheLib.h"#include "errnoLib.h"#include "string.h"/* constants */#define L1CACHE_LINESIZE	32/* forward declarations */LOCAL STATUS cacheSb1Clear(CACHE_TYPE cache, void *pVirtAdrs, size_t bytes);LOCAL STATUS cacheSb1TextUpdate(void *address, size_t bytes);LOCAL STATUS cacheSb1PipeFlush(void);LOCAL void * cacheSb1VirtToPhys(void *address);LOCAL void * cacheSb1PhysToVirt(void *address);/* imports */void cacheSb1DCFlushInvalidateAll(void);void cacheSb1DCFlushInvalidateLines(unsigned long addr, unsigned int lines);void cacheSb1ICInvalidateAll(void);void cacheSb1ICInvalidateLines(unsigned int addr, unsigned int lines);void sysWbFlush(void);/* globals */IMPORT size_t cacheSb1ICacheSize;IMPORT size_t cacheSb1DCacheSize;IMPORT size_t cacheSb1ICacheLineSize;IMPORT size_t cacheSb1DCacheLineSize;/**************************************************************************** cacheSb1LibInit - initialize the Sb1 cache library** This routine initializes the function pointers for the Sb1 cache* library.  The board support package can select this cache library* by assigning the function pointer <sysCacheLibInit> to* cacheSb1LibInit().** RETURNS: OK.*/STATUS cacheSb1LibInit    (    CACHE_MODE  instMode,    CACHE_MODE  dataMode,    UINT32      iCacheSize,    UINT32      iCacheLineSize,    UINT32      dCacheSize,    UINT32      dCacheLineSize    )    {    /* assembly routines assume 32 byte line sizes */    if ( (iCacheLineSize != L1CACHE_LINESIZE) ||         (dCacheLineSize != L1CACHE_LINESIZE) )	{        errnoSet(EINVAL);        return (ERROR);	}    cacheSb1ICacheSize = iCacheSize;    cacheSb1DCacheSize = dCacheSize;    cacheSb1ICacheLineSize = iCacheLineSize;    cacheSb1DCacheLineSize = dCacheLineSize;    /*     * Assumes that the cache is already reset and that K0 is set to     * one of the Coherent modes.     */    cacheLib.enableRtn = NULL;    cacheLib.disableRtn = NULL;    cacheLib.lockRtn = NULL;    cacheLib.unlockRtn = NULL;    cacheLib.flushRtn = NULL;                     /* sb1 caches are coherent */    cacheLib.pipeFlushRtn = cacheSb1PipeFlush;    cacheLib.textUpdateRtn = cacheSb1TextUpdate;    cacheLib.invalidateRtn = NULL;                /* sb1 caches are coherent */    cacheLib.clearRtn = cacheSb1Clear;    cacheLib.dmaMallocRtn = NULL;    cacheLib.dmaFreeRtn = NULL;    cacheLib.dmaVirtToPhysRtn = (FUNCPTR) cacheSb1VirtToPhys;    cacheLib.dmaPhysToVirtRtn = (FUNCPTR) cacheSb1PhysToVirt;    cacheDataMode = dataMode;    cacheDataEnabled = TRUE;    cacheMmuAvailable = TRUE;    cacheFuncsSet();    return (OK);    }/**************************************************************************** cacheSb1Clear - clear all or some entries in a cache** This routine clears all or some of the entries in the* specified cache.** RETURNS: OK, or ERROR if the cache type is invalid or the cache control* is not supported.*/LOCAL STATUS cacheSb1Clear    (    CACHE_TYPE cache,     void       *pVirtAdrs,     size_t     bytes    )    {	unsigned int start, afterend;	if (IS_KSEG1(pVirtAdrs) || bytes == 0)		return(OK);	switch (cache) 	   {	   case DATA_CACHE:		/* XXX cutoff based on cache size? */		if (bytes == ENTIRE_CACHE)		    cacheSb1DCFlushInvalidateAll();		else 		    {		    /* FlushInvalidate routine always assumes 32 byte line sizes */		    start = ((unsigned long)pVirtAdrs) & ~31;		    afterend =			    (((unsigned long)pVirtAdrs + bytes - 1) | 31) + 1;		    cacheSb1DCFlushInvalidateLines(start,                                                    (afterend - start) / 32);		    }		break;	   case INSTRUCTION_CACHE:		/* XXX cutoff based on cache size? */		if (bytes == ENTIRE_CACHE)			cacheSb1ICInvalidateAll();		else		    {		    /* Invalidate routine always assumes 32 byte line sizes */		    start = ((unsigned long)pVirtAdrs) & ~31;		    afterend =			    (((unsigned long)pVirtAdrs + bytes - 1) | 31) + 1;		    cacheSb1ICInvalidateLines(start,		                              (afterend - start) / 32);		}		break;	   default:		errno = S_cacheLib_INVALID_CACHE;		return (ERROR);		break;	   }    return (OK);    }/**************************************************************************** cacheSb1VirtToPhys - virtual-to-physical address translation** This routine may be attached to the CACHE_DRV structure virtToPhysRtn* function pointer by cacheSb1Malloc().  This implies that the virtual* memory library is not installed, and that the "cache-safe" buffer has* been created through the use of the Sb1 K1 segment.** NOMANUAL*/LOCAL void * cacheSb1VirtToPhys    (    void * address                      /* Virtual address */    )    {    return ((void *) K1_TO_PHYS(address));    }/**************************************************************************** cacheSb1PhysToVirt - physical-to-virtual address translation** This routine may be attached to the CACHE_DRV structure physToVirtRtn* function pointer by cacheSb1Malloc().  This implies that the virtual* memory library is not installed, and that the "cache-safe" buffer has* been created through the use of the Sb1 K1 segment.** NOMANUAL*/LOCAL void * cacheSb1PhysToVirt    (    void * address                      /* Physical address */    )    {    return ((void *) PHYS_TO_K1(address));    }/**************************************************************************** cacheSb1TextUpdate - invalidate updated text section** This routine invalidates the specified text section so that* the correct updated text is executed.** NOMANUAL*/LOCAL STATUS cacheSb1TextUpdate    (    void * address,    size_t bytes    )    {    if ((bytes != ENTIRE_CACHE) &&	((address == NULL) || (bytes == 0) || IS_KSEG1(address)))	return (OK);    if (cacheSb1Clear(DATA_CACHE, address, bytes) != OK)	return (ERROR);    sysWbFlush();    return (cacheSb1Clear(INSTRUCTION_CACHE, address, bytes));    }/**************************************************************************** cacheSb1PipeFlush - flush Sb1 write buffers to memory** This routine forces the processor output buffers to write their contents* to RAM.  A cache flush may have forced its data into the write buffers,* then the buffers need to be flushed to RAM to maintain coherency.* It simply calls the sysWbFlush routine from the BSP.** RETURNS: OK.** NOMANUAL*/STATUS cacheSb1PipeFlush    (    void    )    {    sysWbFlush();    return (OK);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久一区二区三区四区| 欧美挠脚心视频网站| 国产在线播精品第三| 午夜欧美2019年伦理| 亚洲成人一区在线| 免费在线欧美视频| 蜜臀久久99精品久久久画质超高清| 亚洲不卡一区二区三区| 亚洲成人av福利| 久久精品国产**网站演员| 国产一区亚洲一区| a亚洲天堂av| 欧美久久久久免费| 亚洲精品一区二区精华| 国产欧美视频一区二区三区| 国产精品国产a级| 亚洲免费观看在线视频| 亚洲va国产天堂va久久en| 麻豆免费看一区二区三区| 国产精品一线二线三线| 一本一道波多野结衣一区二区 | 精品伦理精品一区| 亚洲精品在线免费观看视频| 国产人成亚洲第一网站在线播放 | 91久久奴性调教| 在线观看91av| 中文字幕亚洲成人| 石原莉奈在线亚洲三区| 国产尤物一区二区| 日本久久电影网| 久久久久国产精品麻豆| 亚洲一区二区在线免费看| 精品在线观看免费| 色哟哟一区二区在线观看| 欧美tickling网站挠脚心| 国产精品成人一区二区艾草| 日韩精品一区第一页| 北条麻妃国产九九精品视频| 9191成人精品久久| 中文字幕综合网| 久久精品国产99国产精品| 色琪琪一区二区三区亚洲区| 久久综合中文字幕| 丝袜美腿亚洲一区| 97久久精品人人澡人人爽| 精品美女一区二区三区| 亚洲成av人片在线| 国产69精品久久99不卡| 日韩一本二本av| 亚洲第一福利一区| 一本色道**综合亚洲精品蜜桃冫| 精品国产麻豆免费人成网站| 午夜精品久久久久久久| 99精品国产热久久91蜜凸| 久久久久久电影| 麻豆一区二区在线| 日韩欧美自拍偷拍| 蜜臀va亚洲va欧美va天堂| 欧美日韩综合不卡| 一区二区在线免费观看| thepron国产精品| 国产目拍亚洲精品99久久精品| 麻豆中文一区二区| 欧美电影免费观看高清完整版在线 | 日韩精品一区二区三区在线播放| 亚洲一区视频在线| 欧美亚洲国产一卡| 亚洲国产aⅴ天堂久久| 日本精品裸体写真集在线观看| 国产精品不卡视频| 91蝌蚪国产九色| 亚洲欧美一区二区久久 | 欧美日韩一区在线观看| 国产精品久久久久久久久图文区| 国产成人在线色| 国产亚洲成aⅴ人片在线观看| 黄色成人免费在线| 国产亚洲精久久久久久| 国产成人午夜高潮毛片| 日韩美女视频一区二区 | 日韩一级精品视频在线观看| 美腿丝袜亚洲一区| 久久久久97国产精华液好用吗| 国产精品一区二区在线观看网站| 国产日产欧产精品推荐色 | 欧美成人乱码一区二区三区| 久久国产麻豆精品| 国产精品午夜在线观看| 日本精品裸体写真集在线观看| 伊人婷婷欧美激情| 日韩一区二区三区高清免费看看| 精品一区二区三区久久久| 国产精品污网站| 欧美日韩免费在线视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久久久久久电影| 在线视频亚洲一区| 日本强好片久久久久久aaa| 久久久精品日韩欧美| av一区二区三区四区| 婷婷激情综合网| 欧美激情综合五月色丁香| 在线免费av一区| 久久国产免费看| 亚洲欧美日韩一区二区 | 亚洲资源在线观看| 久久综合狠狠综合久久综合88| 成人综合婷婷国产精品久久免费| 亚洲欧美国产77777| 亚洲精品一区二区三区四区高清| 99国产精品久久久| 精品一区二区三区免费| 亚洲男人的天堂在线观看| 欧美www视频| 欧美最猛性xxxxx直播| 国产综合色精品一区二区三区| 亚洲色欲色欲www| 精品久久久久久久久久久久包黑料| 国产成人av影院| 久久精品国产一区二区| 一区二区在线电影| 国产精品午夜免费| 精品国精品国产| 欧美精选一区二区| 在线观看区一区二| a级精品国产片在线观看| 老鸭窝一区二区久久精品| 亚洲国产精品天堂| 亚洲欧美日韩国产手机在线| 国产日韩高清在线| 久久久另类综合| 日韩久久免费av| 日韩一级欧美一级| 337p亚洲精品色噜噜狠狠| 欧美熟乱第一页| 日本韩国视频一区二区| 91欧美一区二区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产精品色在线观看| 日韩欧美另类在线| 欧美一区二区三区视频在线观看| av成人免费在线观看| 成人性视频网站| 国产盗摄一区二区| 精彩视频一区二区| 国精产品一区一区三区mba桃花| 视频在线观看91| 日韩和欧美的一区| 麻豆91在线观看| 麻豆国产精品视频| 久久66热偷产精品| 国产一区日韩二区欧美三区| 韩国成人福利片在线播放| 麻豆精品一二三| 国产一区二区三区四区五区入口| 麻豆国产欧美日韩综合精品二区| 日韩精品亚洲一区二区三区免费| 日韩精品国产欧美| 久久精品av麻豆的观看方式| 国产在线播放一区二区三区| 春色校园综合激情亚洲| 丰满少妇在线播放bd日韩电影| 99在线精品免费| 欧美日韩中文字幕一区二区| 日韩一区二区精品在线观看| 2019国产精品| 亚洲色图视频免费播放| 天天操天天色综合| 久久国内精品自在自线400部| 国产白丝网站精品污在线入口| 成人高清免费观看| 欧美精品少妇一区二区三区| 精品国产在天天线2019| 国产精品国产a| 丝袜美腿亚洲色图| 成人精品一区二区三区四区| 色婷婷av一区二区三区之一色屋| 欧美一区二区在线看| 国产精品视频一二三区| 亚洲国产毛片aaaaa无费看| 久久国产综合精品| 99国内精品久久| 日韩欧美高清一区| 亚洲精品国产a| 国产精品一二一区| 欧美日韩色综合| 国产精品久久久久久久久免费樱桃 | 国产日韩精品一区| 性欧美疯狂xxxxbbbb| 国产精品夜夜爽| 正在播放亚洲一区| 亚洲精选视频免费看| 国内精品嫩模私拍在线| 欧美日韩一区三区四区| 国产精品妹子av| 国产曰批免费观看久久久| 欧美麻豆精品久久久久久| 国产精品久久久久久妇女6080| 麻豆成人久久精品二区三区红| 色偷偷88欧美精品久久久|