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

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

?? ixfeaturectrl.c

?? 友善mini2440嵌入式
?? C
字號:
/** * @file IxFeatureCtrl.c * * @author Intel Corporation * @date 29-Jan-2003 * * @brief Feature Control Public API Implementation * *  * @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 --*/#include "IxOsal.h"#include "IxVersionId.h"#include "IxFeatureCtrl.h"/* Macro to read from the Feature Control Register */#define IX_FEATURE_CTRL_READ(result) \do { \ixFeatureCtrlExpMap(); \(result) = IX_OSAL_READ_LONG(ixFeatureCtrlRegister); \} while (0)/* Macro to write to the Feature Control Register */#define IX_FEATURE_CTRL_WRITE(value) \do { \ixFeatureCtrlExpMap(); \IX_OSAL_WRITE_LONG(ixFeatureCtrlRegister, (value)); \} while (0)/* * This is the offset of the feature register relative to the base of the * Expansion Bus Controller MMR. */#define IX_FEATURE_CTRL_REG_OFFSET (0x00000028)/* Boolean to mark the fact that the EXP_CONFIG address space was mapped */PRIVATE BOOL ixFeatureCtrlExpCfgRegionMapped = FALSE;/* Pointer holding the virtual address of the Feature Control Register */PRIVATE VUINT32 *ixFeatureCtrlRegister = NULL;/* Place holder to store the software configuration */PRIVATE BOOL swConfiguration[IX_FEATURECTRL_SWCONFIG_MAX];/* Flag to control swConfiguration[] is initialized once */PRIVATE BOOL swConfigurationFlag = FALSE ;/* Array containing component mask values */#ifdef __ixp42XUINT32 componentMask[IX_FEATURECTRL_MAX_COMPONENTS] = {    (0x1<<IX_FEATURECTRL_RCOMP),    (0x1<<IX_FEATURECTRL_USB),    (0x1<<IX_FEATURECTRL_HASH),    (0x1<<IX_FEATURECTRL_AES),    (0x1<<IX_FEATURECTRL_DES),    (0x1<<IX_FEATURECTRL_HDLC),    (0x1<<IX_FEATURECTRL_AAL),    (0x1<<IX_FEATURECTRL_HSS),    (0x1<<IX_FEATURECTRL_UTOPIA),    (0x1<<IX_FEATURECTRL_ETH0),    (0x1<<IX_FEATURECTRL_ETH1),    (0x1<<IX_FEATURECTRL_NPEA),    (0x1<<IX_FEATURECTRL_NPEB),    (0x1<<IX_FEATURECTRL_NPEC),    (0x1<<IX_FEATURECTRL_PCI),    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE,    (0x3<<IX_FEATURECTRL_UTOPIA_PHY_LIMIT),    (0x1<<IX_FEATURECTRL_UTOPIA_PHY_LIMIT_BIT2),    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE,    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE,    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE,    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE,    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE};#elif defined (__ixp46X)UINT32 componentMask[IX_FEATURECTRL_MAX_COMPONENTS] = {    (0x1<<IX_FEATURECTRL_RCOMP),    (0x1<<IX_FEATURECTRL_USB),    (0x1<<IX_FEATURECTRL_HASH),    (0x1<<IX_FEATURECTRL_AES),    (0x1<<IX_FEATURECTRL_DES),    (0x1<<IX_FEATURECTRL_HDLC),    IX_FEATURECTRL_COMPONENT_ALWAYS_AVAILABLE,  /* AAL component is always on */    (0x1<<IX_FEATURECTRL_HSS),    (0x1<<IX_FEATURECTRL_UTOPIA),    (0x1<<IX_FEATURECTRL_ETH0),    (0x1<<IX_FEATURECTRL_ETH1),    (0x1<<IX_FEATURECTRL_NPEA),    (0x1<<IX_FEATURECTRL_NPEB),    (0x1<<IX_FEATURECTRL_NPEC),    (0x1<<IX_FEATURECTRL_PCI),    (0x1<<IX_FEATURECTRL_ECC_TIMESYNC),    (0x3<<IX_FEATURECTRL_UTOPIA_PHY_LIMIT),    (0x1<<IX_FEATURECTRL_UTOPIA_PHY_LIMIT_BIT2), /* NOT TO BE USED */    (0x1<<IX_FEATURECTRL_USB_HOST_CONTROLLER),    (0x1<<IX_FEATURECTRL_NPEA_ETH),    (0x1<<IX_FEATURECTRL_NPEB_ETH),    (0x1<<IX_FEATURECTRL_RSA),    (0x3<<IX_FEATURECTRL_XSCALE_MAX_FREQ),    (0x1<<IX_FEATURECTRL_XSCALE_MAX_FREQ_BIT2)};#endif /* __ixp42X *//** * Forward declaration */PRIVATEvoid ixFeatureCtrlExpMap(void);PRIVATE void ixFeatureCtrlSwConfigurationInit(void);/** * Function to map EXP_CONFIG space */PRIVATEvoid ixFeatureCtrlExpMap(void){    UINT32 expCfgBaseAddress = 0;    /* If the EXP Configuration space has already been mapped then     * return */    if (ixFeatureCtrlExpCfgRegionMapped == TRUE)    {	return;    }    /* Map (get virtual address) for the EXP_CONFIG space */    expCfgBaseAddress = (UINT32)	(IX_OSAL_MEM_MAP(IX_OSAL_IXP400_EXP_BUS_REGS_PHYS_BASE,			   IX_OSAL_IXP400_EXP_REG_MAP_SIZE));    /* Assert that the mapping operation succeeded */    IX_OSAL_ASSERT(expCfgBaseAddress);    /* Set the address of the Feature register */    ixFeatureCtrlRegister =	(VUINT32 *) (expCfgBaseAddress + IX_FEATURE_CTRL_REG_OFFSET);    /* Mark the fact that the EXP_CONFIG space has already been mapped */    ixFeatureCtrlExpCfgRegionMapped = TRUE;}/** * Function definition: ixFeatureCtrlSwConfigurationInit * This function will only initialize software configuration once. */PRIVATE void ixFeatureCtrlSwConfigurationInit(void){  UINT32 i;  if (FALSE == swConfigurationFlag)  {    for (i=0; i<IX_FEATURECTRL_SWCONFIG_MAX ; i++)    {        /* By default, all software configuration are enabled */        swConfiguration[i]= TRUE ;    }    /*Make sure this function only initializes swConfiguration[] once*/    swConfigurationFlag = TRUE ;  }  }/** * Function definition: ixFeatureCtrlRead */IxFeatureCtrlReg ixFeatureCtrlRead (void){    IxFeatureCtrlReg result;#if CPU!=SIMSPARCSOLARIS    /* Read the feature control register */    IX_FEATURE_CTRL_READ(result);    return result;#else    /* Return an invalid value for VxWorks simulation */    result = 0xFFFFFFFF;    return result;#endif}/** * Function definition: ixFeatureCtrlWrite */voidixFeatureCtrlWrite (IxFeatureCtrlReg expUnitReg){#if CPU!=SIMSPARCSOLARIS    /* Write value to feature control register */    IX_FEATURE_CTRL_WRITE(expUnitReg);#endif}/** * Function definition: ixFeatureCtrlHwCapabilityRead */IxFeatureCtrlRegixFeatureCtrlHwCapabilityRead (void){   IxFeatureCtrlReg currentReg, hwCapability;    /* Capture a copy of feature control register */  currentReg = ixFeatureCtrlRead();   /* Try to enable all hardware components.    * Only software disable hardware can be enabled again */  ixFeatureCtrlWrite(0);    /* Read feature control register to know the hardware capability. */   hwCapability = ixFeatureCtrlRead();       /* Restore initial feature control value */  ixFeatureCtrlWrite(currentReg);  /* return Hardware Capability */  return hwCapability;  }/** * Function definition: ixFeatureCtrlComponentCheck */IX_STATUS ixFeatureCtrlComponentCheck (IxFeatureCtrlComponentType componentType){  IxFeatureCtrlReg expUnitReg;   UINT32 mask = 0;  /* Lookup mask of component */  mask=componentMask[componentType];  /* Check if mask is available or not */  if(IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE == mask)  {      return IX_FEATURE_CTRL_COMPONENT_DISABLED;  }  if(IX_FEATURECTRL_COMPONENT_ALWAYS_AVAILABLE == mask)  {      return IX_FEATURE_CTRL_COMPONENT_ENABLED;  }  /* Read feature control register to know current hardware capability. */   expUnitReg = ixFeatureCtrlRead();  /* For example: To check for Hashing Coprocessor (bit-2)    *                   expUniteg    = 0x0010   *                  ~expUnitReg   = 0x1101    *                  componentType = 0x0100   *    ~expUnitReg & componentType = 0x0100 (Not zero)                         */   /*    * Inverse the bit value because available component is 0 in value    */  expUnitReg = ~expUnitReg ;  if (expUnitReg & mask)  {     return (IX_FEATURE_CTRL_COMPONENT_ENABLED);  }     else  {       return (IX_FEATURE_CTRL_COMPONENT_DISABLED);  } }/** * Function definition: ixFeatureCtrlProductIdRead */IxFeatureCtrlProductIdixFeatureCtrlProductIdRead (){#if CPU!=SIMSPARCSOLARIS  IxFeatureCtrlProductId  pdId = 0 ;     /* Use ARM instruction to move register0 from coprocessor to ARM register */     #ifndef __wince    __asm("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(pdId) :); #else      #ifndef IN_KERNEL        BOOL  mode;#endif    extern  IxFeatureCtrlProductId AsmixFeatureCtrlProductIdRead();    #ifndef IN_KERNEL    mode = SetKMode(TRUE);#endif    pdId = AsmixFeatureCtrlProductIdRead();#ifndef IN_KERNEL    SetKMode(mode);#endif#endif  return (pdId);#else  /* Return an invalid value for VxWorks simulation */  return 0xffffffff;#endif}/** * Function definition: ixFeatureCtrlDeviceRead */IxFeatureCtrlDeviceIdixFeatureCtrlDeviceRead (){  return ((ixFeatureCtrlProductIdRead() >> IX_FEATURE_CTRL_DEVICE_TYPE_OFFSET)              & IX_FEATURE_CTRL_DEVICE_TYPE_MASK);} /* End function ixFeatureCtrlDeviceRead *//** * Function definition: ixFeatureCtrlSwConfigurationCheck */IX_STATUSixFeatureCtrlSwConfigurationCheck (IxFeatureCtrlSwConfig swConfigType){  if (swConfigType >= IX_FEATURECTRL_SWCONFIG_MAX)    {     ixOsalLog(IX_OSAL_LOG_LVL_WARNING,                IX_OSAL_LOG_DEV_STDOUT,               "FeatureCtrl: Invalid software configuraiton input.\n",               0, 0, 0, 0, 0, 0);       return IX_FEATURE_CTRL_SWCONFIG_DISABLED;  }  /* The function will only initialize once. */  ixFeatureCtrlSwConfigurationInit();    /* Check and return software configuration */  return  ((swConfiguration[(UINT32)swConfigType] == TRUE) ? IX_FEATURE_CTRL_SWCONFIG_ENABLED: IX_FEATURE_CTRL_SWCONFIG_DISABLED);}/** * Function definition: ixFeatureCtrlSwConfigurationWrite */voidixFeatureCtrlSwConfigurationWrite (IxFeatureCtrlSwConfig swConfigType, BOOL enabled){  if (swConfigType >= IX_FEATURECTRL_SWCONFIG_MAX)    {     ixOsalLog(IX_OSAL_LOG_LVL_WARNING,                IX_OSAL_LOG_DEV_STDOUT,               "FeatureCtrl: Invalid software configuraiton input.\n",               0, 0, 0, 0, 0, 0);       return;  }  /* The function will only initialize once. */  ixFeatureCtrlSwConfigurationInit();    /* Write software configuration */  swConfiguration[(UINT32)swConfigType]=enabled ;}/** * Function definition: ixFeatureCtrlIxp400SwVersionShow */voidixFeatureCtrlIxp400SwVersionShow (void){    printf ("\nIXP400 Software Release %s %s\n\n", IX_VERSION_ID, IX_VERSION_INTERNAL_ID);}/** * Function definition: ixFeatureCtrlSoftwareBuildGet */IxFeatureCtrlBuildDeviceixFeatureCtrlSoftwareBuildGet (void){    #ifdef __ixp42X    return IX_FEATURE_CTRL_SW_BUILD_IXP42X;    #else    return IX_FEATURE_CTRL_SW_BUILD_IXP46X;    #endif}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲伦在线观看| 国内成人免费视频| 狠狠久久亚洲欧美| 色综合视频在线观看| 精品国产制服丝袜高跟| 亚洲成a天堂v人片| eeuss鲁一区二区三区| 日韩欧美国产一区二区三区| 有码一区二区三区| 国产在线精品一区二区不卡了| 欧美在线视频日韩| 成人免费在线播放视频| 国产一区二区三区国产| 欧美videofree性高清杂交| 亚洲国产精品一区二区尤物区| 99久久综合国产精品| 国产亚洲自拍一区| 狠狠久久亚洲欧美| 91精品国产麻豆国产自产在线 | 三级欧美韩日大片在线看| 成人久久久精品乱码一区二区三区| 日韩一级视频免费观看在线| 一区二区三区中文字幕电影| 91亚洲精品久久久蜜桃网站| 欧美国产在线观看| 丰满放荡岳乱妇91ww| 久久品道一品道久久精品| 麻豆国产一区二区| 日韩欧美国产午夜精品| 久久99精品久久久久久| 精品国内片67194| 激情av综合网| 国产偷国产偷精品高清尤物 | 不卡在线视频中文字幕| 久久久久久影视| 国产寡妇亲子伦一区二区| 国产欧美日韩在线观看| 国产精品综合av一区二区国产馆| 精品日韩成人av| 国产一区二区影院| 亚洲国产精品av| 不卡一区二区三区四区| 一区二区国产盗摄色噜噜| 91久久线看在观草草青青| 亚洲综合色网站| 日韩一区国产二区欧美三区| 精品无人区卡一卡二卡三乱码免费卡| 精品欧美乱码久久久久久1区2区| 国产中文字幕一区| 中文字幕av不卡| 91视频国产观看| 天堂成人免费av电影一区| 日韩一区二区视频| 国产成人亚洲精品青草天美| 亚洲三级在线观看| 91精品午夜视频| 国产在线播放一区二区三区| 亚洲视频中文字幕| 日韩一级大片在线观看| 大白屁股一区二区视频| 亚洲国产aⅴ天堂久久| 精品国产免费视频| 99精品一区二区| 天天综合日日夜夜精品| 日本一区二区三区四区| 欧美日韩一级片网站| 国产精品影视在线观看| 亚洲人xxxx| 久久综合狠狠综合| 欧美做爰猛烈大尺度电影无法无天| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品全国免费观看高清| 777奇米四色成人影色区| 高清不卡在线观看av| 五月婷婷激情综合| 中文字幕日韩一区| 精品国产1区2区3区| 91久久免费观看| 成人免费观看av| 轻轻草成人在线| 一区二区欧美精品| 久久精品人人做人人综合| 欧美丰满嫩嫩电影| 色中色一区二区| 懂色av一区二区三区蜜臀| 日韩电影一区二区三区| 亚洲色欲色欲www| 久久久亚洲国产美女国产盗摄 | 91污在线观看| 国产精品中文字幕一区二区三区| 亚洲成人三级小说| 国产精品成人午夜| 国产午夜精品一区二区三区视频| 欧美高清精品3d| 欧美性生活久久| 91网页版在线| 99久久伊人久久99| 国产白丝网站精品污在线入口| 蜜桃一区二区三区在线| 亚洲国产精品精华液网站| 日韩毛片精品高清免费| 中文字幕成人网| 国产精品私人影院| 久久久91精品国产一区二区三区| 日韩三级高清在线| 日韩一区二区三区高清免费看看| 在线电影一区二区三区| 欧美日韩精品一二三区| 欧美日韩一级片网站| 欧美日韩成人激情| 欧美精品久久天天躁| 宅男噜噜噜66一区二区66| 91.成人天堂一区| 欧美一区二区三区白人| 正在播放亚洲一区| 欧美成人午夜电影| 久久一日本道色综合| 久久精品在线免费观看| 久久久精品国产免大香伊| 久久精品在这里| 中文字幕 久热精品 视频在线| 国产精品丝袜91| 亚洲精品高清视频在线观看| 亚洲永久精品国产| 亚洲国产精品久久久男人的天堂 | 亚洲精品国久久99热| 一区二区三区 在线观看视频| 亚洲午夜激情av| 日本美女一区二区三区视频| 久久99精品久久久久久| 成人成人成人在线视频| 色综合久久综合中文综合网| 欧美日韩久久久一区| 久久综合色婷婷| 国产精品免费久久久久| 夜夜亚洲天天久久| 日本欧洲一区二区| 国产精品亚洲а∨天堂免在线| www.欧美.com| 91精品国产aⅴ一区二区| 国产亚洲欧洲997久久综合 | 久久久国际精品| 国产精品乱人伦一区二区| 亚洲一区二区欧美| 精品一区二区三区久久| www.在线成人| 日韩欧美高清在线| 亚洲精品视频在线| 麻豆精品国产91久久久久久| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 日韩欧美成人午夜| 国产精品情趣视频| 欧美aaa在线| 色综合久久久网| 欧美一区二区三区在| 最新国产精品久久精品| 久久精品国产99国产| 91美女片黄在线观看91美女| 日韩精品专区在线| 亚洲自拍偷拍图区| 成人免费毛片app| 精品国产精品一区二区夜夜嗨| 亚洲精品国久久99热| 国产成人免费高清| 欧美一区二区三区四区视频| 亚洲三级久久久| 国产高清不卡二三区| 欧美一区二区黄| 亚洲精品高清在线观看| 成人性生交大合| 日韩欧美国产小视频| 亚洲成人激情av| 成+人+亚洲+综合天堂| 久久综合色婷婷| 青青国产91久久久久久| 欧美午夜精品理论片a级按摩| 欧美国产精品一区| 国产在线精品一区二区| 欧美大黄免费观看| 日韩成人伦理电影在线观看| 欧美曰成人黄网| 伊人一区二区三区| 99精品视频中文字幕| 国产日韩欧美综合一区| 青青青爽久久午夜综合久久午夜 | 精品sm捆绑视频| 天天射综合影视| 制服丝袜激情欧洲亚洲| 亚洲第一主播视频| 欧美色男人天堂| 亚洲综合一区二区三区| 在线亚洲人成电影网站色www| 日韩理论电影院| 91麻豆免费在线观看| 亚洲三级在线免费| 色香蕉成人二区免费| 亚洲欧美激情视频在线观看一区二区三区| 高清成人在线观看| 亚洲欧美综合网| 91福利资源站|