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

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

?? in_var.h

?? ecos下的gui開發源代碼
?? H
字號:
//==========================================================================
//
//      include/netinet/in_var.h
//
//==========================================================================
//####BSDCOPYRIGHTBEGIN####
//
// -------------------------------------------
//
// Portions of this software may have been derived from OpenBSD, 
// FreeBSD or other sources, and are covered by the appropriate
// copyright disclaimers included herein.
//
// Portions created by Red Hat are
// Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
//
// -------------------------------------------
//
//####BSDCOPYRIGHTEND####
//==========================================================================

/*
 * Copyright (c) 1985, 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.
 *
 *	@(#)in_var.h	8.2 (Berkeley) 1/9/95
 * $FreeBSD: src/sys/netinet/in_var.h,v 1.33.2.2 2001/07/17 10:50:01 ru Exp $
 */

#ifndef _NETINET_IN_VAR_H_
#define _NETINET_IN_VAR_H_

#include <sys/queue.h>

/*
 * Interface address, Internet version.  One of these structures
 * is allocated for each Internet address on an interface.
 * The ifaddr structure contains the protocol-independent part
 * of the structure and is assumed to be first.
 */
struct in_ifaddr {
	struct	ifaddr ia_ifa;		/* protocol-independent info */
#define	ia_ifp		ia_ifa.ifa_ifp
#define ia_flags	ia_ifa.ifa_flags
					/* ia_{,sub}net{,mask} in host order */
	u_long	ia_net;			/* network number of interface */
	u_long	ia_netmask;		/* mask of net part */
	u_long	ia_subnet;		/* subnet number, including net */
	u_long	ia_subnetmask;		/* mask of subnet part */
	struct	in_addr ia_netbroadcast; /* to recognize net broadcasts */
	TAILQ_ENTRY(in_ifaddr) ia_link;	/* tailq macro glue */
	struct	sockaddr_in ia_addr;	/* reserve space for interface name */
	struct	sockaddr_in ia_dstaddr; /* reserve space for broadcast addr */
#define	ia_broadaddr	ia_dstaddr
	struct	sockaddr_in ia_sockmask; /* reserve space for general netmask */
};

struct	in_aliasreq {
	char	ifra_name[IFNAMSIZ];		/* if name, e.g. "en0" */
	struct	sockaddr_in ifra_addr;
	struct	sockaddr_in ifra_broadaddr;
#define ifra_dstaddr ifra_broadaddr
	struct	sockaddr_in ifra_mask;
};
/*
 * Given a pointer to an in_ifaddr (ifaddr),
 * return a pointer to the addr as a sockaddr_in.
 */
#define IA_SIN(ia)    (&(((struct in_ifaddr *)(ia))->ia_addr))
#define IA_DSTSIN(ia) (&(((struct in_ifaddr *)(ia))->ia_dstaddr))

#define IN_LNAOF(in, ifa) \
	((ntohl((in).s_addr) & ~((struct in_ifaddr *)(ifa)->ia_subnetmask))


#ifdef	_KERNEL
extern	TAILQ_HEAD(in_ifaddrhead, in_ifaddr) in_ifaddrhead;
extern	struct	ifqueue	ipintrq;		/* ip packet input queue */
extern	struct	in_addr zeroin_addr;
extern	int /*u_char*/	inetctlerrmap[];

/*
 * Macro for finding the interface (ifnet structure) corresponding to one
 * of our IP addresses.
 */
#define INADDR_TO_IFP(addr, ifp) \
	/* struct in_addr addr; */ \
	/* struct ifnet *ifp; */ \
{ \
	struct in_ifaddr *ia; \
\
	TAILQ_FOREACH(ia, &in_ifaddrhead, ia_link) \
		if (IA_SIN(ia)->sin_addr.s_addr == (addr).s_addr) \
			break; \
	(ifp) = (ia == NULL) ? NULL : ia->ia_ifp; \
}

/*
 * Macro for finding the internet address structure (in_ifaddr) corresponding
 * to a given interface (ifnet structure).
 */
#define IFP_TO_IA(ifp, ia) \
	/* struct ifnet *ifp; */ \
	/* struct in_ifaddr *ia; */ \
{ \
	for ((ia) = TAILQ_FIRST(&in_ifaddrhead); \
	    (ia) != NULL && (ia)->ia_ifp != (ifp); \
	    (ia) = TAILQ_NEXT((ia), ia_link)) \
		continue; \
}
#endif

/*
 * This information should be part of the ifnet structure but we don't wish
 * to change that - as it might break a number of things
 */

struct router_info {
	struct ifnet *rti_ifp;
	int    rti_type; /* type of router which is querier on this interface */
	int    rti_time; /* # of slow timeouts since last old query */
	struct router_info *rti_next;
};

/*
 * Internet multicast address structure.  There is one of these for each IP
 * multicast group to which this host belongs on a given network interface.
 * For every entry on the interface's if_multiaddrs list which represents
 * an IP multicast group, there is one of these structures.  They are also
 * kept on a system-wide list to make it easier to keep our legacy IGMP code
 * compatible with the rest of the world (see IN_FIRST_MULTI et al, below).
 */
struct in_multi {
	LIST_ENTRY(in_multi) inm_link;	/* queue macro glue */
	struct	in_addr inm_addr;	/* IP multicast address, convenience */
	struct	ifnet *inm_ifp;		/* back pointer to ifnet */
	struct	ifmultiaddr *inm_ifma;	/* back pointer to ifmultiaddr */
	u_int	inm_timer;		/* IGMP membership report timer */
	u_int	inm_state;		/*  state of the membership */
	struct	router_info *inm_rti;	/* router info*/
};

#ifdef _KERNEL

#ifdef SYSCTL_DECL
SYSCTL_DECL(_net_inet_ip);
SYSCTL_DECL(_net_inet_raw);
#endif

extern LIST_HEAD(in_multihead, in_multi) in_multihead;

/*
 * Structure used by macros below to remember position when stepping through
 * all of the in_multi records.
 */
struct in_multistep {
	struct in_multi *i_inm;
};

/*
 * Macro for looking up the in_multi record for a given IP multicast address
 * on a given interface.  If no matching record is found, "inm" is set null.
 */
#define IN_LOOKUP_MULTI(addr, ifp, inm) \
	/* struct in_addr addr; */ \
	/* struct ifnet *ifp; */ \
	/* struct in_multi *inm; */ \
do { \
	struct ifmultiaddr *ifma; \
\
	LIST_FOREACH(ifma, &((ifp)->if_multiaddrs), ifma_link) { \
		if (ifma->ifma_addr->sa_family == AF_INET \
		    && ((struct sockaddr_in *)ifma->ifma_addr)->sin_addr.s_addr == \
		    (addr).s_addr) \
			break; \
	} \
	(inm) = ifma ? ifma->ifma_protospec : 0; \
} while(0)

/*
 * Macro to step through all of the in_multi records, one at a time.
 * The current position is remembered in "step", which the caller must
 * provide.  IN_FIRST_MULTI(), below, must be called to initialize "step"
 * and get the first record.  Both macros return a NULL "inm" when there
 * are no remaining records.
 */
#define IN_NEXT_MULTI(step, inm) \
	/* struct in_multistep  step; */ \
	/* struct in_multi *inm; */ \
do { \
	if (((inm) = (step).i_inm) != NULL) \
		(step).i_inm = LIST_NEXT((step).i_inm, inm_link); \
} while(0)

#define IN_FIRST_MULTI(step, inm) \
	/* struct in_multistep step; */ \
	/* struct in_multi *inm; */ \
do { \
	(step).i_inm = LIST_FIRST(&in_multihead); \
	IN_NEXT_MULTI((step), (inm)); \
} while(0)

struct	route;
struct	in_multi *in_addmulti __P((struct in_addr *, struct ifnet *));
void	in_delmulti __P((struct in_multi *));
int	in_control __P((struct socket *, u_long, caddr_t, struct ifnet *,
			struct proc *));
void	in_rtqdrain __P((void));
void	ip_input __P((struct mbuf *));
int	in_ifadown __P((struct ifaddr *ifa, int));
void	in_ifscrub __P((struct ifnet *, struct in_ifaddr *));
int	ipflow_fastforward __P((struct mbuf *));
void	ipflow_create __P((const struct route *, struct mbuf *));
void	ipflow_slowtimo __P((void));

#endif /* _KERNEL */

/* INET6 stuff */
#include <netinet6/in6_var.h>

#endif /* _NETINET_IN_VAR_H_ */



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产91综合久久蜜臀| 91美女福利视频| 亚洲蜜臀av乱码久久精品蜜桃| 欧美精品一区二区三区蜜桃视频| 91精品国产综合久久精品麻豆| 欧美日韩一区二区三区四区五区| 91老师国产黑色丝袜在线| 97超碰欧美中文字幕| 91亚洲精品久久久蜜桃| 色av一区二区| 欧美日韩一区二区三区免费看| 欧美日韩精品一区二区三区 | 日韩一级成人av| 欧美一区二区精品在线| 精品国产精品一区二区夜夜嗨| 精品国产区一区| 国产精品久久一级| 亚洲天堂中文字幕| 亚洲一区二区三区四区五区中文| 亚洲女与黑人做爰| 日韩精品一级中文字幕精品视频免费观看 | 国产激情视频一区二区在线观看 | 精品国内片67194| 久久女同性恋中文字幕| 国产精品久久久久久久久快鸭 | 欧洲另类一二三四区| 51精品久久久久久久蜜臀| 久久综合久色欧美综合狠狠| 国产精品久久久久久久久晋中 | 久久精品免费看| 成人激情视频网站| 欧美美女一区二区在线观看| 精品99999| 亚洲你懂的在线视频| 日韩精品1区2区3区| 粉嫩蜜臀av国产精品网站| 91精品福利在线| 精品动漫一区二区三区在线观看| 国产精品麻豆久久久| 日本欧美韩国一区三区| 丰满亚洲少妇av| 欧美日韩国产三级| 国产精品理论片在线观看| 五月天丁香久久| 99精品视频在线免费观看| 欧美日韩国产123区| 国产精品久久综合| 91丨porny丨蝌蚪视频| 欧美日本国产一区| 国产精品女主播av| 九九视频精品免费| 欧美喷潮久久久xxxxx| 国产精品美女www爽爽爽| 六月婷婷色综合| 欧美日韩二区三区| 亚洲精品成人精品456| 国产精品资源在线看| 91精品国产色综合久久不卡蜜臀| 亚洲欧洲日产国产综合网| 国产精品亚洲午夜一区二区三区 | 国产精品视频一二| 国内不卡的二区三区中文字幕| 欧美日韩卡一卡二| 夜夜嗨av一区二区三区中文字幕| 成人国产精品免费网站| 国产女人18水真多18精品一级做| 另类的小说在线视频另类成人小视频在线| 色婷婷综合久色| 国产精品福利电影一区二区三区四区| 久久99精品久久久久久动态图 | 国产精品美女久久久久久久| 国产精品99久久久久久似苏梦涵| 欧美不卡一区二区三区| 三级在线观看一区二区| 欧美精三区欧美精三区| 亚洲成人中文在线| 这里是久久伊人| 久久精品国产一区二区三| 欧美电视剧在线观看完整版| 蜜桃视频一区二区三区在线观看| 欧美一区二区三区精品| 日韩精品一级中文字幕精品视频免费观看| 欧美日韩在线播| 日韩成人午夜精品| 久久综合狠狠综合| 大胆欧美人体老妇| 综合色天天鬼久久鬼色| 色哟哟精品一区| 天堂一区二区在线免费观看| 日韩精品中文字幕一区二区三区| 国产在线视频一区二区| 中文一区二区完整视频在线观看| www.日韩精品| 亚洲成精国产精品女| 91精品国产色综合久久不卡电影 | 国产亚洲精品7777| 91香蕉视频mp4| 爽好久久久欧美精品| 日韩欧美在线1卡| 成人丝袜视频网| 一区二区激情小说| 日韩欧美黄色影院| av电影在线不卡| 午夜不卡av在线| 日本一区二区三区dvd视频在线| 欧美一区二区三区视频在线观看| 男女男精品网站| 欧美国产欧美综合| 欧美日韩国产三级| 国产成a人无v码亚洲福利| 亚洲激情图片小说视频| 日韩欧美精品在线| 色综合天天综合网国产成人综合天| 亚洲午夜一区二区三区| 久久新电视剧免费观看| 在线视频你懂得一区| 国产麻豆精品在线观看| 亚洲综合免费观看高清完整版在线| 日韩欧美高清一区| 色88888久久久久久影院按摩| 久久超碰97中文字幕| 亚洲裸体在线观看| 国产亚洲va综合人人澡精品| 欧美欧美欧美欧美| av动漫一区二区| 国产精品一品视频| 视频在线观看一区| 亚洲乱码国产乱码精品精小说| 久久亚洲免费视频| 日韩欧美三级在线| 欧美人伦禁忌dvd放荡欲情| k8久久久一区二区三区| 国产一区二区三区av电影| 天天色天天操综合| 亚洲欧美成aⅴ人在线观看| 国产清纯白嫩初高生在线观看91| 91精品国产免费久久综合| 一本一本大道香蕉久在线精品| 国产米奇在线777精品观看| 日本欧美久久久久免费播放网| 一区二区三区产品免费精品久久75| 欧美国产国产综合| 国产亚洲精品福利| 久久久综合精品| 精品国产电影一区二区| 日韩欧美高清在线| 精品久久人人做人人爱| 日韩一区二区麻豆国产| 欧美一区二区三区精品| 欧美夫妻性生活| 欧美精选一区二区| 555www色欧美视频| 欧美一级黄色录像| 日韩欧美专区在线| 精品久久久久香蕉网| 久久久久久久久久电影| 2021中文字幕一区亚洲| 国产午夜精品一区二区| 国产婷婷色一区二区三区| 国产欧美日韩卡一| 国产精品的网站| 亚洲精品福利视频网站| 亚洲电影一级黄| 日韩激情一二三区| 激情成人综合网| 成人国产精品视频| 91久久精品一区二区二区| 欧美日韩在线三级| 日韩小视频在线观看专区| 精品福利一二区| 国产精品麻豆久久久| 亚洲精品成人天堂一二三| 香蕉成人啪国产精品视频综合网| 婷婷六月综合亚洲| 国产麻豆精品在线| 91论坛在线播放| 欧美一区二区在线免费观看| 精品av综合导航| 中文字幕佐山爱一区二区免费| 一区二区三区免费| 久久国产精品一区二区| 成人免费毛片aaaaa**| 欧美日韩三级视频| 久久精品一区四区| 亚洲宅男天堂在线观看无病毒| 五月婷婷久久综合| 欧美群妇大交群中文字幕| 日韩一级片网址| 国产精品嫩草99a| 视频一区二区欧美| av在线不卡免费看| 91精品国产91久久久久久最新毛片| 久久九九久精品国产免费直播| 一区二区三区欧美| 国产成人在线观看免费网站| 欧美影视一区在线| 国产日本欧洲亚洲| 另类人妖一区二区av| 欧美日韩一区二区三区视频 | 99国产精品久久久久久久久久久|