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

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

?? ixnpemhconfig.c

?? u-boot1.3.0的原碼,從配了網絡驅動和FLASH的驅動,并該用ESC竟如
?? C
?? 第 1 頁 / 共 2 頁
字號:
/** * @file IxNpeMhConfig.c * * @author Intel Corporation * @date 18 Jan 2002 * * @brief This file contains the implementation of the private API for the * Configuration module. * *  * @par * IXP400 SW Release version 2.0 *  * -- Copyright Notice -- *  * @par * Copyright 2001-2005, Intel Corporation. * All rights reserved. *  * @par * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. Neither the name of the Intel Corporation nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. *  * @par * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. *  * @par * -- End of Copyright Notice --*//* * Put the system defined include files required. *//* * Put the user defined include files required. */#include "IxOsal.h"#include "IxNpeMhMacros_p.h"#include "IxNpeMhConfig_p.h"/* * #defines and macros used in this file. */#define IX_NPE_MH_MAX_NUM_OF_RETRIES 1000000 /**< Maximum number of                                              * retries before                                              * timeout					                          */  /* * Typedefs whose scope is limited to this file. *//** * @struct IxNpeMhConfigStats * * @brief This structure is used to maintain statistics for the * Configuration module. */typedef struct{    UINT32 outFifoReads;        /**< outFifo reads */    UINT32 inFifoWrites;        /**< inFifo writes */    UINT32 maxInFifoFullRetries;   /**< max retries if inFIFO full   */    UINT32 maxOutFifoEmptyRetries; /**< max retries if outFIFO empty */} IxNpeMhConfigStats;/* * Variable declarations global to this file only.  Externs are followed by * static variables. */IxNpeMhConfigNpeInfo ixNpeMhConfigNpeInfo[IX_NPEMH_NUM_NPES] ={    {        0,        IX_NPEMH_NPEA_INT,	0,        0,        0,        0,        0,        NULL,        FALSE    },    {        0,        IX_NPEMH_NPEB_INT,	0,	0,        0,        0,        0,        NULL,        FALSE    },    {        0,        IX_NPEMH_NPEC_INT,        0,        0,        0,        0,        0,        NULL,        FALSE    }};PRIVATE IxNpeMhConfigStats ixNpeMhConfigStats[IX_NPEMH_NUM_NPES];/* * Extern function prototypes. *//* * Static function prototypes. */PRIVATEvoid ixNpeMhConfigIsr (void *parameter);/* * Function definition: ixNpeMhConfigIsr */PRIVATEvoid ixNpeMhConfigIsr (void *parameter){    IxNpeMhNpeId npeId = (IxNpeMhNpeId)parameter;    UINT32 ofint;    volatile UINT32 *statusReg =        (UINT32 *)ixNpeMhConfigNpeInfo[npeId].statusRegister;    IX_NPEMH_TRACE0 (IX_NPEMH_FN_ENTRY_EXIT, "Entering "                     "ixNpeMhConfigIsr\n");    /* get the OFINT (OutFifo interrupt) bit of the status register */    IX_NPEMH_REGISTER_READ_BITS (statusReg, &ofint, IX_NPEMH_NPE_STAT_OFINT);    /* if the OFINT status bit is set */    if (ofint)    {        /* if there is an ISR registered for this NPE */        if (ixNpeMhConfigNpeInfo[npeId].isr != NULL)        {            /* invoke the ISR routine */            ixNpeMhConfigNpeInfo[npeId].isr (npeId);        }        else        {            /* if we don't service the interrupt the NPE will continue */            /* to trigger the interrupt indefinitely */            IX_NPEMH_ERROR_REPORT ("No ISR registered to service "                                   "interrupt\n");        }    }    IX_NPEMH_TRACE0 (IX_NPEMH_FN_ENTRY_EXIT, "Exiting "                     "ixNpeMhConfigIsr\n");}/* * Function definition: ixNpeMhConfigInitialize */void ixNpeMhConfigInitialize (    IxNpeMhNpeInterrupts npeInterrupts){    IxNpeMhNpeId npeId;    UINT32 virtualAddr[IX_NPEMH_NUM_NPES];    IX_NPEMH_TRACE0 (IX_NPEMH_FN_ENTRY_EXIT, "Entering "                     "ixNpeMhConfigInitialize\n");    /* Request a mapping for the NPE-A config register address space */    virtualAddr[IX_NPEMH_NPEID_NPEA] =	(UINT32) IX_OSAL_MEM_MAP (IX_NPEMH_NPEA_BASE,				     IX_OSAL_IXP400_NPEA_MAP_SIZE);    IX_OSAL_ASSERT (virtualAddr[IX_NPEMH_NPEID_NPEA]);    /* Request a mapping for the NPE-B config register address space */    virtualAddr[IX_NPEMH_NPEID_NPEB] =	(UINT32) IX_OSAL_MEM_MAP (IX_NPEMH_NPEB_BASE,				     IX_OSAL_IXP400_NPEB_MAP_SIZE);    IX_OSAL_ASSERT (virtualAddr[IX_NPEMH_NPEID_NPEB]);        /* Request a mapping for the NPE-C config register address space */    virtualAddr[IX_NPEMH_NPEID_NPEC] =	(UINT32) IX_OSAL_MEM_MAP (IX_NPEMH_NPEC_BASE,				     IX_OSAL_IXP400_NPEC_MAP_SIZE);    IX_OSAL_ASSERT (virtualAddr[IX_NPEMH_NPEID_NPEC]);    /* for each NPE ... */    for (npeId = 0; npeId < IX_NPEMH_NUM_NPES; npeId++)    {        /* declare a convenience pointer */        IxNpeMhConfigNpeInfo *npeInfo = &ixNpeMhConfigNpeInfo[npeId];		/* store the virtual addresses of the NPE registers for later use */	npeInfo->virtualRegisterBase  = virtualAddr[npeId];	npeInfo->statusRegister  = virtualAddr[npeId] + IX_NPEMH_NPESTAT_OFFSET;	npeInfo->controlRegister = virtualAddr[npeId] + IX_NPEMH_NPECTL_OFFSET;	npeInfo->inFifoRegister  = virtualAddr[npeId] + IX_NPEMH_NPEFIFO_OFFSET;	npeInfo->outFifoRegister = virtualAddr[npeId] + IX_NPEMH_NPEFIFO_OFFSET;        /* for test purposes - to verify the register addresses */        IX_NPEMH_TRACE2 (IX_NPEMH_DEBUG, "NPE %d status register  = "                         "0x%08X\n", npeId, npeInfo->statusRegister);        IX_NPEMH_TRACE2 (IX_NPEMH_DEBUG, "NPE %d control register = "                         "0x%08X\n", npeId, npeInfo->controlRegister);        IX_NPEMH_TRACE2 (IX_NPEMH_DEBUG, "NPE %d inFifo register  = "                         "0x%08X\n", npeId, npeInfo->inFifoRegister);        IX_NPEMH_TRACE2 (IX_NPEMH_DEBUG, "NPE %d outFifo register = "                         "0x%08X\n", npeId, npeInfo->outFifoRegister);        /* connect our ISR to the NPE interrupt */        (void) ixOsalIrqBind (            npeInfo->interruptId, ixNpeMhConfigIsr, (void *)npeId);        /* initialise a mutex for this NPE */        (void) ixOsalMutexInit (&npeInfo->mutex);        /* if we should service the NPE's "outFIFO not empty" interrupt */        if (npeInterrupts == IX_NPEMH_NPEINTERRUPTS_YES)        {            /* enable the NPE's "outFIFO not empty" interrupt */            ixNpeMhConfigNpeInterruptEnable (npeId);        }        else        {            /* disable the NPE's "outFIFO not empty" interrupt */            ixNpeMhConfigNpeInterruptDisable (npeId);        }    }    IX_NPEMH_TRACE0 (IX_NPEMH_FN_ENTRY_EXIT, "Exiting "                     "ixNpeMhConfigInitialize\n");}/* * Function definition: ixNpeMhConfigUninit */void ixNpeMhConfigUninit (void){    IxNpeMhNpeId npeId;    IX_NPEMH_TRACE0 (IX_NPEMH_FN_ENTRY_EXIT, "Entering "                     "ixNpeMhConfigUninit\n");    /* for each NPE ... */    for (npeId = 0; npeId < IX_NPEMH_NUM_NPES; npeId++)    {        /* declare a convenience pointer */        IxNpeMhConfigNpeInfo *npeInfo = &ixNpeMhConfigNpeInfo[npeId];                /* disconnect ISR */        ixOsalIrqUnbind(npeInfo->interruptId);        /* destroy mutex associated with this NPE */        ixOsalMutexDestroy(&npeInfo->mutex);		IX_OSAL_MEM_UNMAP (npeInfo->virtualRegisterBase);	npeInfo->virtualRegisterBase  = 0;	npeInfo->statusRegister  = 0;	npeInfo->controlRegister = 0;	npeInfo->inFifoRegister  = 0;	npeInfo->outFifoRegister = 0;    }    IX_NPEMH_TRACE0 (IX_NPEMH_FN_ENTRY_EXIT, "Exiting "                     "ixNpeMhConfigUninit\n");}/* * Function definition: ixNpeMhConfigIsrRegister */void ixNpeMhConfigIsrRegister (    IxNpeMhNpeId npeId,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品午夜久久福利影院| 欧美猛男gaygay网站| 欧美日韩一区视频| 日韩欧美一级二级三级久久久| 中文字幕欧美激情一区| 免费人成网站在线观看欧美高清| 99视频有精品| 欧美岛国在线观看| 亚洲18色成人| 91视频精品在这里| 国产日韩三级在线| 蜜桃传媒麻豆第一区在线观看| 97久久久精品综合88久久| 日韩免费一区二区| 午夜视频在线观看一区| 91豆麻精品91久久久久久| 国产欧美日韩麻豆91| 看片的网站亚洲| 欧美人与性动xxxx| 夜夜精品浪潮av一区二区三区| hitomi一区二区三区精品| 欧美激情一区在线观看| 韩国v欧美v日本v亚洲v| 日韩亚洲欧美一区| 日本中文字幕一区二区有限公司| 欧美日本一道本在线视频| 亚洲一区二区在线免费观看视频| 99久久99久久久精品齐齐| 亚洲成人av电影在线| 色av一区二区| 国产日韩欧美不卡| 欧美三级中文字幕在线观看| 色婷婷亚洲精品| 成人免费小视频| 不卡电影一区二区三区| 欧美极品aⅴ影院| 国产电影精品久久禁18| 久久久久青草大香线综合精品| 国产一区二区在线看| 欧美激情综合在线| 不卡免费追剧大全电视剧网站| 亚洲少妇最新在线视频| 91网址在线看| 亚洲国产视频直播| 欧美日韩大陆一区二区| 美日韩一级片在线观看| 精品国产一区二区三区忘忧草| 国产酒店精品激情| 中文子幕无线码一区tr| 91福利精品视频| 日本中文字幕一区| 久久久久9999亚洲精品| 99在线视频精品| 亚洲大型综合色站| 精品日产卡一卡二卡麻豆| 国产不卡免费视频| 一区二区三区欧美久久| 欧美一卡2卡3卡4卡| 懂色av一区二区三区免费看| 中文字幕不卡一区| 欧美色综合影院| 久久爱另类一区二区小说| 日本一二三不卡| 欧美亚洲国产bt| 久久精品国产一区二区三区免费看| 久久久久久久综合色一本| 成人avav在线| 美女性感视频久久| 国产精品蜜臀在线观看| 欧美日韩在线综合| 成人开心网精品视频| 亚洲第一电影网| 国产日产精品1区| 欧美日韩一区 二区 三区 久久精品| 老司机精品视频在线| 亚洲美女区一区| 亚洲精品在线观看网站| 色综合久久66| 国产精品一区二区久久精品爱涩| 一区二区在线看| 久久一留热品黄| 在线91免费看| 99久久99久久精品免费观看| 麻豆精品新av中文字幕| 一区二区三区四区视频精品免费| 精品国产免费久久| 欧美三级在线视频| 成人sese在线| 国产毛片精品国产一区二区三区| 亚洲一区视频在线| 国产精品青草综合久久久久99| 欧美一区二区三区精品| 色爱区综合激月婷婷| 成人美女视频在线看| 国产一区二区福利| 蜜桃视频在线一区| 亚洲第一激情av| 亚洲免费观看高清在线观看| 欧美经典三级视频一区二区三区| 欧美大胆一级视频| 欧美肥大bbwbbw高潮| 成人91在线观看| 国产福利精品一区| 久久精品99久久久| 老汉av免费一区二区三区| 视频一区二区国产| 亚洲电影在线播放| 一级日本不卡的影视| 亚洲人成精品久久久久| 国产精品麻豆欧美日韩ww| 久久精品欧美一区二区三区不卡| 欧美大胆人体bbbb| 精品女同一区二区| 久久精品欧美一区二区三区不卡| 久久人人97超碰com| 精品久久久久久久久久久院品网 | 免费成人结看片| 日韩精品一二区| 天天射综合影视| 日韩va欧美va亚洲va久久| 日本sm残虐另类| 青草国产精品久久久久久| 日韩电影免费在线看| 天堂成人国产精品一区| 日韩精品一级二级| 久久国产精品色| 国产主播一区二区三区| 国产精品 欧美精品| 福利一区二区在线| 99精品黄色片免费大全| 色欧美乱欧美15图片| 欧美午夜精品电影| 91精品一区二区三区久久久久久| 日韩一级二级三级精品视频| 日韩一区二区三区在线观看| 欧美大片在线观看一区| 久久精品无码一区二区三区| 国产精品少妇自拍| 一区二区三区欧美视频| 日本欧美一区二区三区| 国内精品伊人久久久久av一坑| 高清av一区二区| 色吧成人激情小说| 日韩欧美国产精品一区| 国产精品毛片无遮挡高清| 亚洲第一av色| 国内精品自线一区二区三区视频| 成人av在线一区二区三区| 欧美性三三影院| 精品99一区二区| 一区二区三区在线看| 美女网站在线免费欧美精品| 成人免费视频免费观看| 欧美色爱综合网| 欧美激情在线看| 亚洲成av人片www| 国产91在线看| 欧美人成免费网站| 国产蜜臀av在线一区二区三区| 亚洲靠逼com| 精品一区二区三区免费观看| 91污在线观看| 精品国产免费一区二区三区四区 | 日韩视频永久免费| 国产精品福利一区二区三区| 首页国产欧美日韩丝袜| 成人激情文学综合网| 91精品国产91热久久久做人人 | www.欧美色图| 欧美一级国产精品| 亚洲人精品一区| 激情都市一区二区| 在线视频欧美精品| 久久综合给合久久狠狠狠97色69| 亚洲午夜精品网| 97精品电影院| 精品国产伦理网| 免费成人性网站| 欧美亚洲综合久久| 国产精品短视频| 国产精品1024| 日韩欧美在线观看一区二区三区| 成人欧美一区二区三区视频网页| 精品一区二区三区日韩| 91精品婷婷国产综合久久竹菊| 亚洲乱码日产精品bd| 成人免费高清在线| 久久亚洲二区三区| 久久国产人妖系列| 欧美色图免费看| 亚洲午夜精品网| 在线观看av不卡| 亚洲三级免费电影| 成人深夜在线观看| 日本一区二区三区视频视频| 国内精品久久久久影院色| 日韩一区二区三区四区| 日本强好片久久久久久aaa| 欧美日韩的一区二区| 日欧美一区二区|