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

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

?? zl5011xtif.c

?? Zalink50114----TDMoIP芯片驅動源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
 Inputs:
   zl5011xParams   Pointer to the structure for this device instance
   reverse        boolean to control byte construction order

 Outputs:
   None

 Returns:
   zlStatusE

 Remarks:
   None

*******************************************************************************/

zlStatusE zl5011xTifReverseBitOrder(zl5011xParamsS *zl5011xParams, zl5011xBooleanE reverse)
{
   zlStatusE status = ZL5011X_OK;
   Uint32T bits, bitMask;

   ZL5011X_TRACE(ZL5011X_TIF_FN_ID, "zl5011xTifReverseBitOrder: mode %d",
         reverse, 0, 0, 0, 0, 0);

   /* check parameter is in range */
   status = ZL5011X_CHECK_BOOLEAN(reverse);

   if (status == ZL5011X_OK)
   {
      bits = (Uint32T)reverse << ZL5011X_TIF_BIT_ORDER_BIT;
      bitMask = ZL5011X_1BIT_MASK << ZL5011X_TIF_BIT_ORDER_BIT;

      status = zl5011xUpdateRegisters(zl5011xParams, ZL5011X_TIF_CTRL_REG,
               &zl5011xParams->wanIf.wanIfControl, bits, bitMask);

      zl5011xParams->wanIf.reverseBitOrder = reverse;
   }

   return status;
}

/*******************************************************************************

 Function:
   zl5011xTifEnableBitStuffing

 Description:
   If the mode is unframed DS1 or J2 then bit stuffing can be enabled.
   This is where the non-byte bits from each frame are added to the last byte of the
   so-called frame.
   i.e. for DS1, there is 1 frame bit and 24 timeslots. The TIF takes an arbitrary
   alignment and counts 24 timeslots. If bit stuffing is enabled, then the next bit
   (last in the frame) is tagged onto the 24th timeslot, giving the last byte equal to
   9 bits!
   The same happens in J2, except that there are 5 remainder bits in the frame after
   98 timeslots.

 Inputs:
   zl5011xParams      Pointer to the structure for this device instance
   enable            TRUE to enable bit stuffing, FALSE to disable

 Outputs:
   None

 Returns:
   zlStatusE

 Remarks:
    None

*******************************************************************************/

zlStatusE zl5011xTifEnableBitStuffing(zl5011xParamsS *zl5011xParams,
      zl5011xBooleanE enable)
{
   Uint32T bit = 0, bitMask;
   zlStatusE status =  ZL5011X_OK;

   status = ZL5011X_CHECK_BOOLEAN(enable);

   if (status == ZL5011X_OK)
   {
      /* bit stuffing is only valid when the mode is unframed DS1 or J2 */
      if ((enable == ZL5011X_TRUE) &&
         ((zl5011xParams->wanIf.wanMode == ZL5011X_WAN_UNFRAMED) &&
         ((zl5011xParams->wanIf.wanLiuFreq != ZL5011X_WAN_LIU_FREQ_1_544M) &&
         (zl5011xParams->wanIf.wanLiuFreq != ZL5011X_WAN_LIU_FREQ_6_312M))))
      {
         status = ZL5011X_PARAMETER_INVALID;
      }
   }

   if (status == ZL5011X_OK)
   {
      ZL5011X_TRACE(ZL5011X_TIF_FN_ID, "zl5011xTifEnableBitStuffing: %d", enable, 0, 0, 0, 0, 0);

      if (enable == ZL5011X_FALSE)
      {
         bit =  ZL5011X_1BIT_MASK << ZL5011X_TIF_STUFFING_BIT;
      }

      bitMask  = ZL5011X_1BIT_MASK << ZL5011X_TIF_STUFFING_BIT;

      status = zl5011xUpdateRegisters(zl5011xParams, ZL5011X_TIF_CTRL_REG,
               &zl5011xParams->wanIf.wanIfControl, bit, bitMask);

      zl5011xParams->wanIf.wanBitStuffingEnabled = enable;
   }

   return(status);
}

/*******************************************************************************

 Function:
   zl5011xTifBerConfigure

 Description:
   Used to setup the BER for both generate and receive directions.

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance
   regAddress     address of the register in the device
   structAddress  address to use for storing the settings
   berDirection   direction for the BER to connect to
   berPattern     which BER pattern to use
   berStream      which stream to use for the BER
   berStartChannel   which channel to start the BER in
   berEndChannel     which channel to end the BER in

 Outputs:
   None

 Returns:
   zlStatusE

 Remarks:
   None

*******************************************************************************/

zlStatusE zl5011xTifBerConfigure(zl5011xParamsS *zl5011xParams,
   Uint32T regAddress, zl5011xWanBerConfigS *structAddress,
   zl5011xWanIfBerDirectionE berDirection, zl5011xWanIfBerPatternE berPattern,
   Uint8T berStream, Uint8T berStartChannel, Uint8T berEndChannel)
{
   Uint32T bits;
   zlStatusE status =  ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_TIF_FN_ID,
         "zl5011xTifBerConfigure: dir %d, patt %d, stream %d, start %d, end %d",
         berDirection, berPattern, berStream, berStartChannel, berEndChannel, 0);

   /* check the parameters */
   status = ZL5011X_CHECK_WAN_IF_BER_DIRECTION(berDirection);

   if (status == ZL5011X_OK)
   {
      status = ZL5011X_CHECK_WAN_IF_BER_PATTERN(berPattern);
   }

   /* if unstructured, then ignore the channel parameters passed in */
   if (zl5011xParams->wanIf.wanConnectionMode == ZL5011X_WAN_CONNECTION_UNFRAMED)
   {
      berStartChannel = 0;
      berEndChannel = 0;
   }
   else
   {
      if (status == ZL5011X_OK)
      {
         status = zl5011xCheckChannelRange(zl5011xParams, berStartChannel);
      }

      if (status == ZL5011X_OK)
      {
         status = zl5011xCheckChannelRange(zl5011xParams, berEndChannel);
      }

      if (status == ZL5011X_OK)
      {
         if (berEndChannel < berStartChannel)
         {
            status = ZL5011X_PARAMETER_INVALID;
         }
      }
   }

   if (status == ZL5011X_OK)
   {
      status = zl5011xCheckStreamRange(zl5011xParams, berStream);
   }

   /* assemble the register contents */
   if (status == ZL5011X_OK)
   {
      bits = (berDirection << ZL5011X_TIF_BER_DIRECTION_BIT) |
            (berPattern << ZL5011X_TIF_BER_PATTERN_BIT) |
            (ZL5011X_1BIT_MASK << ZL5011X_TIF_BER_ENABLE_BIT) |
            (berStartChannel << ZL5011X_TIF_BER_CHANNEL_START_BITS) |
            ((berEndChannel - berStartChannel) << ZL5011X_TIF_BER_CHANNEL_COUNT_BITS) |
            (berStream << ZL5011X_TIF_BER_STREAM_BITS);

      status = zl5011xWrite(zl5011xParams, regAddress, bits);

      structAddress->berDirection = berDirection;
      structAddress->berPattern = berPattern;
      structAddress->berStream = berStream;
      structAddress->berStartChannel = berStartChannel;
      structAddress->berEndChannel = berEndChannel;
      structAddress->berEnabled = ZL5011X_TRUE;
   }

   return(status);
}

/*******************************************************************************

 Function:
   zl5011xTifBerConfigureGenerator

 Description:
   Used to setup the BER for generator

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance
   berDirection   direction for the BER to connect to :
                  ZL5011X_WAN_BER_DIRECTION_TX for wan Tx (TDM o/p)
                  ZL5011X_WAN_BER_DIRECTION_RX for wan Rx (TDM i/p - pkt o/p)
   berPattern     which BER pattern to use
   berStream      which stream to use for the BER
   berStartChannel   which channel to start the BER in
   berEndChannel     which channel to end the BER in

 Outputs:
   None

 Returns:
   zlStatusE

 Remarks:
   None

*******************************************************************************/

zlStatusE zl5011xTifBerConfigureGenerator(zl5011xParamsS *zl5011xParams,
   zl5011xWanIfBerDirectionE berDirection, zl5011xWanIfBerPatternE berPattern,
   Uint8T berStream, Uint8T berStartChannel, Uint8T berEndChannel)
{
   zl5011xWanIfBerDirectionE dir;
   zlStatusE status =  ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_TIF_FN_ID,
         "zl5011xTifBerConfigureGenerator:",
         0, 0, 0, 0, 0, 0);

   status = ZL5011X_CHECK_WAN_IF_BER_PATTERN(berDirection);

   if (status == ZL5011X_OK)
   {
      /* flip over the direction control to allow for terminology in the
         TIF block */
      if (berDirection == ZL5011X_WAN_BER_DIRECTION_RX)
      {
         dir = ZL5011X_WAN_BER_DIRECTION_TX;
      }
      else
      {
         dir = ZL5011X_WAN_BER_DIRECTION_RX;
      }

      status = zl5011xTifBerConfigure(zl5011xParams,
            ZL5011X_TIF_BER_TX_REG, &(zl5011xParams->wanIf.wanBerGenerate),
            dir , berPattern, berStream, berStartChannel, berEndChannel);
   }

   return(status);
}

/*******************************************************************************

 Function:
   zl5011xTifBerConfigureReceiver

 Description:
   Used to setup the BER receiver

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance
   berDirection   direction for the BER to connect to :
                  ZL5011X_WAN_BER_DIRECTION_RX for wan Rx (TDM i/p)
                  ZL5011X_WAN_BER_DIRECTION_TX for wan Tx (TDM o/p - pkt i/p)
   berPattern     which BER pattern to use
   berStream      which stream to use for the BER
   berStartChannel   which channel to start the BER in
   berEndChannel     which channel to end the BER in

 Outputs:
   None

 Returns:
   zlStatusE

 Remarks:
   None

*******************************************************************************/

zlStatusE zl5011xTifBerConfigureReceiver(zl5011xParamsS *zl5011xParams,
   zl5011xWanIfBerDirectionE berDirection, zl5011xWanIfBerPatternE berPattern,
   Uint8T berStream, Uint8T berStartChannel, Uint8T berEndChannel)
{
   zlStatusE status =  ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_TIF_FN_ID,
         "zl5011xTifBerConfigureReceiver:",
         0, 0, 0, 0, 0, 0);

   status = zl5011xTifBerConfigure(zl5011xParams,
         ZL5011X_TIF_BER_RX_REG, &(zl5011xParams->wanIf.wanBerReceive),
         berDirection, berPattern, berStream, berStartChannel, berEndChannel);

   if (status == ZL5011X_OK)
   {
      /* set the reset bit - this 0 to 1 transition will force a reset */
      status = zl5011xReadModWrite(zl5011xParams, ZL5011X_TIF_BER_RX_REG,
            ZL5011X_1BIT_MASK << ZL5011X_TIF_BER_RESET_BIT,
            ZL5011X_1BIT_MASK << ZL5011X_TIF_BER_RESET_BIT);
   }

   return(status);
}

/*******************************************************************************

 Function:
   zl5011xTifBerDisableGenerator

 Description:
   Used to disable the BER generator

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance

 Outputs:
   None

 Returns:
   zlStatusE

 Remarks:
   None

*******************************************************************************/

zlStatusE zl5011xTifBerDisableGenerator(zl5011xParamsS *zl5011xParams)
{
   zlStatusE status =  ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_TIF_FN_ID,
         "zl5011xTifBerDisableGenerator:",
         0, 0, 0, 0, 0, 0);

   /* set the enable bit to 0 to disable the transmitter */
   status = zl5011xReadModWrite(zl5011xParams, ZL5011X_TIF_BER_TX_REG,
         0,
         ZL5011X_1BIT_MASK << ZL5011X_TIF_BER_ENABLE_BIT);

   zl5011xParams->wanIf.wanBerGenerate.berEnabled = ZL5011X_FALSE;

   return(status);
}

/*******************************************************************************

 Function:
   zl5011xTifBerDisableReceiver

 Description:
   Used to disable the BER receiver.

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance

 Outputs:
   None

 Returns:
   zlStatusE

 Remarks:
   Also clears the Lock status

*******************************************************************************/

zlStatusE zl5011xTifBerDisableReceiver(zl5011xParamsS *zl5011xParams)
{
   zlStatusE status =  ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_TIF_FN_ID,
         "zl5011xTifBerDisableReceiver:",
         0, 0, 0, 0, 0, 0);

   /* set the enable bit to 0 to disable the receiver */
   status = zl5011xReadModWrite(zl5011xParams, ZL5011X_TIF_BER_RX_REG,
         0,
         ZL5011X_1BIT_MASK << ZL5011X_TIF_BER_ENABLE_BIT);

   zl5011xParams->wanIf.wanBerReceive.berEnabled = ZL5011X_FALSE;

   return(status);
}

/*******************************************************************************

 Function:
   zl5011xTifBerResetReceiver

 Description:
   Used to reset the BER receiver error counter, while the BER test is running.

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜电影网| 色综合色综合色综合| 成人av午夜电影| 日韩亚洲欧美成人一区| 综合网在线视频| 国产麻豆视频精品| 日韩免费高清视频| 亚洲成人在线观看视频| 99久久99久久久精品齐齐| 欧美精品一区二区三区久久久| 懂色一区二区三区免费观看| 欧美视频在线播放| 伊人婷婷欧美激情| www.爱久久.com| 国产精品拍天天在线| 国产精品18久久久久久久网站| 7777精品伊人久久久大香线蕉超级流畅 | 日韩久久免费av| 丝瓜av网站精品一区二区| 一本到三区不卡视频| 国产精品久久久久aaaa樱花| 精品一区二区免费在线观看| 3d动漫精品啪啪1区2区免费| 亚洲高清视频在线| 欧美日韩精品一区二区三区蜜桃| 亚洲久草在线视频| 色哟哟精品一区| 国产精品1区二区.| 中文字幕高清一区| 99久久综合色| 亚洲视频免费在线| 日本韩国一区二区三区视频| 亚洲精品五月天| 欧美日韩亚洲综合一区二区三区| 一区二区三区四区蜜桃| 欧美伊人精品成人久久综合97| 亚洲视频一区二区在线| 色综合亚洲欧洲| 亚洲成人免费电影| 日韩三级中文字幕| 国产激情视频一区二区在线观看| 欧美国产日韩精品免费观看| 国产乱子伦视频一区二区三区| 国产亚洲欧美色| 91视频.com| 午夜欧美大尺度福利影院在线看| 欧美久久久影院| 韩国精品一区二区| 亚洲天天做日日做天天谢日日欢| 在线看不卡av| 麻豆国产精品视频| 国产精品久久久久aaaa| 色综合久久久久久久久| 丝袜美腿高跟呻吟高潮一区| 26uuu精品一区二区在线观看| 成人免费视频播放| 亚洲va天堂va国产va久| 欧美成人官网二区| 99精品一区二区三区| 亚洲国产乱码最新视频| 精品国产在天天线2019| 97久久精品人人澡人人爽| 午夜欧美电影在线观看| 国产午夜亚洲精品不卡| 欧美在线小视频| 国产精品一区在线观看乱码| 一区在线中文字幕| 欧美一区欧美二区| 99久久久久免费精品国产 | 免费在线欧美视频| 国产精品午夜在线| 欧美一区二区免费视频| 99这里都是精品| 蜜桃传媒麻豆第一区在线观看| 国产精品国产三级国产普通话蜜臀 | 亚洲人吸女人奶水| 欧美va亚洲va| 欧美性猛片xxxx免费看久爱| 国产一区在线观看麻豆| 亚洲综合成人在线| 国产拍揄自揄精品视频麻豆| 9191精品国产综合久久久久久 | 久久99国产精品成人| 亚洲欧洲日韩在线| 久久久久久影视| 8x福利精品第一导航| 色av一区二区| 国产69精品久久久久777| 日韩av中文字幕一区二区| 依依成人精品视频| 国产精品电影一区二区| 26uuu国产电影一区二区| 亚洲国产一区二区a毛片| 中日韩免费视频中文字幕| 精品欧美久久久| 日韩欧美亚洲一区二区| 91 com成人网| 欧美精品久久99久久在免费线| 色狠狠一区二区| 99精品视频中文字幕| 成人动漫视频在线| 国产成人免费av在线| 国产在线播精品第三| 精品一区二区成人精品| 老司机午夜精品| 捆绑紧缚一区二区三区视频| 日韩国产一二三区| 男女激情视频一区| 久久99精品视频| 国产一区二区在线免费观看| 麻豆国产欧美一区二区三区| 另类人妖一区二区av| 国产真实乱子伦精品视频| 久久99精品一区二区三区三区| 蜜臀av性久久久久av蜜臀妖精| 青椒成人免费视频| 国产一区二区成人久久免费影院 | 久久精品人人爽人人爽| 久久精品综合网| 久久精品日韩一区二区三区| 欧美激情中文不卡| 亚洲私人影院在线观看| 一区二区三区在线免费| 亚洲国产精品欧美一二99| 日本怡春院一区二区| 狠狠色伊人亚洲综合成人| 国产成人自拍网| 一本大道久久精品懂色aⅴ| 在线免费观看日韩欧美| 欧美日韩激情一区二区| 91麻豆精品国产综合久久久久久| 欧美一区二区福利视频| 久久综合中文字幕| 亚洲欧美在线aaa| 婷婷中文字幕一区三区| 久久精品99国产精品| 成人综合在线观看| 91日韩精品一区| 欧美精品在线一区二区三区| 亚洲精品在线观| 福利电影一区二区三区| 91丨porny丨国产| 欧美人妇做爰xxxⅹ性高电影| 精品久久久久一区二区国产| 国产精品丝袜91| 视频在线在亚洲| 丁香六月综合激情| 欧美剧情片在线观看| 中文av字幕一区| 日本视频免费一区| aaa亚洲精品一二三区| 日韩欧美一区二区免费| 中文字幕一区二区在线观看| 日韩av在线发布| 94色蜜桃网一区二区三区| 欧美一区二区视频免费观看| 欧美国产一区二区在线观看| 视频一区在线视频| 91浏览器在线视频| 精品国产91久久久久久久妲己| 亚洲日本免费电影| 国产乱码精品一区二区三区忘忧草 | 一区二区成人在线| 激情五月激情综合网| 欧美日韩一区二区三区高清| 国产日产欧美一区| 美女免费视频一区| 欧美日韩在线观看一区二区| 亚洲国产高清不卡| 国内偷窥港台综合视频在线播放| 在线免费观看视频一区| 亚洲国产成人在线| 国产乱妇无码大片在线观看| 欧美日韩国产另类不卡| 亚洲乱码中文字幕| av成人免费在线观看| 国产欧美视频一区二区| 久久国产精品72免费观看| 在线综合亚洲欧美在线视频| 亚洲国产精品久久不卡毛片| 91日韩在线专区| 亚洲日本一区二区三区| av影院午夜一区| 中文字幕亚洲成人| 成人综合婷婷国产精品久久蜜臀| 精品国产成人系列| 精品无人区卡一卡二卡三乱码免费卡| 欧美调教femdomvk| 亚洲一级在线观看| 欧美无砖砖区免费| 舔着乳尖日韩一区| 欧美视频完全免费看| 亚洲成人动漫一区| 精品视频色一区| 秋霞电影网一区二区| 欧美一区二区三区播放老司机| 欧美aaa在线| 久久久亚洲精品一区二区三区| 九色porny丨国产精品| 精品国产露脸精彩对白|