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

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

?? ixnpemhconfig.c

?? 友善mini2440嵌入式
?? 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一区二区三区免费野_久草精品视频
91麻豆.com| 欧美中文字幕一区二区三区| 成人国产免费视频| 欧美另类高清zo欧美| 国产欧美日本一区视频| 日韩影院精彩在线| 99国产精品国产精品久久| 国产精品私人自拍| 中文字幕中文字幕一区二区| 亚洲成人7777| 91捆绑美女网站| 国产偷国产偷精品高清尤物| 日本成人超碰在线观看| 欧美性猛片xxxx免费看久爱| 国产精品国产a| 国产成人日日夜夜| 欧美r级在线观看| 视频一区中文字幕国产| 久久成人久久爱| 自拍av一区二区三区| 午夜国产不卡在线观看视频| 久久91精品久久久久久秒播| 欧美日韩国产a| 亚洲电影一区二区三区| 色综合天天综合在线视频| 成人永久免费视频| 久久精品视频一区二区| 国产精品一区一区三区| 久久婷婷一区二区三区| 韩国视频一区二区| 久久先锋影音av| 国产一区二区在线观看视频| 欧美成人官网二区| 久久精品国产精品青草| 欧美精品一区在线观看| 国产一区激情在线| 欧美韩日一区二区三区四区| 国产精品亚洲专一区二区三区| 久久久久久黄色| 国产精品亚洲第一区在线暖暖韩国 | 人人狠狠综合久久亚洲| 欧美日韩卡一卡二| 日韩一区精品字幕| 精品国产成人系列| 国产不卡视频一区二区三区| 亚洲gay无套男同| 欧美日韩高清在线播放| 爽好久久久欧美精品| 精品福利二区三区| 成人综合婷婷国产精品久久| 亚洲女同ⅹxx女同tv| 8v天堂国产在线一区二区| 青青草97国产精品免费观看| 久久亚洲精精品中文字幕早川悠里| 国产精品18久久久久久久网站| 久久久天堂av| 色综合久久88色综合天天6| 午夜精品久久久久久久99水蜜桃| 日韩天堂在线观看| 不卡影院免费观看| 亚洲国产精品久久人人爱| 欧美xxxx老人做受| 色综合久久综合中文综合网| 亚洲成av人片一区二区三区| 精品日韩一区二区| 色哦色哦哦色天天综合| 免费美女久久99| 亚洲欧洲99久久| 日韩一区二区三区四区 | 欧美性色黄大片| 国产在线一区二区| 亚洲一区自拍偷拍| 国产日韩精品一区| 7777精品伊人久久久大香线蕉经典版下载| 国产美女娇喘av呻吟久久| 亚洲精品欧美在线| 国产午夜精品一区二区三区视频| 欧美在线免费播放| 成人免费毛片高清视频| 日韩电影在线一区二区| 国产精品久久久久aaaa樱花 | 欧美午夜不卡视频| 国产一区久久久| 欧美三级日韩三级| 激情综合网最新| 亚洲欧美日韩久久| 国产午夜亚洲精品不卡| 8x8x8国产精品| 一本久久综合亚洲鲁鲁五月天| 国内外成人在线| 日韩影视精彩在线| 一区二区三区日韩欧美精品| 国产色综合久久| 日韩欧美一区二区三区在线| 欧美日韩精品一区二区三区| 91香蕉国产在线观看软件| 国产乱码精品一品二品| 精品一区二区免费视频| 日韩高清电影一区| 亚洲国产视频a| 亚洲柠檬福利资源导航| 中文字幕的久久| 亚洲专区一二三| 日韩影视精彩在线| 亚洲精品ww久久久久久p站 | 亚洲欧美乱综合| 国产欧美综合在线观看第十页 | 国产一区二区三区观看| 蜜臀精品久久久久久蜜臀| 亚洲第一综合色| 亚洲大片在线观看| 亚洲成人精品在线观看| 亚洲尤物视频在线| 婷婷丁香久久五月婷婷| 婷婷六月综合亚洲| 毛片一区二区三区| 狠狠色伊人亚洲综合成人| 久久69国产一区二区蜜臀| 美女精品自拍一二三四| 精品一区二区三区在线视频| 国产一区免费电影| 成人午夜在线播放| 91在线看国产| 在线观看日韩电影| 欧美四级电影网| 777xxx欧美| 精品久久人人做人人爱| 国产免费成人在线视频| 国产精品国产自产拍高清av| 亚洲精品国产精品乱码不99| 一区二区国产盗摄色噜噜| 亚洲国产视频网站| 寂寞少妇一区二区三区| 国产精品亚洲成人| 91成人在线精品| 欧美一区二区三区在线看| 26uuu精品一区二区| 国产精品国产三级国产aⅴ原创| 亚洲精品老司机| 秋霞影院一区二区| 国产a视频精品免费观看| 一本久道中文字幕精品亚洲嫩| 欧美日韩激情一区二区| 精品久久国产字幕高潮| 亚洲欧美一区二区在线观看| 亚洲 欧美综合在线网络| 精品一区二区免费| 91丨porny丨首页| 欧美精品v日韩精品v韩国精品v| 欧美精品一区二区三区蜜桃 | 在线观看亚洲精品| 538在线一区二区精品国产| 久久久久久9999| 一区二区三区精品视频在线| 激情五月婷婷综合| 色综合天天性综合| 欧美一三区三区四区免费在线看| 久久久精品一品道一区| 亚洲成av人片观看| 99精品久久只有精品| 欧美大片一区二区| 亚洲激情在线激情| 国产成人av一区| 日韩天堂在线观看| 洋洋av久久久久久久一区| 国产一区二区三区蝌蚪| 欧美日本国产视频| 中文字幕一区av| 国产一区二区三区四| 欧美日韩aaa| 亚洲欧美日韩中文播放| 精品一区二区久久久| 欧美日韩高清影院| 亚洲欧美另类小说视频| 成人影视亚洲图片在线| 欧美一区二区免费视频| 亚洲综合激情另类小说区| 成人高清免费在线播放| 精品国产乱码久久久久久老虎| 91精品1区2区| 亚洲精品一区二区三区福利| 午夜精品久久一牛影视| 91香蕉视频黄| 国产精品成人在线观看 | 一区二区三区高清| 国产v日产∨综合v精品视频| 日韩一区二区免费高清| 午夜国产精品影院在线观看| 日本道精品一区二区三区 | 欧美手机在线视频| 亚洲激情综合网| 91啪亚洲精品| 中文字幕综合网| 国产91精品精华液一区二区三区 | 欧美国产一区在线| 国产成人免费视频网站高清观看视频| 欧美不卡123| 国产在线精品一区二区不卡了| 欧美成人免费网站| 激情小说欧美图片|