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

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

?? ipproto.c

?? vxwork源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
            if ( (pIfp->if_flags & IFF_UP) ^ (newFlags & IFF_UP))                {                s = splimp ();                if ( (pIfp->if_flags & IFF_UP) == 0)                    if_up (pIfp);                else                    if_down (pIfp);                splx (s);                }            /* Set interface flags to new values, if allowed. */            newFlags = newFlags & ~IFF_CANTCHANGE;            pIfp->if_flags &= IFF_CANTCHANGE;            pIfp->if_flags = pIfp->if_flags | newFlags;            break;        case END_ERR_NO_BUF:#ifdef IP_DEBUG            if (ipDebug && pError->pMesg != NULL)                logMsg ("NO_BUF: Device: %s Unit: %d Msg: %s\n",                        (int)pEnd->devObject.name, pEnd->devObject.unit,                        (int)pError->pMesg, 0, 0, 0);#endif /* IP_DEBUG */            ip_drain();                      /* empty the fragment Q */            break;        default:#ifdef IP_DEBUG            if (ipDebug && pError->pMesg != NULL)                logMsg ("UNKOWN ERROR: Device: %s Unit: %d Msg: %s\n",                        (int)pEnd->devObject.name, pEnd->devObject.unit,                        (int)pError->pMesg, 0, 0, 0);#endif /* IP_DEBUG */            		break;        }    }/******************************************************************************** ipAttach - a generic attach routine for the TCP/IP network stack** This routine takes the unit number and device name of an END or NPT* driver (e.g., "ln0", "ei0", etc.) and attaches the IP protocol to* the corresponding device. Following a successful attachment IP will* begin receiving packets from the devices.** RETURNS: OK or ERROR*/int ipAttach    (    int unit,                   /* Unit number  */    char *pDevice		/* Device name (i.e. ln, ei etc.). */    )    {    long flags;    M2_INTERFACETBL mib2Tbl;    M2_ID * pM2ID;     IP_DRV_CTRL* pDrvCtrl;#ifndef VIRTUAL_STACK    IMPORT int          ipMaxUnits;#endif    struct ifnet* pIfp = NULL;    char *pName = NULL;    END_OBJ* pEnd;    struct ifaddr *pIfa;    struct sockaddr_dl *pSdl;    CL_POOL_ID pClPoolId;    int ifHdrLen;        int count;    int limit = ipMaxUnits;    int freeslot = -1;        pEnd = endFindByName (pDevice, unit);    if (pEnd == NULL)        {        logMsg ("ipAttach: Can't attach %s (unit %d). It is not an END device.\n",                (int)pDevice, unit, 0, 0, 0, 0);        return (ERROR);        }        for (count = 0; count < limit; count++)        {        pDrvCtrl = &ipDrvCtrl [count];                if (pDrvCtrl->attached)            {            /* Already attached to requested device? */                        if (PCOOKIE_TO_ENDOBJ (pDrvCtrl->pIpCookie) == pEnd)                return (OK);            }        else if (freeslot == -1)            freeslot = count;        }        if (freeslot == -1)        {        /* Too many attach attempts. */                logMsg ("Protocol is out of space. Increase IP_MAX_UNITS.\n",                0, 0, 0, 0, 0, 0);                return (ERROR);        }        pDrvCtrl = &ipDrvCtrl [freeslot];    bzero ( (char *)pDrvCtrl, sizeof (IP_DRV_CTRL));        /*     * Bind IP to the device using the appropriate routines for the driver     * type. NPT devices use a different receive routine since those drivers     * remove the link-level header before handing incoming data to the MUX     * layer.     */        pDrvCtrl->nptFlag = FALSE;        if (pEnd->pFuncTable->ioctl)        {        if ( (pEnd->pFuncTable->ioctl (pEnd, EIOCGNPT, NULL)) == OK)            {            /* NPT device. */            pDrvCtrl->nptFlag = TRUE;            }        }        if (pDrvCtrl->nptFlag)        {        /* NPT device */        pDrvCtrl->pIpCookie = muxTkBind (pDevice, unit, ipTkReceiveRtn,                                         ipTkShutdownRtn, ipTkTxRestart,                                         ipTkError, ETHERTYPE_IP,                                          "IP 4.4 TCP/IP",                                         pDrvCtrl, NULL, NULL);                if (pDrvCtrl->pIpCookie == NULL)            {            logMsg ("TCP/IP could not bind to the MUX: muxTkBind! %s",                    (int)pDevice, 0, 0, 0, 0, 0);            goto ipAttachError;            }        }    else        {        /* END device */        pDrvCtrl->pIpCookie = muxBind (pDevice, unit, (FUNCPTR) ipReceiveRtn,                                       (FUNCPTR) ipShutdownRtn,                                        (FUNCPTR) ipTxRestart,                                       (VOIDFUNCPTR) ipError, ETHERTYPE_IP,                                       "IP 4.4 TCP/IP", (void *) pDrvCtrl);        if (pDrvCtrl->pIpCookie == NULL)            {            logMsg ("TCP/IP could not bind to the MUX! %s", (int)pDevice,                    0, 0, 0, 0, 0);            goto ipAttachError;            }                        /*         * END devices require additional memory to construct a         * link-level header for outgoing data.         */                pDrvCtrl->pSrc = netMblkGet (_pNetDpool, M_DONTWAIT, MT_DATA);        if (pDrvCtrl->pSrc == NULL)            {            goto ipAttachError;            }                pDrvCtrl->pDst = netMblkGet (_pNetDpool, M_DONTWAIT, MT_DATA);        if (pDrvCtrl->pDst == NULL)            {            goto ipAttachError;            }        }            /* Get storage for link-level destination addresses. */        pClPoolId = netClPoolIdGet (_pNetDpool, MAX_ADDRLEN, TRUE);    if (pClPoolId == NULL)        {        goto ipAttachError;        }        pDrvCtrl->pDstAddr = netClusterGet (_pNetDpool, pClPoolId);    if (pDrvCtrl->pDstAddr == NULL)        {        goto ipAttachError;        }        /* Set the internal mBlk to access the link-level information. */        if (!pDrvCtrl->nptFlag)        pDrvCtrl->pDst->m_data = pDrvCtrl->pDstAddr;        pName = KHEAP_ALLOC( (strlen (pDevice) + 1));    /* +1: EOS character */    if (pName == NULL)        {        goto ipAttachError;        }    bzero (pName, strlen (pDevice) + 1);    strcpy (pName, pDevice);    /* Get all necessary lower-level device information. */        muxIoctl (pDrvCtrl->pIpCookie, EIOCGFLAGS, (caddr_t)&flags);        if (pEnd->flags & END_MIB_2233)        {        if (muxIoctl(pDrvCtrl->pIpCookie, EIOCGMIB2233,                     (caddr_t)&pM2ID) == ERROR)	    {	    logMsg("ipAttach: could not get MIB2 Table for device %s #%d\n",                   (int)pDevice,unit,3,4,5,6);            	    goto ipAttachError;	    }                memcpy(&mib2Tbl, &(pM2ID->m2Data.mibIfTbl), sizeof(M2_INTERFACETBL));        }    else /* (RFC1213 style of counters supported) XXX */        {        if (muxIoctl(pDrvCtrl->pIpCookie, EIOCGMIB2,                     (caddr_t)&mib2Tbl) == ERROR)	    {	    logMsg("ipAttach: could not get MIB2 Table for device %s #%d\n",                   (int)pDevice,unit,3,4,5,6);            	    goto ipAttachError;	    }        }    pIfp = (IFNET *)&pDrvCtrl->idr;        /* Hook up the interface pointers etc. */    #ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_VERBOSE event */    WV_NET_MARKER_1 (NET_AUX_EVENT, WV_NET_VERBOSE, 14, 17,                      WV_NETEVENT_ETHERATTACH_START, pIfp)#endif  /* INCLUDE_WVNET */#endif                bzero ((char *) pIfp, sizeof (*pIfp));    #ifdef VIRTUAL_STACK    virtualStackIdCheck();  /* make sure the myStackNum exists */    pIfp->vsNum = myStackNum;#endif /* VIRTUAL_STACK */        pIfp->if_unit   = unit;    pIfp->if_name   = pName;    pIfp->if_mtu    = mib2Tbl.ifMtu;    pIfp->if_baudrate = mib2Tbl.ifSpeed;    pIfp->if_init   = NULL;    pIfp->if_ioctl  = (FUNCPTR) ipIoctl;    pIfp->if_output = ipOutput;    pIfp->if_reset  = NULL;    pIfp->if_resolve = muxAddrResFuncGet (mib2Tbl.ifType, ETHERTYPE_IP);    pIfp->if_flags  = flags;    pIfp->if_type = mib2Tbl.ifType;    pIfp->if_addrlen = mib2Tbl.ifPhysAddress.addrLength;    pIfp->pCookie = (void *)pDrvCtrl;    /*     * Store address information for supported devices (802.x addressing)     * and bind ARP to the device using the appropriate receive routine.     */    switch (mib2Tbl.ifType)        {        case M2_ifType_ethernet_csmacd:        case M2_ifType_iso88023_csmacd:        case M2_ifType_iso88024_tokenBus:        case M2_ifType_iso88025_tokenRing:        case M2_ifType_iso88026_man:        case M2_ifType_fddi:            bcopy (mib2Tbl.ifPhysAddress.phyAddress, pDrvCtrl->idr.ac_enaddr,                   pIfp->if_addrlen);                        if (pDrvCtrl->nptFlag)                {                pDrvCtrl->pArpCookie = muxTkBind (pDevice, unit,                                                  ipTkReceiveRtn,                                                  arpTkShutdownRtn,                                                  ipTkTxRestart,                                                  NULL, ETHERTYPE_ARP,                                                   "IP 4.4 ARP",                                                  pDrvCtrl, NULL, NULL);                if (pDrvCtrl->pArpCookie == NULL)                    {                    logMsg ("ARP could not bind to the MUX: muxTkBind! %s",                            (int)pDevice, 0, 0, 0, 0, 0);                    goto ipAttachError;                    }                }            else     /* END device */                {                pDrvCtrl->pArpCookie = muxBind (pDevice, unit,                                                (FUNCPTR) ipReceiveRtn,                                                (FUNCPTR) arpShutdownRtn,                                                 (FUNCPTR) ipTxRestart,                                                NULL, ETHERTYPE_ARP,                                                 "IP 4.4 ARP",                                                pDrvCtrl);                if (pDrvCtrl->pArpCookie == NULL)                    {                    logMsg ("ARP could not bind to the MUX! %s", (int)pDevice,                            0, 0, 0, 0, 0);                    goto ipAttachError;                    }                }            break;        default:            break;        }        /* Get the length of the header. */    if (muxIoctl (pDrvCtrl->pIpCookie, EIOCGHDRLEN, (caddr_t)&ifHdrLen) != OK)        pIfp->if_hdrlen = 0;    else        pIfp->if_hdrlen = (short)ifHdrLen;        /* Attach the interface. */    /* NOTE: if_attach must come before "common duties" below.  see spr# 29152 */        if (if_attach (pIfp) == ERROR)        goto ipAttachError;        /*     * Perform common duties while attaching to interface list     */    for (pIfa = pIfp->if_addrlist; pIfa; pIfa = pIfa->ifa_next)        {        if ((pSdl = (struct sockaddr_dl *)pIfa->ifa_addr) &&            pSdl->sdl_family == AF_LINK)            {            pSdl->sdl_type = pIfp->if_type;            pSdl->sdl_alen = pIfp->if_addrlen;            bcopy (mib2Tbl.ifPhysAddress.phyAddress,                   LLADDR (pSdl), pSdl->sdl_alen);            break;            }        }        pIfp->if_start = (FUNCPTR)ipTxStartup;        pDrvCtrl->attached = TRUE;        return (OK);    ipAttachError:        /* Cleanup by removing any bound protocols and/or allocated memory. */        if (pDrvCtrl->pDstAddr)        netClFree (_pNetDpool, pDrvCtrl->pDstAddr);        if (pDrvCtrl->nptFlag)        {        if (pDrvCtrl->pIpCookie)            muxUnbind (pDrvCtrl->pIpCookie, ETHERTYPE_IP, ipTkReceiveRtn);                if (pDrvCtrl->pArpCookie)            muxUnbind (pDrvCtrl->pArpCookie, ETHERTYPE_IP, ipTkReceiveRtn);        }    else        {        if (pDrvCtrl->pIpCookie)            muxUnbind (pDrvCtrl->pIpCookie, ETHERTYPE_IP, ipReceiveRtn);                if (pDrvCtrl->pArpCookie)            muxUnbind (pDrvCtrl->pArpCookie, ETHERTYPE_IP, ipReceiveRtn);        }        if (pDrvCtrl->pSrc)        netMblkFree (_pNetDpool, pDrvCtrl->pSrc);        if (pDrvCtrl->pDst)        netMblkFree (_pNetDpool, pDrvCtrl->pDst);        return (ERROR);    }/********************************************************************************* ipTxRestart - restart routine ** NOMANUAL*/LOCAL int ipTxRestart    (    void * pCookie,	/* device identifier (from muxDevLoad) */    IP_DRV_CTRL * pDrvCtrl    )    {    if (pDrvCtrl == NULL)        return (ERROR);        ipTxStartup (pDrvCtrl);        return (OK);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品剧情在线观看| 性欧美疯狂xxxxbbbb| 视频一区中文字幕| 国产91精品在线观看| 91麻豆精品国产自产在线观看一区 | 国产一本一道久久香蕉| 91国产福利在线| 国产精品日产欧美久久久久| 亚洲成人免费av| av电影在线观看一区| 精品国产百合女同互慰| 亚洲第一狼人社区| 91小视频免费看| 国产亚洲va综合人人澡精品| 日本v片在线高清不卡在线观看| 一本色道久久综合亚洲91| 国产欧美一区二区三区鸳鸯浴 | 国产精品综合一区二区| 制服丝袜亚洲色图| 亚洲成人免费看| 在线免费精品视频| 一区二区三区在线视频观看58| 国产成人精品综合在线观看| 日韩免费性生活视频播放| 日韩国产精品久久| 欧美日韩一卡二卡三卡| 亚洲一区二区三区四区在线| 91在线观看高清| 国产精品美女久久久久av爽李琼 | 亚洲一区中文在线| 欧美色图天堂网| 一区二区高清免费观看影视大全 | 日韩一级免费一区| 麻豆高清免费国产一区| 日韩欧美黄色影院| 久久激情五月激情| 26uuu国产在线精品一区二区| 美国一区二区三区在线播放| 精品国产乱子伦一区| 狠狠v欧美v日韩v亚洲ⅴ| 欧美mv日韩mv亚洲| 国产精品一区二区久久不卡 | 26uuu精品一区二区| 国产伦精品一区二区三区免费 | 成人免费av资源| 国产精品动漫网站| 91国产成人在线| 日本三级韩国三级欧美三级| 精品久久国产字幕高潮| 国产成人免费视| 亚洲精品写真福利| 91麻豆精品国产91久久久久久| 免费不卡在线视频| 国产日韩欧美电影| 色综合久久99| 免费在线观看精品| 久久亚洲精品国产精品紫薇| 国产成人福利片| 亚洲最大色网站| 日韩视频一区在线观看| 国产精品1区二区.| 亚洲日本青草视频在线怡红院| 欧美午夜一区二区| 六月丁香婷婷色狠狠久久| 欧美激情中文不卡| 欧美日韩一区二区不卡| 国产精品1区二区.| 五月天丁香久久| 国产日产欧美一区二区三区| 日本久久一区二区| 九九热在线视频观看这里只有精品| 国产情人综合久久777777| 欧美亚洲高清一区二区三区不卡| 久久成人羞羞网站| 亚洲免费在线电影| 精品第一国产综合精品aⅴ| 99久久伊人精品| 久久国产三级精品| 一区二区三区小说| 久久久久久黄色| 欧美伦理电影网| 99久久99久久综合| 国产一区二区91| 亚州成人在线电影| 亚洲欧洲在线观看av| 26uuu久久天堂性欧美| 欧美日韩综合在线| 99国内精品久久| 国产一区二区三区不卡在线观看 | 久久综合一区二区| 欧美美女直播网站| 91视频国产资源| 国产乱子伦一区二区三区国色天香| 一区二区三区欧美日韩| 国产女人18毛片水真多成人如厕| 69久久99精品久久久久婷婷 | 婷婷久久综合九色综合绿巨人| 国产片一区二区| 精品久久99ma| 555www色欧美视频| 欧美午夜精品久久久久久孕妇 | av午夜精品一区二区三区| 韩国女主播成人在线| 天堂久久久久va久久久久| 亚洲欧美日韩小说| 亚洲人成伊人成综合网小说| 欧美国产精品一区二区三区| 久久久久久久久久久黄色| 精品福利av导航| 久久午夜电影网| 久久综合给合久久狠狠狠97色69| 555夜色666亚洲国产免| 91精品啪在线观看国产60岁| 欧美精品电影在线播放| 欧美精品三级日韩久久| 精品视频一区 二区 三区| 欧美伊人久久久久久久久影院 | 97se亚洲国产综合自在线| 北条麻妃一区二区三区| 不卡电影免费在线播放一区| 国产91精品欧美| 93久久精品日日躁夜夜躁欧美| 99re在线精品| 播五月开心婷婷综合| 91在线观看高清| 欧美视频一二三区| 欧美一级精品在线| 久久―日本道色综合久久| 国产女同互慰高潮91漫画| 中文字幕日韩av资源站| 亚洲韩国一区二区三区| 天堂午夜影视日韩欧美一区二区| 日日夜夜精品视频天天综合网| 蜜桃久久久久久久| 国产一区二区精品久久99| av电影天堂一区二区在线| 色婷婷综合五月| 欧美一区二区在线免费观看| 久久久久久影视| 一区二区三区中文字幕电影| 丝袜美腿高跟呻吟高潮一区| 麻豆精品精品国产自在97香蕉| 国产aⅴ综合色| 欧美日韩第一区日日骚| 日韩美女在线视频| 国产精品高潮呻吟| 午夜精品久久久久久久蜜桃app| 久久精工是国产品牌吗| av亚洲精华国产精华精| 欧美一区二区三区在线| 国产精品欧美经典| 午夜精品123| 国产91对白在线观看九色| 欧美在线看片a免费观看| 久久人人爽爽爽人久久久| 亚洲一区二区三区精品在线| 狠狠狠色丁香婷婷综合久久五月| 日本精品一区二区三区高清| 欧美大片一区二区三区| 亚洲精选免费视频| 国产成人综合精品三级| 欧美日韩国产免费| 国产精品乱人伦一区二区| 日本va欧美va精品发布| 99re热视频精品| 欧美精品一区二区高清在线观看| 一区二区激情视频| 成人性视频免费网站| 日韩欧美的一区| 性久久久久久久| 一道本成人在线| 国产精品免费av| 国产一区二区三区在线观看免费视频| 欧美中文字幕亚洲一区二区va在线| 久久综合精品国产一区二区三区 | 日韩欧美激情一区| 亚洲影院在线观看| 91看片淫黄大片一级在线观看| 久久精品一区二区三区不卡 | 91在线国内视频| 久久久不卡影院| 久久精品久久久精品美女| 在线精品视频一区二区三四| 亚洲国产精品黑人久久久| 青青青爽久久午夜综合久久午夜| 色综合久久久久综合| 中文字幕一区二区三区在线播放 | 欧美韩国日本综合| 黑人精品欧美一区二区蜜桃| 91精品欧美一区二区三区综合在| 亚洲国产美国国产综合一区二区| 成人开心网精品视频| 欧美精品一区二区久久久| 久久精品免费看| 欧美一级久久久| 日韩成人dvd| 日韩小视频在线观看专区| 奇米777欧美一区二区| 91精品国产麻豆国产自产在线| 亚洲成人福利片|