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

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

?? ixethaccsysend.c

?? INTEL IXP425的VXWORKS BSP
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
    }        return IX_SUCCESS;}/* this function is called suring muxUnload */IX_STATUS ixdp425EthLibUnload(int port){  #ifdef SYS_END_DEBUG        DRV_LOG("ixdp425EthLibUnload(%d)\n", port);#endif /* SYS_END_DEBUG */    /* ensure the traffic is stopped */    return ixdp425EthLibStop(port);}STATUS ixdp425EthEndMuxInit()    {    END_TBL_ENTRY     *pDevTbl;    UINT32 phyNo;    for ( pDevTbl = endDevTbl; pDevTbl->endLoadFunc != END_TBL_END; pDevTbl++ )        ; /* Do nothing as we just want the increment */    /* TODO - How to we tie phys ports to ixe's ?????? */    for (phyNo=0; phyNo<IX_ETH_ACC_NUMBER_OF_PORTS; phyNo++)        {#ifndef INCLUDE_IXETHACC_PORT0_END        if ( phyNo == 0 )            continue;#endif#ifndef INCLUDE_IXETHACC_PORT1_END        if ( phyNo == 1 )            continue;#endif        /* Fill in the endDev entry for this device */        pDevTbl->unit = phyNo;        pDevTbl->endLoadFunc = ixEthAccEndLoad;        pDevTbl->endLoadString = ixpEndLoadStr[phyNo];        pDevTbl->endLoan = 1;        pDevTbl->pBSP = NULL;        pDevTbl->processed = FALSE;        pDevTbl++;        }    return OK;    }STATUS ixdp425EthEndStartUp()    {    END_TBL_ENTRY     *pDevTbl;    END_OBJ *         pCookie = NULL;    UINT32 ixdp425EthEndMask;    UINT8 nvImage[NV_RAM_IF_SIZE+1];    UINT8 inetAddr[INET_ADDR_LEN];    UINT8 nameAndUnit[32];    UINT8 pNetDev[32];    char *colon;    int n = 0,index,ipaddrOk;    sysNvRamGet(nvImage, NV_RAM_IF_SIZE, NV_RAM_IF_START_OFFSET);    for ( pDevTbl = endDevTbl            ; pDevTbl->endLoadFunc != END_TBL_END && n < IX_ETH_ACC_NUMBER_OF_PORTS            ; pDevTbl++ )        {        if ( pDevTbl->endLoadFunc != ixEthAccEndLoad )            continue;        if ( pDevTbl->processed == FALSE )            {            /* Add in mux END */            pCookie = muxDevLoad (pDevTbl->unit,                                  pDevTbl->endLoadFunc,                                  pDevTbl->endLoadString,                                  pDevTbl->endLoan,                                   pDevTbl->pBSP);            if (pCookie == NULL)                {                printf("ixdp425EthEndStartUp: muxDevLoad failed for ixp device entry %d!\n"                       , n                      );                n++;                continue;                }             else                {                /* Start END */                if (muxDevStart(pCookie) == ERROR)                    {                    printf("ixdp425EthEndStartUp: muxDevStart failed for ixp device entry %d!\n"                           , n                          );                    n++;                    continue;                    }                }            }        ipaddrOk = 1;        /* If the EthAccEnd interface is not already attached, we should bring it up here          and assign an IP address*/        sprintf(pNetDev,"%s","ixe");        sprintf(nameAndUnit,"%s%d","ixe", n);        /* need to figure out if this has been configured already */        if (ifAddrGet(nameAndUnit,inetAddr) == ERROR)            {            if (ipAttach(n, pNetDev) != OK)                {                printf ("ixdp425EthEndStartUp: Failed to attach to device %s, unit: %d", pNetDev,n);                }             else                {                /* See if an address is in nvram */                /* Get IP address */                index = NV_IP_ADRS_NPE1 + n*SIZE_OF_IP_ADDRESS - NV_RAM_IF_START_OFFSET;                memcpy(inetAddr, &nvImage[index],SIZE_OF_IP_ADDRESS);                inetAddr[SIZE_OF_IP_ADDRESS]=0;hardCodedRetry:                /* See if there is a mask */                if ( (colon = strchr(inetAddr, ':')) )                    {                    *colon = 0;                    colon++;                    for(index = 0; index < 6; index++)                        {                        if( isxdigit(colon[index] == 0 ) )                            {                            printf("ixdp425EthEndStartUp: Invalid Mask for ixe%d IP: %s:%s Discarding Mask\n"                                ,n,inetAddr, colon);                            colon = NULL;                            break;                            }                        }                    if(colon != NULL)                        {                        sscanf(colon, "%x", &ixdp425EthEndMask);                        }                    }                /* Check to see if its a valid IP address */                for(index = 0; index < SIZE_OF_IP_ADDRESS; )                    {                    if ( !isdigit(inetAddr[index]) && inetAddr[index] != '.' )                        {#if defined(IXDP_ETHACC_IP0_DEFAULT) && defined(IXDP_ETHACC_IP1_DEFAULT)                        printf("ixdp425EthEndStartUp: Forcing Hard Coded IP Address for ixe%d\n",n);                        sprintf(inetAddr, "%s", sysIxEthAccEndIpAddr[n]);                        goto hardCodedRetry;#else                        ipaddrOk = 0;                        printf("ixdp425EthEndStartUp: Invalid Address for ixe%d IP: %s Ignoring\n",n,inetAddr);                        break;#endif                        }                    if ( inetAddr[++index] == 0 )                        break;                    }                if ( ipaddrOk )                    {                    ifAddrSet(nameAndUnit, inetAddr);                    if( colon != NULL )                        {                        ifMaskSet(nameAndUnit, ixdp425EthEndMask);                        printf("                ixe%d: IP Addr set to %s:%x\n"                                ,n, inetAddr, ixdp425EthEndMask);                        }                    else                        {                        printf("                ixe%d: IP Addr set to %s\n",n, inetAddr);                        }                    }                }            }        n++;        }    return OK;    }const char *ixIpProtoStrGet (const UINT8 ipProto)    {    UINT32 index;    for (index = 0 ; index < NUM_ELEM(ixIpProtoValues) ; index++)        {        if (ixIpProtoValues[index].number == ipProto)            {            return ixIpProtoValues[index].string;            }        }    return "Unknown IP protocol";    }struct    {    int number; const char *string;    } ixEtherTypeValues[] =     {    {ETHERTYPE_PUP,         "PUP"},    {ETHERTYPE_IP,          "IP"},    {ETHERTYPE_ARP,         "ARP"},    {ETHERTYPE_REVARP,      "Reverse ARP"}    };const char *ixEthernetTypeStrGet (const UINT16 etherType)    {    UINT32 index;    for (index = 0 ; index < NUM_ELEM(ixEtherTypeValues) ; index++)        {        if (ixEtherTypeValues[index].number == etherType)            {            return ixEtherTypeValues[index].string;            }        }    return "Unknown Ethernet Type";    }void dumpMbufPtr(IX_MBUF *mBufPtr)    {    UINT32 j,k;    logMsg("m_len:        %d\n",mBufPtr->m_len,0,0,0,0,0);    logMsg("m_pkthdr.len: %d\n", mBufPtr->m_pkthdr.len,0,0,0,0,0);    logMsg("m_next        0x%x\n",(UINT32)mBufPtr->m_next,0,0,0,0,0);    logMsg("m_type        0x%x\n", mBufPtr->m_type,0,0,0,0,0);    for (j=0;j<mBufPtr->m_len/16;j++)        {        for (k=0;k<16;k++)            {            logMsg("data: 0x%x\n",mBufPtr->m_data[j*16 + k],0,0,0,0,0);            }        }    logMsg("\n",0,0,0,0,0,0);    ixEthernetHdrDump(mBufPtr->m_data);    }/****************************************************************************** * * This function can be used to output the Ethernet headers of messages. The * inputted mData pointer is assumed to point to the start of the Ethernet  * header * *****************************************************************************/void ixEthernetHdrDump(const char * const mData)    {    static unsigned char *etherSrcAddr = NULL;    static unsigned char *etherDstAddr = NULL;    static unsigned etherType = 0;    const char *etherTypeStr = NULL;    BOOL nonIpHdrDetected;    if ( (mData == NULL) )        {        logMsg("ERROR: RNDIS detected NULL pointer in ixEthernetDump\n",               0,0,0,0,0,0);        return;        }    logMsg("*** Ethernet Header ***\n", 0, 0, 0, 0, 0, 0);    etherDstAddr = ((struct ether_header *) mData)->ether_dhost;    etherSrcAddr = ((struct ether_header *) mData)->ether_shost;    etherType = ntohs(((struct ether_header *) mData)->ether_type);    if (etherType != ETHERTYPE_IP)        {        nonIpHdrDetected = TRUE;        logMsg("[this is non-IP data]\n", 0, 0, 0, 0, 0, 0);        }     else        {        nonIpHdrDetected = FALSE;        logMsg("[this is IP data]\n", 0, 0, 0, 0, 0 ,0);        }    etherTypeStr = ixEthernetTypeStrGet((const UINT16)etherType);    logMsg("Ethernet Dst MAC: 0x%02x:%02x:%02x:%02x:%02x:%02x\n",           etherDstAddr[0],           etherDstAddr[1],           etherDstAddr[2],            etherDstAddr[3],            etherDstAddr[4],            etherDstAddr[5] );    logMsg("Ethernet Src MAC: 0x%02x:%02x:%02x:%02x:%02x:%02x\n",           etherSrcAddr[0],           etherSrcAddr[1],           etherSrcAddr[2],            etherSrcAddr[3],            etherSrcAddr[4],            etherSrcAddr[5] );    logMsg("Ethernet Type (%X): %s\n", etherType, (int)etherTypeStr, 0, 0, 0, 0);    if (!nonIpHdrDetected)        {        ixIpHdrDump(mData + 14 );        }    }/****************************************************************************** * * This function can be used to output the IP headers of messages. The inputted * mData pointer is assumed to point to the start of the IP header * *****************************************************************************/void ixIpHdrDump(const char * const mData)    {    static struct in_addr srcAddr;    static struct in_addr dstAddr;    static char ipSrcAddrStr[INET_ADDR_LEN];    static char ipDstAddrStr[INET_ADDR_LEN];    if (mData == NULL)        {        logMsg("ERROR: RNDIS detected NULL pointer in ixIpHdrDump\n",               0,0,0,0,0,0);        return;        }    /*     * Check for a non word aligned header     */    if (((UINT32) mData) % 4 == 0)        {        logMsg("*** IP Header ***\n", 0, 0, 0, 0, 0, 0);        }     else        {        logMsg("*** IP Header *** WARNING: THIS IS NOT WORD ALIGNED\n", 0, 0, 0, 0, 0, 0);        }    logMsg("Total Length: %u 0x%08X\n",           ntohs(((struct ip *) mData)->ip_len),(((struct ip *) mData)->ip_len) , 0, 0, 0, 0);    logMsg("Protocol: %s\n",           (int)ixIpProtoStrGet(((struct ip *) mData)->ip_p), 0, 0, 0, 0, 0);    /*     * Potential for the source IP address to be on a half word     * boundary. E.g. If the RNDIS header is word aligned (44 bytes      * long), the Ethernet header follows directly (14 bytes), and     * then the IP header is directly after that, then the IP      * will be on a half word boundary... This may have performance     * impacts on the system.     */    memcpy(&(srcAddr.s_addr),           &(((struct ip *)mData)->ip_src.s_addr),           sizeof (UINT32));    memcpy( &(dstAddr.s_addr),            &(((struct ip *)mData)->ip_dst.s_addr),            sizeof (UINT32));    /*     * Get the IP addresses in string dotted decimal format     */    inet_ntoa_b(srcAddr, ipSrcAddrStr);    logMsg("Src Addr: %s\n", (int)ipSrcAddrStr, 0, 0, 0, 0, 0);    inet_ntoa_b(dstAddr, ipDstAddrStr);    logMsg("Dst Addr: %s\n", (int)ipDstAddrStr, 0, 0, 0, 0, 0);    }void ixEthAccEndEthernetLinkStatusMonitor(void)    {    unsigned phyNum = 0;    unsigned ticksPerSecond = 0;    BOOL linkUp[IX_ETH_ACC_NUMBER_OF_PORTS] = {FALSE, FALSE};    enum { IX_END_UNKNOWN_MODE, IX_END_FULL_DUPLEX_MODE, IX_END_HALF_DUPLEX_MODE }           lastDuplexMode[IX_ETH_ACC_NUMBER_OF_PORTS]               = {  IX_END_UNKNOWN_MODE, IX_END_UNKNOWN_MODE };    IXDP_ETHACC_PHY_CONF currentPhyConfig[IX_ETH_ACC_NUMBER_OF_PORTS];    ticksPerSecond = sysClkRateGet();         /*     * Start the infinite loop     */    while (1)        {        for (phyNum = 0; phyNum < IX_ETH_ACC_NUMBER_OF_PORTS; phyNum++)            {            /* check the PHY is initialized */            if (ixEthAccPhyAddresses[phyNum] == 0xffffffff)                continue;                        /*             * Determine the link status             */            if (IX_ETH_ACC_SUCCESS !=                 ixEthAccMiiLinkStatus(ixEthAccPhyAddresses[phyNum],                                      &linkUp[phyNum],                                      &(currentPhyConfig[phyNum].speed100),                                      &(currentPhyConfig[phyNum].fullDuplex),                                       &(currentPhyConfig[phyNum].autonegotiate)))                {                printf("%s: Warning - ixEthAccMiiLinkStatus failed on PHY%d. "                       "Can't determine\nthe auto negotiated parameters.Using "                       " default values.\n",                       "ixEthAccEndEthernetLinkStatusMonitor",                       phyNum);                 }	                 /*             * Update the MAC mode to match the PHY mode. If autonegotiotion is not enabled,             * then the MAC mode is already set during initialisation. If autonegotiation              * is enabled, the MAC mode may change at any time.             */            if (linkUp[phyNum] && currentPhyConfig[phyNum].autonegotiate)                {                if (currentPhyConfig[phyNum].fullDuplex)                    {                    /* check if the MAC mode is already set */                    if (lastDuplexMode[phyNum] != IX_END_FULL_DUPLEX_MODE)                        {                        ixEthAccPortDuplexModeSet (phyNum,                                                   IX_ETH_ACC_FULL_DUPLEX);                        lastDuplexMode[phyNum] = IX_END_FULL_DUPLEX_MODE;#ifdef SYS_END_DEBUG                        printf("Port %d set to Full duplex\n", phyNum);#endif                        }                    }                else                    {                    /* check if the MAC mode is already set */                    if (lastDuplexMode[phyNum] != IX_END_HALF_DUPLEX_MODE)                        {                        ixEthAccPortDuplexModeSet (phyNum,                                                   IX_ETH_ACC_HALF_DUPLEX);                        lastDuplexMode[phyNum] = IX_END_HALF_DUPLEX_MODE;#ifdef SYS_END_DEBUG                        printf("Port %d set to Half duplex\n", phyNum);#endif                        }                    }                } /* if duplex */            } /* for phyNum */        /*         * This function should poll the MII link status approximately every          * 4 seconds         */        taskDelay((4 * ticksPerSecond) / IX_ETH_ACC_NUMBER_OF_PORTS);        } /* End of while (1)*/    } #endif /* INCLUDE_IXETHACCEND */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区 在线观看视频| 日本少妇一区二区| 日韩免费观看高清完整版| 成人精品一区二区三区四区 | 美女视频一区二区三区| 日韩一区中文字幕| 精品乱码亚洲一区二区不卡| 欧美日韩亚洲丝袜制服| 97se亚洲国产综合在线| 国产在线不卡一卡二卡三卡四卡| 天堂午夜影视日韩欧美一区二区| 中文字幕视频一区| 国产区在线观看成人精品| 555www色欧美视频| 欧美亚洲自拍偷拍| 9色porny自拍视频一区二区| 国产麻豆日韩欧美久久| 麻豆91精品91久久久的内涵| 日本一区二区成人在线| 8v天堂国产在线一区二区| 99久久综合99久久综合网站| 国内不卡的二区三区中文字幕 | 日韩美女视频一区二区在线观看| 色婷婷综合久色| 成人的网站免费观看| 国内不卡的二区三区中文字幕| 午夜激情综合网| 亚洲一区二区视频在线观看| 亚洲黄色免费电影| 亚洲人成网站在线| 日韩理论片中文av| 中文字幕一区在线观看| 国产精品久久久久久久久动漫| 久久色在线视频| 久久久久久电影| 日本一区二区免费在线| 久久久国产综合精品女国产盗摄| 精品久久久久久综合日本欧美| 日韩一级黄色大片| 日韩欧美中文字幕精品| 日韩精品中午字幕| 精品福利一区二区三区免费视频| 欧美成人福利视频| 久久久国产综合精品女国产盗摄| 欧美激情中文字幕一区二区| 中文子幕无线码一区tr| 亚洲色图欧洲色图婷婷| 一区二区三区四区高清精品免费观看| 亚洲日本va在线观看| 一区二区在线免费| 亚洲国产日产av| 奇米精品一区二区三区在线观看一| 石原莉奈在线亚洲三区| 激情深爱一区二区| 不卡av电影在线播放| 91视频观看视频| 欧美日韩国产一二三| 欧美一级欧美三级| 久久久综合精品| 日韩理论片一区二区| 五月天一区二区三区| 蜜桃视频一区二区三区在线观看| 国产精品123区| 色狠狠av一区二区三区| 欧美高清视频在线高清观看mv色露露十八 | 婷婷久久综合九色综合绿巨人 | 国产一区二区三区免费观看| 国产xxx精品视频大全| 一本一道久久a久久精品综合蜜臀| 欧美性色黄大片手机版| 欧美精品一区二| 国产精品国产三级国产三级人妇| 亚洲国产日韩av| 国产黄人亚洲片| 在线观看欧美精品| 精品少妇一区二区三区日产乱码 | 国产色婷婷亚洲99精品小说| 亚洲男人天堂av网| 麻豆成人免费电影| av不卡在线播放| 欧美一级日韩不卡播放免费| 亚洲欧洲日韩女同| 日本成人在线一区| 99精品偷自拍| 欧美mv日韩mv国产网站| 亚洲精品老司机| 国产美女一区二区三区| 中文字幕一区在线观看| 爽好久久久欧美精品| 不卡的看片网站| 精品国产污网站| 亚洲一区精品在线| 粉嫩绯色av一区二区在线观看| 欧美亚洲免费在线一区| 国产色91在线| 麻豆精品一区二区综合av| 在线看不卡av| 国产精品无码永久免费888| 日本不卡在线视频| 日本久久一区二区三区| 欧美国产日韩一二三区| 精品制服美女久久| 欧美三级中文字| 国产精品福利一区| 国产一区二区三区最好精华液| 欧美日韩一级片网站| 亚洲日本一区二区三区| 国产99久久久精品| 久久综合久久鬼色| 免费精品视频在线| 欧美裸体一区二区三区| 一区二区三区国产精品| av电影在线观看不卡| 欧美激情在线观看视频免费| 精品一区二区三区在线播放视频 | 欧美日韩免费不卡视频一区二区三区| 国产亚洲精品aa| 国产一区免费电影| 精品欧美一区二区久久| 日本不卡高清视频| 日韩一区二区三区三四区视频在线观看| 怡红院av一区二区三区| 99精品国产99久久久久久白柏| 久久日韩精品一区二区五区| 麻豆国产欧美日韩综合精品二区| 欧美精品电影在线播放| 亚洲国产成人精品视频| 欧美三级蜜桃2在线观看| 尤物视频一区二区| 色综合咪咪久久| 依依成人精品视频| 欧美三级中文字| 亚洲成人黄色影院| 在线成人小视频| 免费在线成人网| 26uuu亚洲综合色| 国产精品一级二级三级| 国产日韩精品一区二区浪潮av| 国产精品一区专区| 国产日产亚洲精品系列| 成人一区二区三区中文字幕| 国产精品伦理在线| 91网址在线看| 亚洲一区二区三区四区中文字幕| 欧美在线影院一区二区| 午夜精品一区二区三区电影天堂| 8x8x8国产精品| 麻豆国产一区二区| 国产日韩亚洲欧美综合| 91香蕉视频mp4| 亚洲国产视频一区二区| 亚洲6080在线| 日韩一区二区高清| 国产精品一区二区男女羞羞无遮挡 | 懂色av一区二区三区免费观看 | 日韩欧美一区在线| 国产成人在线电影| 亚洲精品日韩一| 在线电影院国产精品| 国产精品一区二区久激情瑜伽 | 亚洲国产一区在线观看| 欧美一卡二卡三卡| 国产精品一卡二卡在线观看| 综合久久综合久久| 欧美精品成人一区二区三区四区| 麻豆精品新av中文字幕| 国产精品―色哟哟| 欧美日韩日日骚| 国产一区二区三区在线观看免费视频| 国产精品视频麻豆| 欧美日韩国产一级二级| 国产成人福利片| 亚洲国产裸拍裸体视频在线观看乱了| 日韩视频一区在线观看| 国产综合色视频| 亚洲欧美一区二区不卡| 日韩欧美一级二级三级| 成人听书哪个软件好| 亚洲国产sm捆绑调教视频 | 亚洲动漫第一页| 2020国产精品久久精品美国| 91免费观看视频在线| 人禽交欧美网站| 日韩一区有码在线| 欧美大黄免费观看| 91精品办公室少妇高潮对白| 国内外精品视频| 午夜精彩视频在线观看不卡| 欧美韩国日本不卡| 555夜色666亚洲国产免| 91蜜桃网址入口| 国产成人av福利| 免费观看一级特黄欧美大片| 亚洲日本乱码在线观看| 国产丝袜美腿一区二区三区| 7777精品伊人久久久大香线蕉完整版| 国产成都精品91一区二区三| 日韩福利视频导航| 亚洲一区在线观看视频| 亚洲国产精品ⅴa在线观看|