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

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

?? syscache.c

?? vxworks的bsp開發包(基于POWERPC的PRPMC800)
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* sysCache.c - secondary (L2) cache library for the Hawk SMC *//* Copyright 1984-2001 Wind River Systems, Inc. *//* Copyright 1996-2001 Motorola, Inc., All Rights Reserved. *//*modification history--------------------01b,20jun01,srr  Added support for Nitro.01a,31aug00,dmw  Written (from version 01c of mv5100/sysCache.c).*//*DESCRIPTIONThis library provides L2 cache support, and is derived fromcode supplied by Motorola.Support is included for initializing/enabling the L2 Cache on boot andenabling/disabling the L2 Cache with system calls.  Only Inline caches aresupported since there are no VPD-based boards with a look-aside cache.Parameters used to configured the L2 controller are gathered from the L2Cache Record in the VPD.*//* includes */#include "vxWorks.h"#include "sysCache.h"#define SYNC WRS_ASM("sync")#if defined(INCLUDE_CACHE_SUPPORT) && defined(INCLUDE_CACHE_L2)/* defines */#define BOARD_CONV_SHIFT  25/* forward declarations */STATUS           sysL2CacheInit (void);LOCAL STATUS     sysL2InlineCacheInit (void);void             sysL2CacheEnable (void);LOCAL void       sysL2InlineCacheEnable (void);void             sysL2CacheDisable (void);LOCAL void       sysL2InlineCacheDisable (void);void             sysL2CacheFlush (void);LOCAL void       sysL2InlineCacheFlush (void);void             sysL2CacheInvFunc (void);LOCAL void       sysL2InlineCacheInvFunc (void);LOCAL STATUS     sysL2CacheInfoGet(UCHAR, UCHAR *);LOCAL UINT       sysL2InlineCacheSize (void);LOCAL UINT       sysL2InlineCacheSpd (void);/* externals */IMPORT UINT sysL2crGet (void);IMPORT void sysL2crPut (UINT regVal);IMPORT UINT sysGetMpuSpd (void);IMPORT void sysMaxL2Disable(void);IMPORT void sysMaxL2InvFunc(void);IMPORT void sysMaxL2Flush(void);IMPORT VOIDFUNCPTR _pSysL2CacheInvFunc ;IMPORT VOIDFUNCPTR _pSysL2CacheEnable  ;IMPORT VOIDFUNCPTR _pSysL2CacheFlush   ;IMPORT VOIDFUNCPTR _pSysL2CacheDisable ;LOCAL UINT boardConvTable[] =    {    0x0, 0x1, 0x2, 0x4, 0x5, 0x6, 0x0, 0x0, 0x0,    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0    };LOCAL UINT boardFreqTable[] =    {    10, 10, 15, 20, 25, 30, 10, 10,    10, 10, 10, 10, 10, 10, 10, 10    };LOCAL VPD_PACKET * pVpdL2CachePacket = NULL;/******************************************************************************** sysL2CacheInfoGet - Get L2 Cache Info from the VPD.** This routine parses the VPD data structure for a L2 cache record and returns* field information in the record based on the L2CachePacketField that is* passed to it. ** RETURNS: OK, or ERROR if VPD L2 cache record missing or corrupt.** SEE ALSO: sysL2InlineCacheInit(), sysL2GetCacheSize()*/ LOCAL STATUS sysL2CacheInfoGet    (    UCHAR L2CachePacketFieldId,  /* Id for L2 cache record */    UCHAR * pL2CachePacketField  /* pointer to field information */    )    {    UINT i, fieldSize = 0;    BOOL fieldError = FALSE;    if (pVpdL2CachePacket == NULL)        {        /* Extract a VPD L2 Cache Packet */        if (sysVpdPktGet(VPD_PID_L2, 0, &sysVpdPkts[0], &pVpdL2CachePacket)            == ERROR)            return (ERROR);        }    /* Determine field length and if the field has a valid parameter */    switch (L2CachePacketFieldId)        {        case L2C_MID:        case L2C_DID:           fieldSize = 2;           break;        case L2C_DDW:        case L2C_NOD:        case L2C_NOC:        case L2C_CW:        case L2C_ASSOCIATE:            fieldSize = 1;            break;        case L2C_TYPE:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_TYPE_INLINE)                fieldError = TRUE;            else                fieldSize = 1;            break;        case L2C_OPERATIONMODE:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_OM_WB)                fieldError = TRUE;            else                fieldSize = 1;            break;        case L2C_ERROR_DETECT:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_ED_ECC)                fieldError = TRUE;            else                fieldSize = 1;            break;        case L2C_SIZE:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_SIZE_4M)                fieldError = TRUE;            else                fieldSize = 1;            break;        case L2C_TYPE_BACKSIDE:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_TYPE_BS_BNP)                fieldError = TRUE;            else                fieldSize = 1;            break;        case L2C_RATIO_BACKSIDE:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_RATIO_3_1)                fieldError = TRUE;            else                fieldSize = 1;                break;        default:            fieldError= TRUE;        break;        }    if (!fieldError)       {       if (fieldSize == 1)           pL2CachePacketField[0] =               pVpdL2CachePacket->data[L2CachePacketFieldId];        else           for (i=0; i<fieldSize; i++)               pL2CachePacketField[i] =                   pVpdL2CachePacket->data[L2CachePacketFieldId+i];       return OK;       }    else       return ERROR;    }/******************************************************************************** sysL2CacheInit - initialize the L2 cache ** This routine initializes and enables L2 cache(s) support. ** RETURNS: OK, or ERROR if cache is not present or not supported.** SEE ALSO: sysL2CacheInit(), sysL2CacheEnable(), sysL2CacheDisable()*/ STATUS sysL2CacheInit (void)    {    STATUS status = OK;    /* check for presence of L2 cache */    if (sysL2InlineCacheSize() != 0)        status |= sysL2InlineCacheInit();    return (status);    }/******************************************************************************** sysL2InlineCacheInit - initialize the L2 in-line cache.** This routine initializes and enables L2 in-line cache support.** RETURNS: OK, or ERROR if cache is not present or not supported.*/ LOCAL STATUS sysL2InlineCacheInit(void)    {    UINT l2CacheSize;    UINT l2crVal;    UCHAR l2CacheType, l2CacheRatio;    /* check for presence of L2 cache */    if ((l2CacheSize = sysL2InlineCacheSize()) == 0)        return(ERROR);        /* No L2 cache to init */    /* Initialize RAM type, output hold, differential clock */    if (sysL2CacheInfoGet(L2C_TYPE_BACKSIDE, &l2CacheType) == ERROR)        {        sysDebugMsg ("L2 cache record missing or corrupt.  L2 Cache Disabled.",                     CONTINUE_EXECUTION);        return(ERROR);        /* VPD Error */        }    switch ( l2CacheType )        {        case L2C_TYPE_BS_LWP:          /* Late Write, with Parity */        case L2C_TYPE_BS_LWNP:        /* Late Write, without Parity */        /*         * L2PE  = No parity enable         * L2RAM = Pipe reg-reg sync late-write         * L2OH  = 1.0ns         * L2DF  = Diff clock         */              l2crVal = MPC750_L2CR_RAM_PLTWR |              MPC750_L2CR_OH_1NS |              MPC750_L2CR_DF;        break;    case L2C_TYPE_BS_BP:          /* Burst with parity */    case L2C_TYPE_BS_BNP:         /* Burst, without Parity */        /*         * L2PE  = No parity enable         * L2RAM = Pipe reg-reg sync burst         * L2OH  = 0.5ns         * L2DF  = Nondiff clock         */        l2crVal = MPC750_L2CR_RAM_PBRST;              break;    default:        l2crVal = 0;        break;    }    /* Initialize the L2 clock ratio */        if (sysL2CacheInfoGet(L2C_RATIO_BACKSIDE, &l2CacheRatio) == ERROR)        {        sysDebugMsg("L2 cache record missing or corrupt.  L2 cache disabled.",                    CONTINUE_EXECUTION);        return (ERROR);        }    l2crVal |= boardConvTable[l2CacheRatio] << BOARD_CONV_SHIFT;    /*     * if L2 speed is below normal L2 speed threshold, set slow bit in L2     * cache control register.     */    if (sysL2InlineCacheSpd() < MPC750_L2_CACHE_SPEED_THRESHOLD)        l2crVal |= MPC750_L2CR_SL;    /* Set the Cache size */    switch (l2CacheSize)        {        case L2C_MEM_256K:            l2crVal |= MPC750_L2CR_256K;            break;        case L2C_MEM_512K:            l2crVal |= MPC750_L2CR_512K;            break;        case L2C_MEM_1M:            l2crVal |= MPC750_L2CR_1024K;            break;        case L2C_MEM_2M:            l2crVal |= MPC750_L2CR_2048K;            break;        }    /* Write out the L2 cache control register */    sysL2crPut(l2crVal);    /* Invalidate the L2 cache */    l2crVal |= MPC750_L2CR_I;    sysL2crPut(l2crVal);    SYNC;    /* wait for all memory transactions to finish */    while (sysL2crGet() & MPC750_L2CR_IP)        ;    l2crVal &= ~MPC750_L2CR_I;    sysL2crPut(l2crVal);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av电影观看| 国产乱一区二区| 经典三级视频一区| 91美女在线观看| 日韩小视频在线观看专区| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲伊人色欲综合网| 国内成人精品2018免费看| 欧美在线观看视频一区二区| 欧美激情一区二区三区在线| 三级精品在线观看| 91国偷自产一区二区开放时间| 国产农村妇女精品| 国产一区二区三区四区五区入口| 欧美三级视频在线| 一二三区精品视频| 91在线云播放| 中文字幕在线免费不卡| 国产精品123区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | www.亚洲激情.com| 精品国产成人系列| 精品在线一区二区| 欧美电影免费观看高清完整版在线 | 91老师片黄在线观看| 综合分类小说区另类春色亚洲小说欧美| 国内精品伊人久久久久av一坑| 91麻豆精品91久久久久久清纯| 亚洲综合自拍偷拍| 在线观看免费亚洲| 亚洲高清不卡在线| 欧美日韩国产乱码电影| 天天av天天翘天天综合网| 欧美四级电影网| 亚洲1区2区3区4区| 91精品免费在线| 美国十次综合导航| 久久久久久久久久久电影| 国产在线不卡一区| 国产精品丝袜久久久久久app| 国产一区二区在线观看免费 | 成人欧美一区二区三区白人| 成人激情免费视频| 亚洲裸体在线观看| 欧美日韩国产区一| 精品一区二区三区影院在线午夜| 精品免费视频.| 成年人午夜久久久| 亚洲一区二区三区小说| 欧美精品欧美精品系列| 久久国产福利国产秒拍| 久久综合九色综合97婷婷| 成人福利视频网站| 亚洲国产欧美日韩另类综合| 91精品免费观看| 国产999精品久久久久久| 中文字幕一区二区三区四区不卡 | 91麻豆自制传媒国产之光| 亚洲精品免费电影| 日韩亚洲欧美在线| 99精品视频在线播放观看| 爽好久久久欧美精品| 国产欧美一区二区在线| 一本久久a久久精品亚洲| 亚洲va欧美va天堂v国产综合| 欧美va亚洲va| 日本久久一区二区| 国产在线视频一区二区| 亚洲精品成人悠悠色影视| 日韩亚洲欧美在线观看| 99免费精品视频| 麻豆久久一区二区| 中文字幕一区二区不卡| 日韩欧美123| 色欧美片视频在线观看| 国产乱码字幕精品高清av | 亚洲永久精品大片| 91麻豆国产在线观看| 久久久久成人黄色影片| 亚洲成人av在线电影| 久久亚洲捆绑美女| 精品1区2区3区| eeuss鲁片一区二区三区在线看| 亚洲成a天堂v人片| 亚洲人成在线播放网站岛国 | 日韩精品一级中文字幕精品视频免费观看 | 欧美午夜精品电影| 成人国产亚洲欧美成人综合网 | 亚洲一区二区综合| 国产午夜精品美女毛片视频| 欧美日韩国产综合久久| 91蜜桃免费观看视频| 国产99精品国产| 韩国av一区二区三区在线观看| 天天综合网 天天综合色| 亚洲视频在线观看一区| 国产精品你懂的在线| 久久亚洲综合av| 精品av综合导航| 日韩午夜电影在线观看| 欧美三级乱人伦电影| 91福利视频网站| 色偷偷一区二区三区| 本田岬高潮一区二区三区| 国产盗摄女厕一区二区三区| 久久精品国产亚洲aⅴ| 青草av.久久免费一区| 亚洲成人福利片| 天天做天天摸天天爽国产一区 | 精品国产不卡一区二区三区| 91精品在线观看入口| 欧美精品少妇一区二区三区| 91福利社在线观看| 色噜噜偷拍精品综合在线| 99国产精品久久久久久久久久| 99视频超级精品| 日本久久电影网| 欧美日韩国产另类一区| 欧美猛男男办公室激情| 51精品国自产在线| 91精品国产综合久久久久久久久久| 欧美日韩你懂的| 日韩久久精品一区| 国产日韩精品一区二区浪潮av | 日韩vs国产vs欧美| 免费观看一级特黄欧美大片| 精品一区二区精品| 国产成人啪午夜精品网站男同| www.亚洲国产| 色88888久久久久久影院按摩| 欧美日韩视频在线观看一区二区三区| 3atv在线一区二区三区| 精品区一区二区| 国产精品美女久久久久高潮 | 国产精品毛片久久久久久| 中文字幕在线观看一区| 亚洲成在线观看| 久99久精品视频免费观看| 成人永久看片免费视频天堂| 欧美在线观看你懂的| 欧美电影免费观看完整版 | 久久精品免视看| 亚洲免费资源在线播放| 亚洲国产日产av| 国产盗摄女厕一区二区三区| 一本久道久久综合中文字幕| 91精品综合久久久久久| 国产欧美日韩中文久久| 亚洲午夜电影在线| 国产麻豆精品在线观看| 一本大道久久精品懂色aⅴ| 欧美一区二区三区播放老司机 | 日韩欧美高清dvd碟片| 国产色91在线| 视频一区欧美日韩| 成人一区二区在线观看| 3d动漫精品啪啪| 亚洲欧美日韩成人高清在线一区| 蜜臀av性久久久久蜜臀aⅴ| 成人国产精品免费网站| 欧美一区二区三区在线观看| 中文字幕制服丝袜成人av| 日日骚欧美日韩| 97se亚洲国产综合自在线不卡| 91精品国产综合久久国产大片| 国产精品国产精品国产专区不蜜| 免费美女久久99| 欧美日韩精品一二三区| 国产精品家庭影院| 国产在线精品不卡| 91精品国产综合久久婷婷香蕉| 亚洲视频在线一区观看| 国产91在线观看丝袜| 欧美v日韩v国产v| 日韩成人精品在线| 欧美视频第二页| 亚洲免费高清视频在线| 国产成人99久久亚洲综合精品| 欧美一级电影网站| 午夜精品123| 欧美性色黄大片| 亚洲精品欧美激情| av激情综合网| 国产精品电影院| 成人精品一区二区三区四区| 久久综合色播五月| 久久精品国产网站| 精品少妇一区二区三区在线视频| 日本亚洲欧美天堂免费| 欧美日本一区二区| 亚洲成年人网站在线观看| 欧美无人高清视频在线观看| 一区二区成人在线| 色域天天综合网| 亚洲精品第1页| 欧美三级欧美一级| 婷婷久久综合九色综合绿巨人| 欧美日韩的一区二区| 亚洲午夜久久久久| 欧美高清一级片在线|