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

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

?? if.c

?? vxwork源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* if.c - network interface utility routines *//* Copyright 1984 - 2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/*	$NetBSD: if.c,v 1.18 1994/10/30 21:48:46 cgd Exp $	*//* * Copyright (c) 1980, 1986, 1993 *	The Regents of the University of California.  All rights reserved. * * 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. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * *	@(#)if.c	8.3 (Berkeley) 1/4/94 *//*modification history--------------------01u,25apr02,vvv  removed unused ifAttachChange (SPR #74391)01t,06mar02,vvv  clean up multicast memberships when interface is detached		 (SPR #72486)01s,29oct01,wap  ifconf() fails with unit numbers greater than 9 (SPR #31752)01r,26oct01,vvv  fixed memory leak in if_dettach (SPR #71081) 01q,12oct01,rae  merge from truestack ver 01w base 01m                 SPR #69112, Windview events, etc.01p,30mar01,rae  allow m2 stuff to be excluded (SPR# 65428)01o,24oct00,niq  Merging in RFC2233 changes from tor2_0.open_stack-f1 branch.01n,17oct00,spm  merged from version 01j of tor2_0_x branch (base version 01h):                 updated if_attach to report memory allocation failures01m,29apr99,pul  Upgraded NPT phase3 code to tor2.0.001l,25mar99,sj   removed logMsg within SIOCSIFASYNCFLAGS ioctl 01k,24mar99,ead  Added a call to m2SetIfLastChange() in ifioctl() when the                 interfaces operational status changes. (SPR #23290)01j,19mar99,sj   SIOCSIFASYNCFLAGS ioctl recvd only when we didn't change flags01i,18mar99,sj   added SIOCSIFASYNCFLAGS for async flag change report from END01h,16jul98,n_s  fixed ifioctl to pass correct flags to driver Ioctl. SPR 21124 01g,16dec97,vin  fixed if_dettach SPR 9970.01f,10dec97,vin  added spl protection to ifreset, if_dettach, if_attach,		 ifIndexToIfp SPR 9987.01e,05oct97,vin  fixed if_dettach, for changes in multicast code.01d,12aug97,rjc  made if_index global to support non ip interfaces (SPR 9060).01c,02jul97,vin  fixed warnings. added _rtIfaceMsgHook for scaling out routing		 sockets.01b,05dec96,vin  moved ifafree() from route.c(), added ifIndexToIfp(),		 deleted ifnet_addrs in ifattach(), made if_index static.		 made ifqmaxlen static, replaced calloc with MALLOC, replaced		 free(..) with FREE(..)01a,03mar96,vin  created from BSD4.4 stuff,integrated with 02t of if.c.		 rewrote if_dettach(), added in_ifaddr_remove in if_dettach*//*DESCRIPTION*/#include "vxWorks.h"#include "sys/socket.h"#include "net/socketvar.h"#include "net/protosw.h"/* #include "net/route.h" */#include "routeEnhLib.h"#include "net/if_dl.h"#include "net/if_subr.h"#include "sys/ioctl.h"#include "errno.h"#include "ifIndexLib.h"#include "net/if.h"#include "wdLib.h"#include "net/systm.h"#include "net/mbuf.h"#ifdef INET#include "netinet/in_var.h"#endif /* INET */#include "m2Lib.h"#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET#include "wvNetLib.h"#endif /* INCLUDE_WVNET */#endif#ifdef VIRTUAL_STACK#include "netinet/vsLib.h"#endif#include "logLib.h"IMPORT STATUS netJobAdd (FUNCPTR, int, int, int, int, int);extern void pfctlinput(int cmd, struct sockaddr * sa);extern int sysClkRateGet();extern void in_ifaddr_remove ();extern int arpioctl (int cmd, caddr_t data); extern int splnet2 (int timeout);/* XXX temporary fix should be removed after updating all drivers */extern void ether_ifattach(struct ifnet * ifp);extern int ether_output (); #ifndef VIRTUAL_STACKIMPORT struct inpcbhead         udb;#endif#ifndef VIRTUAL_STACKstruct ifnet *ifnet;	/* head of linked list of interfaces */LOCAL WDOG_ID ifslowtimoWd;	/* watchdog timer for slowtimo routine */#endif /* VIRTUAL_STACK *//* locals */static int ifqmaxlen = IFQ_MAXLEN;static char * sprint_d(unsigned int, char *, int);#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* Set common fields of event identifiers for this module. */LOCAL UCHAR wvNetModuleId = WV_NET_IF_MODULE; 	/* Value for if.c */LOCAL UCHAR wvNetLocalFilter = WV_NET_NONE; 	/* Available event filter */LOCAL ULONG wvNetEventId; 	/* Event identifier: see wvNetLib.h */#endif  /* INCLUDE_WVNET */#endif/* forward declarations */LOCAL void ifMultiDelete (struct ifnet *);/* globals */FUNCPTR _m2SetIfLastChange;FUNCPTR _m2IfTableUpdate;/* * Network interface utility routines. * * Routines with ifa_ifwith* names take sockaddr *'s as * parameters. */void ifinit()    {    register struct ifnet *ifp;#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_VERBOSE event */    WV_NET_MARKER_0 (NET_AUX_EVENT, WV_NET_VERBOSE, 0, 8,                     WV_NETEVENT_IFINIT_START)#endif  /* INCLUDE_WVNET */#endif#ifdef VIRTUAL_STACK    if (_ifnet != NULL)#else    if (ifnet != NULL)#endif        {#ifdef VIRTUAL_STACK        for (ifp = _ifnet; ifp; ifp = ifp->if_next)#else        for (ifp = ifnet; ifp; ifp = ifp->if_next)#endif            if (ifp->if_snd.ifq_maxlen == 0)                ifp->if_snd.ifq_maxlen = ifqmaxlen;        }    /* XXX using watchdogs good idea? -gae */    ifslowtimoWd = wdCreate ();#ifdef VIRTUAL_STACK    if_slowtimo (myStackNum);#else    if_slowtimo ();#endif    }/* * Actuall interface reset invocation. */void ifreset2 ()    {    register struct ifnet *ifp;    register struct ifnet *ifpnext;#ifdef VIRTUAL_STACK    ifp = _ifnet;#else    ifp = ifnet;#endif    while (ifp)        {        ifpnext = ifp->if_next;        if (ifp->if_reset)            (*ifp->if_reset)(ifp->if_unit);        ifp = ifpnext;        }    }/* * Call each interface on a reset. */void ifreset ()    {    int 	s;#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_VERBOSE event */    WV_NET_MARKER_0 (NET_AUX_EVENT, WV_NET_VERBOSE, 1, 9,                         WV_NETEVENT_IFRESET_START)#endif  /* INCLUDE_WVNET */#endif    s = splnet ();    ifreset2();    splx (s);    }/* * For rebootHook use only - Immediate i/f reset * * WARNING:  Calling this routine that does not wait spl semaphore * is a violation of mutual exclusion and will cause problems in a * running system. * This routine should only be used if the system is being rebooted * (i.e. when called from a reboot hook) or if the application has * very specific knowledge of the state of all ENDs in the system. */void ifresetImmediate ()    {    int 	s;#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_VERBOSE event */    WV_NET_MARKER_0 (NET_AUX_EVENT, WV_NET_VERBOSE, 1, 9,                         WV_NETEVENT_IFRESET_START)#endif  /* INCLUDE_WVNET */#endif    s = splnet2 (0); /* don't wait spl semaphore */    ifreset2();    splx(s);    }/* * Attach an interface to the list of "active" interfaces. */STATUS if_attach(ifp)    struct ifnet *ifp;    {    unsigned socksize, ifasize;    int namelen, unitlen, masklen;    char workbuf[12], *unitname;#ifdef VIRTUAL_STACK    register struct ifnet **p = &_ifnet;#else    register struct ifnet **p = &ifnet;#endif    register struct sockaddr_dl *sdl;    register struct ifaddr *ifa;    extern void link_rtrequest();    int 	s;#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_VERBOSE event */    WV_NET_MARKER_1 (NET_AUX_EVENT, WV_NET_VERBOSE, 2, 10,                     WV_NETEVENT_IFATTACH_START, ifp)#endif  /* INCLUDE_WVNET */#endif    /* make interface not use trailer protocol by default */	    ifp->if_flags |= IFF_NOTRAILERS;    /* make send queue maxlen be default if none specified;     * this relaxes the requirement that all interfaces be attached     * before calling ifinit */	    if (ifp->if_snd.ifq_maxlen == 0)	ifp->if_snd.ifq_maxlen = ifqmaxlen;	    /*     * create a Link Level name for this device     */    unitname = sprint_d((u_int)ifp->if_unit, workbuf, sizeof(workbuf));    namelen = strlen(ifp->if_name);    unitlen = strlen(unitname);#define _offsetof(t, m) ((int)((caddr_t)&((t *)0)->m))    masklen = _offsetof(struct sockaddr_dl, sdl_data[0]) +    unitlen + namelen;    socksize = masklen + ifp->if_addrlen;#define ROUNDUP(a) (1 + (((a) - 1) | (sizeof(long) - 1)))    socksize = ROUNDUP(socksize);    if (socksize < sizeof(*sdl))	socksize = sizeof(*sdl);    ifasize = sizeof(*ifa) + 2 * socksize;    MALLOC (ifa, struct ifaddr *, ifasize, MT_IFADDR, M_WAIT);     if (ifa == 0)	return (ERROR);    /* Make interface globally visible after all memory is allocated. */    s = splnet ();    while (*p)        p = &((*p)->if_next);    splx (s);    *p = ifp;    ifp->if_index = ifIndexAlloc();    bzero((caddr_t)ifa, ifasize);    sdl = (struct sockaddr_dl *)(ifa + 1);    sdl->sdl_len = socksize;    sdl->sdl_family = AF_LINK;    bcopy(ifp->if_name, sdl->sdl_data, namelen);    bcopy(unitname, namelen + (caddr_t)sdl->sdl_data, unitlen);    sdl->sdl_nlen = (namelen += unitlen);    sdl->sdl_index = ifp->if_index;    sdl->sdl_type = ifp->if_type;    ifa->ifa_ifp = ifp;    ifa->ifa_next = ifp->if_addrlist;    ifa->ifa_rtrequest = link_rtrequest;    ifp->if_addrlist = ifa;    ifa->ifa_addr = (struct sockaddr *)sdl;    sdl = (struct sockaddr_dl *)(socksize + (caddr_t)sdl);    ifa->ifa_netmask = (struct sockaddr *)sdl;    sdl->sdl_len = masklen;    while (namelen != 0)	sdl->sdl_data[--namelen] = 0xff;    if (_m2IfTableUpdate)        _m2IfTableUpdate(ifp, M2_IF_TABLE_INSERT, 0, 0);    /* XXX Temporary fix before changing ethernet drivers */    s = splnet ();    if (ifp->if_output == ether_output)	ether_ifattach (ifp);    splx (s);    return (OK);    }/***************************************************************************** if_dettach - dettaches an interface from the linked list of interfaces** if_dettach is used to dettach an interface from the linked list of* all available interfaces.  This function needs to be used with* if_down () when shutting down a network interface.*/void if_dettach (ifp)    struct ifnet *ifp;			/* inteface pointer */    {    FAST struct ifnet **	pPtrIfp;    FAST struct ifaddr * 	pIfAddr;    FAST struct ifaddr **	pPtrIfAddr;    int 	s;#ifdef WV_INSTRUMENTATION#ifdef INCLUDE_WVNET    /* WV_NET_VERBOSE event */    WV_NET_MARKER_1 (NET_AUX_EVENT, WV_NET_VERBOSE, 3, 11,                     WV_NETEVENT_IFDETACH_START, ifp)#endif  /* INCLUDE_WVNET */#endif#ifdef VIRTUAL_STACK    pPtrIfp = &_ifnet;#else    pPtrIfp = &ifnet;#endif    s = splnet ();    while (*pPtrIfp != NULL)	{	if (*pPtrIfp == ifp)	    {	    pPtrIfAddr = &(*pPtrIfp)->if_addrlist; 	    while (*pPtrIfAddr != NULL)		{		pIfAddr = *pPtrIfAddr; 				*pPtrIfAddr = (*pPtrIfAddr)->ifa_next; #ifdef INET		if (pIfAddr->ifa_addr->sa_family == AF_INET)		    in_ifaddr_remove (pIfAddr);	        else#endif		    IFAFREE (pIfAddr);		}#ifdef INET            if ((*pPtrIfp)->pInmMblk != NULL)                in_delmulti ((*pPtrIfp)->pInmMblk, NULL);	    if (ifp->if_flags & IFF_MULTICAST)                ifMultiDelete (ifp);#endif /* INET */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文欧美字幕免费| 欧美精选在线播放| 中文字幕一区二区三区四区不卡 | 日产国产欧美视频一区精品| 欧美日韩五月天| 日韩av电影免费观看高清完整版| 欧美一区二视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品黑人一区二区三区久久 | 自拍偷拍亚洲激情| 在线免费精品视频| 免费观看成人av| 久久久久久久久久久黄色| 成人黄色av网站在线| 亚洲男同性恋视频| 日韩一区二区三区三四区视频在线观看 | 欧美日韩国产综合一区二区| 日韩精品一区第一页| 久久久亚洲精品石原莉奈| 成人激情免费视频| 午夜一区二区三区视频| 精品sm在线观看| 91福利社在线观看| 美日韩一区二区| 国产精品黄色在线观看| 欧美日韩免费在线视频| 国产一区二区视频在线| 一区二区三区在线不卡| 日韩欧美卡一卡二| 色哟哟国产精品免费观看| 日韩一区欧美二区| 亚洲欧洲精品天堂一级| 日韩一级黄色大片| 色婷婷久久99综合精品jk白丝| 美女一区二区三区在线观看| 国产精品麻豆欧美日韩ww| 欧美日韩国产系列| 成人av电影在线观看| 日本不卡在线视频| 亚洲老妇xxxxxx| 久久婷婷色综合| 欧美挠脚心视频网站| 不卡免费追剧大全电视剧网站| 日韩精品亚洲专区| 综合久久国产九一剧情麻豆| 精品国产sm最大网站| 欧美美女一区二区| 91黄色激情网站| 国产成人亚洲综合a∨婷婷图片| 日韩国产在线一| 亚洲精品国产一区二区精华液| 精品免费一区二区三区| 欧美美女直播网站| 在线中文字幕不卡| 成人app在线| 高清av一区二区| 久久国产尿小便嘘嘘尿| 日韩中文字幕亚洲一区二区va在线| 一色屋精品亚洲香蕉网站| 久久久亚洲综合| 精品国产乱码久久久久久图片| 欧美人牲a欧美精品| 在线亚洲高清视频| 91老司机福利 在线| 成人app在线| 粉嫩嫩av羞羞动漫久久久| 国产毛片精品视频| 久久国产免费看| 免费久久精品视频| 麻豆精品一二三| 日本伊人色综合网| 午夜激情一区二区| 午夜激情久久久| 日韩经典中文字幕一区| 五月婷婷色综合| 五月天视频一区| 日韩高清中文字幕一区| 首页综合国产亚洲丝袜| 日本欧美一区二区在线观看| 亚洲国产综合视频在线观看| 亚洲在线中文字幕| 亚洲成人免费av| 丝袜亚洲精品中文字幕一区| 日韩va亚洲va欧美va久久| 欧美aaaaaa午夜精品| 久久99久久久久| 激情五月激情综合网| 国产乱码精品1区2区3区| 国产中文一区二区三区| 国产精一品亚洲二区在线视频| 国产综合久久久久久久久久久久 | 成人免费av网站| 99精品久久99久久久久| 欧美专区亚洲专区| 91精品国产色综合久久不卡蜜臀 | 91麻豆精品91久久久久同性| 日韩欧美另类在线| 亚洲国产精品av| 亚洲乱码一区二区三区在线观看| 一区二区免费在线| 日韩国产精品久久久久久亚洲| 精品一区二区综合| 成人爽a毛片一区二区免费| 99精品视频中文字幕| 欧美另类一区二区三区| 日韩精品一区二区三区老鸭窝| 久久婷婷成人综合色| 一色桃子久久精品亚洲| 亚洲成av人**亚洲成av**| 久88久久88久久久| 91同城在线观看| 91精品国产色综合久久久蜜香臀| 国产日韩欧美综合一区| 亚洲狼人国产精品| 亚洲一区免费在线观看| 一区二区高清在线| 久久国产精品一区二区| 国产精品一区二区免费不卡 | 奇米888四色在线精品| 国产成人免费在线| 欧美在线制服丝袜| 久久免费看少妇高潮| 亚洲精品免费视频| 精品亚洲国内自在自线福利| 色婷婷久久久久swag精品| 欧美成人一区二区三区| 一区二区三区精品在线| 国产凹凸在线观看一区二区| 精品视频免费在线| 欧美激情在线看| 免费欧美高清视频| 在线一区二区视频| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲国产三级在线| 成人激情校园春色| 久久影院午夜论| 日韩精品免费专区| 欧美性感一类影片在线播放| 日本一区二区三区dvd视频在线| 视频一区二区三区入口| 91丨porny丨蝌蚪视频| 2014亚洲片线观看视频免费| 五月婷婷激情综合网| 色婷婷综合久久久| 亚洲欧美在线aaa| 国产乱妇无码大片在线观看| 日韩一区二区三区免费观看| 亚洲一区二区三区四区在线免费观看| 国产精品国产三级国产有无不卡 | 欧美亚洲国产一区在线观看网站| 91精品国产综合久久香蕉的特点| 91美女片黄在线观看| 亚洲国产一区二区a毛片| 波多野洁衣一区| xfplay精品久久| 精品系列免费在线观看| 88在线观看91蜜桃国自产| 亚洲主播在线播放| 色婷婷久久综合| 亚洲精品日韩专区silk| 成人激情小说乱人伦| 亚洲国产电影在线观看| 国产伦精品一区二区三区免费迷 | 国产精品久久久久久久久久免费看| 精品一区二区三区视频在线观看| 91麻豆精品国产自产在线| 亚洲aaa精品| 欧美日韩精品欧美日韩精品一综合| 亚洲另类一区二区| 日本黄色一区二区| 亚洲午夜免费福利视频| 欧美日韩视频在线观看一区二区三区| 亚洲成人中文在线| 欧美丰满嫩嫩电影| 免费视频一区二区| 精品国内二区三区| 国产成人av影院| 国产精品久久777777| 一本色道久久加勒比精品| 欧美日韩国产综合视频在线观看| 欧美国产欧美综合| av在线播放不卡| 亚洲摸摸操操av| 欧美日韩国产区一| 看片的网站亚洲| 国产欧美日韩精品一区| 成人免费的视频| 一区二区国产视频| 欧美一区二区视频免费观看| 国内精品嫩模私拍在线| 亚洲国产高清aⅴ视频| 在线免费不卡视频| 美女视频免费一区| 亚洲国产精品二十页| 色老头久久综合| 蜜桃视频一区二区| 国产精品久久久久aaaa| 欧美亚洲禁片免费| 激情综合五月婷婷| 成人欧美一区二区三区黑人麻豆 |