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

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

?? cacher7klib.c

?? vxworks的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* cacheR7kLib.c - MIPS R7000 cache management library *//* Copyright 1984-2001 Wind River Systems, Inc. */#include "copyright_wrs.h"/* * 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--------------------01q,29jan03,jmt  Change cacheDmaMalloc to use memPartAlloc instead of malloc01p,17may02,pes  Before aborting cacheTextUpdate() on null pointer, check for                 ENTIRE_CACHE.01o,08may02,pes  Add protection against null pointers, zero counts, and                 requests involving kseg1 in cacheXXXTextUpdate().01n,16jul01,ros  add CofE comment01m,30jun00,dra  Backported from Cirrus01l,21jun00,dra  Call underlying functions from kseg101k,20jun00,dra  Update DMA alloc/free for Cirrus.01j,13jun00,dra  generalize the mmuMipsUnMap flush of virtual page addresses                 to all Mips architectures, correct cdf file discrepancies01i,22mar00,dra  Fixed compiler warnings.01h,19jul99,dra  Updated cache library for R7k devices.01g,19jul99,dra  Created this file based on cacheR5kLib.c, 01f.01f,12jul99,dra  Updated cacheLock/cacheUnlock support for VR5400.01e,07jul99,dra  Created this file based on cacheR4kLib.c.01d,06apr99,dra  Added cacheLock/cacheUnlock support for VR5400.01c,05dec96,kkk  Added missing return value to cacheR4kFlush() and                 cacheR4kInvalidate().01b,12oct94,caf  Tweaked documentation (SPR #3464).01a,01oct93,cd   Derived from cacheR3kLib.c v01h.*//*DESCRIPTIONThis library contains architecture-specific cache library functions forthe MIPS R7000 architecture.  The R7000 utilizes a variable-sizeinstruction and data cache that operates in write-back 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 "memLib.h"#include "stdlib.h"#include "errno.h"#ifdef IS_KSEGM#include "memPartLib.h"#include "arch/mips/mmuMipsLib.h"#include "private/vmLibP.h"#include "private/funcBindP.h"#endif/* forward declarations */LOCAL void *	cacheR7kMalloc (size_t bytes);LOCAL STATUS	cacheR7kFree (void * pBuf);LOCAL STATUS	cacheR7kFlush (CACHE_TYPE cache, void *	pVirtAdrs,			       size_t bytes);LOCAL STATUS	cacheR7kInvalidate (CACHE_TYPE cache, void * pVirtAdrs,                                    size_t bytes);LOCAL STATUS	cacheR7kClear (CACHE_TYPE cache, void *	pVirtAdrs,			       size_t bytes);LOCAL void * 	cacheR7kPhysToVirt (void * address);LOCAL void * 	cacheR7kVirtToPhys (void * address);LOCAL STATUS 	cacheR7kTextUpdate (void * address, size_t bytes);LOCAL STATUS	cacheR7kPipeFlush (void);/* imports */IMPORT void	sysWbFlush ();IMPORT void     cacheR7kDCFlush (void * pVirtAdrs, size_t bytes);IMPORT void     cacheR7kDCFlushAll (void);IMPORT void     cacheR7kDCInvalidate (void * pVirtAdrs, size_t bytes);IMPORT void     cacheR7kDCInvalidateAll (void);IMPORT void     cacheR7kDCFlushInvalidate (void * pVirtAdrs, size_t bytes);IMPORT void     cacheR7kDCFlushInvalidateAll (void);IMPORT void     cacheR7kICInvalidateAll (void);IMPORT void     cacheR7kICInvalidate (void * pVirtAdrs, size_t bytes);IMPORT void     cacheR7kPTextUpdateAll (void);IMPORT void     cacheR7kPTextUpdate (void * pVirtAdrs, size_t bytes);#ifdef IS_KSEGMIMPORT VOIDFUNCPTR _func_mipsCacheSync;IMPORT VOIDFUNCPTR _func_mmuMipsVirtPageFlush;IMPORT void	cacheR7kSync (void * vAddr, UINT len);IMPORT void	cacheR7kVirtPageFlush (UINT asid, void * vAddr, UINT pageSize);#endif/* globals */IMPORT UINT32 cacheR7kICacheSize;IMPORT UINT32 cacheR7kDCacheSize;IMPORT UINT32 cacheR7kSCacheSize;IMPORT UINT32 cacheR7kTCacheSize;IMPORT UINT32 cacheR7kICacheLineSize;IMPORT UINT32 cacheR7kDCacheLineSize;IMPORT UINT32 cacheR7kSCacheLineSize;IMPORT UINT32 cacheR7kTCacheLineSize;/* Memory partition for cacheR7kMalloc and cacheR7kFree. * If NULL, use the System Partition (same as Malloc). */PART_ID cacheR7kPartId = NULL;/**************************************************************************** cacheR7kLibInit - initialize the R7000 cache library** This routine initializes the function pointers for the R7000 cache* library.  The board support package can select this cache library* by assigning the function pointer <sysCacheLibInit> to* cacheR7kLibInit().** RETURNS: OK.*/STATUS cacheR7kLibInit    (    CACHE_MODE	instMode,	/* instruction cache mode */    CACHE_MODE	dataMode,	/* data cache mode */    UINT32	iCacheSize,    UINT32	iCacheLineSize,    UINT32	dCacheSize,    UINT32	dCacheLineSize,    UINT32	sCacheSize,    UINT32	sCacheLineSize,    UINT32	tCacheSize,    UINT32	tCacheLineSize    )    {    cacheR7kICacheSize = iCacheSize;    cacheR7kICacheLineSize = iCacheLineSize;    cacheR7kDCacheSize = dCacheSize;    cacheR7kDCacheLineSize = dCacheLineSize;    cacheR7kSCacheSize = sCacheSize;    cacheR7kSCacheLineSize = sCacheLineSize;    cacheR7kTCacheSize = tCacheSize;    cacheR7kTCacheLineSize = tCacheLineSize;    cacheLib.enableRtn = NULL;	/* cacheEnable() */    cacheLib.disableRtn = NULL;	/* cacheDisable() */    cacheLib.lockRtn = NULL;			/* cacheLock */    cacheLib.unlockRtn = NULL;			/* cacheUnlock */    cacheLib.flushRtn = cacheR7kFlush;		/* cacheFlush() */    cacheLib.pipeFlushRtn = cacheR7kPipeFlush;	/* cachePipeFlush() */    cacheLib.textUpdateRtn = cacheR7kTextUpdate;/* cacheTextUpdate() */    cacheLib.invalidateRtn = cacheR7kInvalidate;/* cacheInvalidate() */    cacheLib.clearRtn = cacheR7kClear;		/* cacheClear() */    cacheLib.dmaMallocRtn = (FUNCPTR) cacheR7kMalloc;	/* cacheDmaMalloc() */    cacheLib.dmaFreeRtn = cacheR7kFree;			/* cacheDmaFree() */#ifdef IS_KSEGM    if (!IS_KSEGM(cacheR7kLibInit))	{	cacheLib.dmaVirtToPhysRtn = (FUNCPTR) cacheR7kVirtToPhys;	cacheLib.dmaPhysToVirtRtn = (FUNCPTR) cacheR7kPhysToVirt;	_func_mipsCacheSync = (VOIDFUNCPTR) cacheR7kSync;	}    else	{	_func_mipsCacheSync = (VOIDFUNCPTR) KM_TO_K0(cacheR7kSync);	_func_mmuMipsVirtPageFlush = (VOIDFUNCPTR) cacheR7kVirtPageFlush;	}#else    cacheLib.dmaVirtToPhysRtn = (FUNCPTR) cacheR7kVirtToPhys;    cacheLib.dmaPhysToVirtRtn = (FUNCPTR) cacheR7kPhysToVirt;#endif    cacheDataMode	= dataMode;		/* save dataMode for enable */    cacheDataEnabled	= TRUE;			/* d-cache is currently on */    cacheMmuAvailable	= TRUE;			/* mmu support is provided */    cacheFuncsSet ();				/* update cache func ptrs */    return (OK);    }/**************************************************************************** cacheR7kMalloc - allocate a cache-safe buffer, if possible** This routine will attempt to return a pointer to a section of memory* that will not experience any cache coherency problems.** INTERNAL* This function is complicated somewhat because the cache operates in* copyback mode and we need to avoid problems from writebacks of adjacent* cached lines; we also need to remember the pointer returned by malloc so* that we can free it if required.** RETURNS: A pointer to the non-cached buffer, or NULL.*/LOCAL void * cacheR7kMalloc    (    size_t bytes    )    {    void      * pDmaBuffer;#ifdef IS_KSEGM    /* check for non-memory mapped case */    if (!IS_KSEGM(cacheR7kMalloc))	{#endif	int	allocBytes;	void  * pBuffer;	/* if NULL, set cacheR7kPartId to the system partition */		if (cacheR7kPartId == NULL)	    cacheR7kPartId = memSysPartId;	/*	 * Round up the allocation size so that we can store a "back pointer"	 * to the allocated buffer, align the buffer on a cache line boundary	 * and pad the buffer to a cache line boundary.	 */	allocBytes = CACHE_ROUND_UP (sizeof (void *)) + CACHE_ROUND_UP (bytes);	if ((pBuffer =	     (void *)memPartAlloc (cacheR7kPartId, allocBytes)) == NULL)	    return (NULL);	/* Flush any data that may be still sitting in the cache */	cacheR7kDCFlushInvalidate (pBuffer, allocBytes);	pDmaBuffer = pBuffer;	/* allocate space for the back pointer */	pDmaBuffer = (void *)((int)pDmaBuffer + sizeof (void *));	/* Now align to a cache line boundary */	pDmaBuffer = (void *)CACHE_ROUND_UP (pDmaBuffer);	/* Store "back pointer" in previous cache line using CACHED location */	*(((void **)pDmaBuffer)-1) = pBuffer;	return ((void *)K0_TO_K1(pDmaBuffer));#ifdef IS_KSEGM	}	    else	{	int 	pageSize;	/* memory-mapped case */	if ((pageSize = VM_PAGE_SIZE_GET ()) == ERROR)	    return (NULL);	/* make sure bytes is a multiple of pageSize. This calculation assumes	 * that pageSize is a power of 2. */	bytes = (bytes + (pageSize - 1)) & ~(pageSize - 1); 	pDmaBuffer = (void *)IOBUF_ALIGNED_ALLOC (bytes, pageSize);	if (pDmaBuffer == NULL)	    return (NULL);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情视频一区二区在线观看 | 欧洲生活片亚洲生活在线观看| 欧美日韩一区二区三区在线| 国产欧美精品国产国产专区| 奇米色一区二区三区四区| 成人h版在线观看| 精品黑人一区二区三区久久| 亚洲午夜精品17c| 丁香激情综合国产| 久久久久久电影| 精品系列免费在线观看| 欧美精品一卡两卡| 亚洲国产中文字幕| 欧亚洲嫩模精品一区三区| 国产精品国产三级国产普通话蜜臀 | 国产日韩精品一区二区浪潮av| 午夜成人免费视频| 欧美亚洲综合另类| 亚洲免费在线电影| 97久久精品人人爽人人爽蜜臀| 欧美激情一区二区三区蜜桃视频 | 亚洲高清不卡在线| 色成人在线视频| 亚洲综合免费观看高清完整版在线| 不卡一区二区中文字幕| 国产精品免费aⅴ片在线观看| 国产成人综合亚洲91猫咪| 2021国产精品久久精品| 日本美女视频一区二区| 这里只有精品99re| 日韩和的一区二区| 欧美一级淫片007| 久久激情五月婷婷| 欧美精品一区二区三区久久久| 午夜激情综合网| 日韩欧美一级二级| 国产乱人伦偷精品视频免下载| 亚洲精品一区二区三区99| 国产综合久久久久久鬼色| 2023国产精华国产精品| 懂色av一区二区三区免费看| 国产精品成人网| 欧洲另类一二三四区| 亚洲成人精品影院| 欧美一级欧美一级在线播放| 国产又粗又猛又爽又黄91精品| 2020国产精品自拍| 丰满岳乱妇一区二区三区| 国产精品久久久久9999吃药| 欧美综合久久久| 美腿丝袜亚洲三区| 欧美韩日一区二区三区| 色综合色狠狠综合色| 香蕉影视欧美成人| 国产色91在线| 91九色最新地址| 久久99最新地址| 国产精品久久影院| 欧美精品三级在线观看| 国产制服丝袜一区| 一区二区三区电影在线播| 欧美mv和日韩mv的网站| 国产成人午夜高潮毛片| 亚洲超丰满肉感bbw| 久久久精品黄色| 精品视频在线看| 成人美女在线观看| 日本视频免费一区| 亚洲天堂2014| 欧美成人三级在线| 色综合久久中文综合久久牛| 久久99久久久欧美国产| 亚洲视频在线观看三级| 日韩午夜电影在线观看| 91久久久免费一区二区| 国产一区二区不卡在线| 亚洲综合在线五月| 中文字幕不卡的av| 精品美女在线观看| 欧美日韩一区小说| 色综合一区二区| 国产成人综合在线观看| 蜜臀久久99精品久久久久久9| 亚洲免费在线看| 国产精品美女一区二区在线观看| 欧美一区二区性放荡片| 日本久久电影网| 丁香婷婷综合色啪| 精品亚洲欧美一区| 日日夜夜精品免费视频| 一区二区三区.www| 国产精品麻豆久久久| 久久久电影一区二区三区| 制服丝袜亚洲色图| 欧美日本韩国一区| 在线观看一区不卡| 91成人免费在线| 99久久免费国产| eeuss鲁片一区二区三区| 国产精品一区二区在线观看不卡| 99久久婷婷国产精品综合| 国产乱子伦视频一区二区三区| 久久精品99国产精品| 日本不卡在线视频| 日韩电影在线观看一区| 亚洲国产一二三| 亚洲国产视频在线| 一区二区三区高清在线| 一区二区三区四区视频精品免费 | 精品久久久久一区二区国产| 欧美日韩成人综合| 欧美乱熟臀69xxxxxx| 91麻豆精品91久久久久同性| 欧美精品国产精品| 91精品午夜视频| 日韩丝袜情趣美女图片| 日韩欧美一级特黄在线播放| 欧美一级在线视频| 精品三级在线观看| 亚洲精品一区二区三区福利| 久久中文娱乐网| 国产欧美精品区一区二区三区 | 日韩黄色小视频| 蜜桃av噜噜一区二区三区小说| 蜜臀精品一区二区三区在线观看| 蜜臀91精品一区二区三区| 国产资源精品在线观看| 国产尤物一区二区| 97aⅴ精品视频一二三区| 在线观看视频91| 日韩精品一区二区在线| 国产亚洲污的网站| 亚洲欧洲综合另类在线| 午夜精品成人在线视频| 久久99热狠狠色一区二区| 成人精品免费看| 欧美在线你懂的| 精品国产伦理网| 日韩毛片高清在线播放| 午夜精品福利视频网站| 国产精华液一区二区三区| 色综合久久天天| 日韩一区二区三区四区五区六区| 国产日韩欧美麻豆| 亚洲国产精品久久一线不卡| 激情深爱一区二区| 色综合久久综合中文综合网| 欧美欧美欧美欧美首页| 国产欧美一区二区精品婷婷| 一区二区三区在线看| 久久99在线观看| 在线视频亚洲一区| 精品久久久久一区二区国产| 亚洲人成网站精品片在线观看| 日本在线播放一区二区三区| 不卡av在线网| 日韩欧美你懂的| 亚洲一区二区美女| 成人免费的视频| 欧美成人乱码一区二区三区| 亚洲三级电影网站| 国产乱码精品一区二区三| 欧美日产国产精品| 最新欧美精品一区二区三区| 久色婷婷小香蕉久久| 在线免费av一区| 中文字幕精品三区| 麻豆成人综合网| 欧美日韩亚洲高清一区二区| 中文字幕在线一区| 国产经典欧美精品| 日韩视频免费观看高清完整版在线观看| 亚洲少妇屁股交4| 国产成人av影院| 欧美成人三级电影在线| 亚洲成人免费av| 欧美怡红院视频| 亚洲欧美日韩成人高清在线一区| 国产传媒日韩欧美成人| 精品国产凹凸成av人导航| 天天综合天天综合色| 91久久精品网| 亚洲精品福利视频网站| 99re这里只有精品首页| 国产精品嫩草影院av蜜臀| 国产成人免费视频一区| 国产日产精品1区| 国产精品123| 国产欧美日韩精品一区| 国产东北露脸精品视频| 久久免费国产精品| 国内精品国产三级国产a久久| 精品免费一区二区三区| 久久国产乱子精品免费女| 欧美一级日韩一级| 开心九九激情九九欧美日韩精美视频电影 | 欧美精品一区二区在线播放| 免费不卡在线观看| 久久尤物电影视频在线观看| 激情综合色综合久久|