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

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

?? zl5011xpki.c

?? Zalink50114----TDMoIP芯片驅(qū)動源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:

   /* set Mac Address */
   if( status== ZL5011X_OK)
   {
      status= zl5011xPkiSetMacAddress(zl5011xParams, portNum, macAddress);
   }

   /* set packet length  */
   if( status== ZL5011X_OK)
   {
      status= zl5011xPkiSetMaxPacketLength(zl5011xParams, portNum, pktLength);
   }

   /* set packet filtering mask
    * broadcast, multicast, non-matching unicast, respectively. */
   if( status== ZL5011X_OK)
   {
      status= zl5011xPkiSetPacketFiltering(zl5011xParams,
                                          portNum,
                                          filterBroadcast,
                                          filterMulticast,
                                          filterWrongUnicast);
   }

   /* set VLAN aware enable / disable */
   if( status== ZL5011X_OK)
   {
      status= zl5011xPkiSetVlanMode(zl5011xParams, portNum, vlanEnabled );
   }

   /* Resets all the counters in the MAC to zero. */
   if( status == ZL5011X_OK)
   {
      Uint32T mask = 0;

      /* For long packets, set the reg_long_pkt bit*/
      if ((pktLength > 1518) || ((vlanEnabled == ZL5011X_TRUE) && (pktLength > 1522)))
      {
         mask = ZL5011X_1BIT_MASK << ZL5011X_PKI_CTRL_REG_LONG_PKT;
      }

      /* pulse reset bit for all stats reset */
      mask |= ZL5011X_1BIT_MASK << ZL5011X_PKI_CTRL_REG_STA_RESET;

      status = zl5011xReadModWrite(zl5011xParams, ZL5011X_PKI0_CTRL,
                              mask, mask);
   }
   if( status == ZL5011X_OK)
   {
      /* Take reset bit low to complete the pulse */
      status = zl5011xReadModWrite(zl5011xParams, ZL5011X_PKI0_CTRL, 0,
                              (ZL5011X_1BIT_MASK << ZL5011X_PKI_CTRL_REG_STA_RESET));
   }

   /* zero the structure contents */
   if( status == ZL5011X_OK)
   {
      (void)memset( &(zl5011xParams->pki.lanPort[ portNum].macStats), 0,
                                    sizeof(zl5011xParams->pki.lanPort[ portNum].macStats));

      /*    If 64 bit stats, set which counters should wrap according to MIB  */
      if(macStats64bits == ZL5011X_TRUE)
      {
         status= zl5011xPkiSetWrapInterruptMask(zl5011xParams, portNum,
                                                ZL5011X_PKI_MASK_SPECIFIED_64BIT );
      }
   }
   return(status);
}

/*******************************************************************************
 Function:
    zl5011xPkiSetMacAddress

 Description:
   This writes the 48 bit address to the two registers.

 Inputs:
    zl5011xParams      Pointer to the structure for this device instance
    Uint8T  portNum        - port number 0 to 3
    Uint8T * macAddress, - MAC address - 6 bytes

 Outputs:

 Returns:
    zlStatusE

 Remarks:

*******************************************************************************/
extern zlStatusE zl5011xPkiSetMacAddress(zl5011xParamsS *zl5011xParams,
                                   Uint8T  portNum,
                                   Uint8T * macAddress)
{
   zlStatusE status = ZL5011X_OK;
   Uint32T pkiAddress=0, i;

   ZL5011X_TRACE(ZL5011X_PKI_FN_ID, "zl5011xPkiSetMacAddress: port number %d ", portNum, 0,
                                                                     0, 0, 0, 0);

   /* write MAC address in ZL5011X_PKIn_ADR_.. registers */
   if( status== ZL5011X_OK)
   {
      pkiAddress= ZL5011X_PKI0_ADR_LO+ (2* portNum* sizeof( Uint32T));
      for( i= 0; (i< ZL5011X_MAC_SIZE )&& (status == ZL5011X_OK); i++)
      {
         switch( i)
         {
            case 0:
               status = zl5011xWrite(zl5011xParams, pkiAddress, *macAddress);
            break;
            case 1:
               status = zl5011xReadModWrite(zl5011xParams,
                                             pkiAddress,
                                             (Uint32T)(*(macAddress+ 1))<< 8,
                                             ZL5011X_8BIT_MASK<< 8);
            break;
            case 2:
               status = zl5011xReadModWrite(zl5011xParams,
                                             pkiAddress,
                                             (Uint32T)(*(macAddress+ 2))<< 16,
                                             ZL5011X_8BIT_MASK<< 16);
            break;
            case 3:
               status = zl5011xReadModWrite(zl5011xParams,
                                             pkiAddress,
                                             (Uint32T)(*(macAddress+ 3))<< 24,
                                             ZL5011X_8BIT_MASK<< 24);
            break;
            case 4: /* Move up to register for upper 2 numbers */
               pkiAddress= ZL5011X_PKI0_ADR_HI+ 2* portNum* sizeof( Uint32T);
               status = zl5011xWrite(zl5011xParams,  pkiAddress,
                                                   (Uint32T)(*(macAddress+ 4)));
            break;
            case 5:
               status = zl5011xReadModWrite(zl5011xParams,
                                             pkiAddress,
                                             (Uint32T)(*(macAddress+ 5))<< 8,
                                             ZL5011X_8BIT_MASK<< 8);
            break;
            default:
            break;
         }
         if( status== ZL5011X_OK)
         {
            zl5011xParams->pki.lanPort[ portNum].macAddress[i ]= *(macAddress+ i);
         }
      }
      ZL5011X_TRACE(ZL5011X_PKI_FN_ID, "zl5011xPkiSetMacAddress: mac address %.2x %.2x %.2x %.2x %.2x %.2x",
            zl5011xParams->pki.lanPort[ portNum].macAddress[0 ],
            zl5011xParams->pki.lanPort[ portNum].macAddress[1 ],
            zl5011xParams->pki.lanPort[ portNum].macAddress[2 ],
            zl5011xParams->pki.lanPort[ portNum].macAddress[3 ],
            zl5011xParams->pki.lanPort[ portNum].macAddress[4 ],
            zl5011xParams->pki.lanPort[ portNum].macAddress[5 ]);
   }
   return(status);
}

/*******************************************************************************
 Function:
    zl5011xPkiSetMaxPacketLength

 Description:
   This writes the max pkt length to relevant port Frame Size Register.

 Inputs:
    zl5011xParams      Pointer to the structure for this device instance
    Uint8T  portNum        - port number 0 to 3
    Uint32T   pktLength    - max packet length

 Outputs:

 Returns:
    zlStatusE

 Remarks:

*******************************************************************************/
extern zlStatusE zl5011xPkiSetMaxPacketLength(zl5011xParamsS *zl5011xParams,
                                             Uint8T  portNum,
                                             Uint32T   pktLength )
{
   zlStatusE status = ZL5011X_OK;
   Uint32T pkiAddress=0;

   ZL5011X_TRACE(ZL5011X_PKI_FN_ID, "zl5011xPkiSetMaxPacketLength: port number %d packet length %ld ",
                           portNum, pktLength, 0, 0, 0, 0);

   /* check pktLength in range */
   if( pktLength > ZL5011X_PKI_FRAME_SIZE_BITS)
   {
      status= ZL5011X_PARAMETER_INVALID;
   }

   /* write max pkt length to relevant port Frame Size Register */
   if( status== ZL5011X_OK)
   {
      pkiAddress= ZL5011X_PKI0_FRAME_SIZE+ (portNum* sizeof( Uint32T));
      status = zl5011xReadModWrite(zl5011xParams,  pkiAddress, pktLength, ZL5011X_PKI_FRAME_SIZE_BITS);
      if( status== ZL5011X_OK)
      {
         zl5011xParams->pki.lanPort[ portNum].maxPacketLength= pktLength;
      }
   }
   return(status);
}

/*******************************************************************************
 Function:
    zl5011xPkiEnablePort

 Description:
   When disabled, the port is held in reset. and the linkdown bit is set.
   The statistics counters and interrrupts are disabled. Note: on ENABLE the
   wrap interrupts must be set seperately.

 Inputs:
    zl5011xParams      Pointer to the structure for this device instance
    Uint8T  portNum        - port number 0 to 3
    zl5011xBooleanE portEnabled - Port enable / disable

 Outputs:

 Returns:
    zlStatusE

 Remarks:

*******************************************************************************/
extern zlStatusE zl5011xPkiEnablePort(zl5011xParamsS *zl5011xParams,
                                     Uint8T  portNum,
                                     zl5011xBooleanE portEnabled )
{
   zlStatusE status = ZL5011X_OK;
   Uint32T pkiAddress = 0;
   Uint8T linkdownBitReg = portNum;


   ZL5011X_TRACE(ZL5011X_PKI_FN_ID, "zl5011xPkiEnablePort: port number %d enable %d",
                           portNum, portEnabled, 0, 0, 0, 0);


   if( status== ZL5011X_OK)
   {
      /* Find which register controls the linkdown LED for this port.*/
      switch (zl5011xParams->deviceType)
      {
         case ZL_DEVICE_ZL50110:
         case ZL_DEVICE_ZL50114:
         case ZL_DEVICE_ZL50115:
         case ZL_DEVICE_ZL50116:
         case ZL_DEVICE_ZL50117:
         case ZL_DEVICE_ZL50118:
         case ZL_DEVICE_ZL50119:
         case ZL_DEVICE_ZL50120:
         case ZL_DEVICE_ZL30300:
         case ZL_DEVICE_ZL30301:
         case ZL_DEVICE_ZL30302:
            linkdownBitReg = portNum ^ 0x3;
            break;

         default:
            /* For remaining devices the linkdown LED is controlled directly by the
               port control register */
            linkdownBitReg = portNum;
            break;
      }

      if(portEnabled == ZL5011X_FALSE)
      {  /* Actions to disable the port */

         /* disable interrupts */
         status= zl5011xPkiSetWrapInterruptMask(zl5011xParams, portNum,
                                                 ZL5011X_ZERO_ALL  );

         /* write relevant Control Reg link_down bit HIGH to take the link down and to hold it in reset */
         if( status== ZL5011X_OK)
         {
            pkiAddress= ZL5011X_PKI0_CTRL+ (portNum* sizeof( Uint32T));
            status = zl5011xReadModWrite(zl5011xParams, pkiAddress,
                     (ZL5011X_1BIT_MASK << ZL5011X_PKI_CTRL_REG_LINKDOWN) | (ZL5011X_1BIT_MASK << ZL5011X_PKI_CTRL_REG_N_RESET),
                     (ZL5011X_1BIT_MASK << ZL5011X_PKI_CTRL_REG_LINKDOWN) | (ZL5011X_1BIT_MASK << ZL5011X_PKI_CTRL_REG_N_RESET));
         }

        /* For devices that require it write relevant Control Reg bit HIGH to indicate
           the linkdown state */
         if( status== ZL5011X_OK)
         {
            if (portNum != linkdownBitReg)
            {
               pkiAddress= ZL5011X_PKI0_CTRL+ (linkdownBitReg* sizeof( Uint32T));
               status = zl5011xReadModWrite(zl5011xParams, pkiAddress,
                        (ZL5011X_1BIT_MASK << ZL5011X_PKI_CTRL_REG_LINKDOWN),
                        (ZL5011X_1BIT_MASK << ZL5011X_PKI_CTRL_REG_LINKDOWN));
            }
         }

         /* and update the status in the device structure */
         if( status== ZL5011X_OK)
         {
            zl5011xParams->pki.lanPort[ portNum].macControl.linkDown= ZL5011X_TRUE;
         }
      }
      else if(portEnabled == ZL5011X_TRUE)/* to enable the port */
      {
         /* make sure port is out of reset and the linkdown bit is low (i.e. link up) */
         if( status== ZL5011X_OK)
         {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一个色在线综合| 97se亚洲国产综合在线| 五月天久久比比资源色| 一区二区三区av电影| 亚洲欧美日韩在线| 亚洲人一二三区| 亚洲天堂福利av| 一区二区在线观看视频| 亚洲精品国产a久久久久久| 亚洲欧美色图小说| 一区二区三区四区视频精品免费 | 日韩1区2区3区| 五月天久久比比资源色| 视频在线在亚洲| 日本不卡免费在线视频| 精品亚洲欧美一区| 国产精品1区2区| youjizz久久| 色婷婷狠狠综合| 在线成人av影院| 欧美大片在线观看| 久久久另类综合| 中文字幕一区二区三区视频| 亚洲视频在线观看一区| 亚洲国产成人porn| 久久成人免费电影| 国产精品亚洲专一区二区三区 | 一本色道久久加勒比精品| 欧美影片第一页| 91精品国产aⅴ一区二区| 日韩一区二区影院| 久久久精品2019中文字幕之3| 国产蜜臀av在线一区二区三区| 国产精品人妖ts系列视频| 一区二区三区欧美视频| 另类小说图片综合网| 国产suv精品一区二区6| 91丝袜国产在线播放| 一区二区三区四区蜜桃| 蜜桃视频在线观看一区| 国产aⅴ综合色| 欧洲一区在线电影| 精品欧美一区二区久久 | 国产精品自产自拍| heyzo一本久久综合| 欧美乱妇15p| 国产三级一区二区三区| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲天堂网中文字| 久久99深爱久久99精品| 91色综合久久久久婷婷| 日韩欧美二区三区| 中文字幕一区二区三区乱码在线 | 韩国视频一区二区| 欧美三级三级三级爽爽爽| 精品99久久久久久| 亚洲免费观看高清| 国产成人精品免费在线| 欧美日韩国产大片| 亚洲少妇屁股交4| 久久99国产精品麻豆| 91免费精品国自产拍在线不卡| 91精品国产一区二区三区香蕉| 国产精品污www在线观看| 天堂蜜桃一区二区三区| 成人免费va视频| 欧美大片日本大片免费观看| 亚洲一本大道在线| 成人美女在线视频| 精品精品国产高清一毛片一天堂| 亚洲色图在线看| 国产成人综合网| 日韩一区二区在线看| 亚洲成人自拍偷拍| 91丝袜高跟美女视频| 国产精品色呦呦| 国产中文字幕一区| 欧美第一区第二区| 天堂va蜜桃一区二区三区漫画版| 97se亚洲国产综合在线| 久久久久久久久岛国免费| 久久国产精品无码网站| 欧美日产在线观看| 亚洲综合成人在线| 不卡一区二区三区四区| 久久久亚洲精品石原莉奈| 美腿丝袜一区二区三区| 欧美久久一二区| 亚洲一区二区精品视频| 一本到不卡免费一区二区| 国产精品免费看片| 成人动漫中文字幕| 亚洲国产高清在线| 粉嫩av一区二区三区粉嫩 | 日韩电影免费一区| 欧美日韩免费一区二区三区 | 日本欧美大码aⅴ在线播放| 欧美日韩在线三级| 亚洲高清免费观看高清完整版在线观看| 成人av电影在线观看| 国产精品美女久久福利网站 | 国产丝袜美腿一区二区三区| 国产精品系列在线观看| 久久精品亚洲麻豆av一区二区| 激情五月激情综合网| xvideos.蜜桃一区二区| 国产精品一区二区在线看| 亚洲精品一区二区三区蜜桃下载 | 成人深夜在线观看| 国产精品国产三级国产aⅴ原创| 国产成人综合在线播放| 国产清纯白嫩初高生在线观看91| 国产69精品久久久久毛片| 国产精品欧美一级免费| 成人精品高清在线| 亚洲视频免费在线| 色av一区二区| 午夜一区二区三区在线观看| 欧美日本在线观看| 人人超碰91尤物精品国产| 欧美成人aa大片| 国产精一区二区三区| 国产精品视频观看| 在线观看免费成人| 日韩精品成人一区二区在线| 精品少妇一区二区三区在线视频| 国产一区二区三区免费播放| 欧美高清在线一区| 91免费看`日韩一区二区| 日韩主播视频在线| 精品少妇一区二区三区视频免付费| 国产乱码精品1区2区3区| 国产精品高潮呻吟| 欧美日韩亚洲综合在线| 国产一区二区三区在线观看精品| 欧美激情一区不卡| 欧美性受极品xxxx喷水| 蜜桃视频在线观看一区二区| 亚洲国产精品v| 欧美日韩国产一区| 国产福利精品一区| 夜夜揉揉日日人人青青一国产精品| 51午夜精品国产| 国产成人在线视频网址| 一区二区三区视频在线观看| 5566中文字幕一区二区电影 | 日韩欧美视频在线| av一区二区久久| 美女网站在线免费欧美精品| 国产精品国产三级国产aⅴ入口| 欧美视频一区二区三区在线观看| 九色|91porny| 亚洲激情一二三区| 久久亚洲综合色一区二区三区 | 久久综合九色欧美综合狠狠| 一本大道久久a久久综合婷婷| 麻豆成人久久精品二区三区小说| 国产精品国模大尺度视频| 7777精品伊人久久久大香线蕉超级流畅 | 久久精品国产在热久久| 亚洲欧美欧美一区二区三区| 欧美xxxx老人做受| 日本高清无吗v一区| 国产精品中文欧美| 视频一区二区三区中文字幕| 国产精品久久免费看| 欧美va亚洲va在线观看蝴蝶网| 91在线观看下载| 国产原创一区二区| 亚洲无人区一区| 日本一区二区电影| 日韩欧美一级特黄在线播放| 日本久久一区二区| 国产91露脸合集magnet| 日韩va欧美va亚洲va久久| 亚洲欧美另类久久久精品| 国产无遮挡一区二区三区毛片日本| 欧美日韩一区中文字幕| 99精品欧美一区二区蜜桃免费| 久草精品在线观看| 日本不卡视频一二三区| 亚洲电影在线播放| 日韩伦理av电影| 国产拍揄自揄精品视频麻豆| 精品日韩欧美在线| 日韩欧美一二三| 欧美一级在线免费| 欧美日韩一区二区三区在线| 91免费观看在线| 91一区二区三区在线观看| 福利视频网站一区二区三区| 国内精品伊人久久久久av一坑| 欧美a级一区二区| 亚洲超丰满肉感bbw| 亚洲一级二级三级| 亚洲男人的天堂在线aⅴ视频| 中文字幕一区二区三区在线不卡| 国产精品私人自拍| 中文字幕精品一区二区精品绿巨人| 欧美电影免费观看高清完整版在线|