⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 if_var.h

📁 vxworks 6.x 的全部头文件
💻 H
📖 第 1 页 / 共 2 页
字号:
};typedef void if_init_f_t (void *);/* * Binary compatability gunk for 4.x ONLY. */#define if_capabilities	_u1.uif_capabilities#define if_capenable	_u2.uif_capenable#define	if_mtu		if_data.ifi_mtu#define	if_type		if_data.ifi_type#define if_physical	if_data.ifi_physical#define	if_addrlen	if_data.ifi_addrlen#define	if_hdrlen	if_data.ifi_hdrlen#define if_link_state	if_data.ifi_link_state#define	if_metric	if_data.ifi_metric#define	if_baudrate	if_data.ifi_baudrate#define	if_hwassist	if_data.ifi_hwassist#define	if_ipackets	if_data.ifi_ipackets#define	if_ierrors	if_data.ifi_ierrors#define	if_opackets	if_data.ifi_opackets#define	if_oerrors	if_data.ifi_oerrors#define	if_collisions	if_data.ifi_collisions#define	if_ibytes	if_data.ifi_ibytes#define	if_obytes	if_data.ifi_obytes#define	if_imcasts	if_data.ifi_imcasts#define	if_omcasts	if_data.ifi_omcasts#define	if_iqdrops	if_data.ifi_iqdrops#define	if_noproto	if_data.ifi_noproto#define	if_lastchange	if_data.ifi_lastchange#define if_recvquota	if_data.ifi_recvquota#define	if_xmitquota	if_data.ifi_xmitquota#define if_rawoutput(if, m, sa) if_output(if, m, sa, (struct rtentry *)0)/* for compatibility with other BSDs */#define	if_addrlist	if_addrhead#define	if_list		if_link#define if_name(ifp)	((ifp)->if_xname)/* * Bit values in if_ipending */#define	IFI_RECV	1	/* I want to receive */#define	IFI_XMIT	2	/* I want to transmit *//* * Output queues (ifp->if_snd) and slow device input queues (*ifp->if_slowq) * are queues of messages stored on ifqueue structures * (defined above).  Entries are added to and deleted from these structures * by these macros, which should be called with ipl raised to splimp(). */#define	IF_QFULL(ifq)		((ifq)->ifq_len >= (ifq)->ifq_maxlen)#define	IF_DROP(ifq)		((ifq)->ifq_drops++)#define	IF_ENQUEUE(ifq, m) \    do  { \	(m)->m_nextpkt = 0; \	if ((ifq)->ifq_tail == 0) \		(ifq)->ifq_head = m; \	else \		(ifq)->ifq_tail->m_nextpkt = m; \	(ifq)->ifq_tail = m; \	(ifq)->ifq_len++; \        } while (0)#define	IF_PREPEND(ifq, m) { \	(m)->m_nextpkt = (ifq)->ifq_head; \	if ((ifq)->ifq_tail == 0) \		(ifq)->ifq_tail = (m); \	(ifq)->ifq_head = (m); \	(ifq)->ifq_len++; \}#if !defined IF_DEQUEUEIF#define IF_DEQUEUEIF(ifq, m, ifp) { \        (m) = (ifq)->ifq_head; \        if (m) { \                if (((ifq)->ifq_head = (m)->m_act) == 0) \                        (ifq)->ifq_tail = 0; \                (m)->m_act = 0; \                (ifq)->ifq_len--; \                (ifp) = *(mtod((m), struct ifnet **)); \                IF_ADJ(m); \        } \}#endif /* IF_DEQUEUEIF */#define	IF_DEQUEUE(ifq, m) { \	(m) = (ifq)->ifq_head; \	if (m) { \		if (((ifq)->ifq_head = (m)->m_nextpkt) == 0) \			(ifq)->ifq_tail = 0; \		(m)->m_nextpkt = 0; \		(ifq)->ifq_len--; \	} \}#ifdef _WRS_KERNEL/* * #define _IF_QFULL for compatibility with -current */#define	_IF_QFULL(ifq)				IF_QFULL(ifq)/* * IF_HANDOFF* and if_handoff are only used in ether_output() and only if * NS is defined (undefined by default). Added NS protection to keep the * compiler happy (for "if_handoff not used" warnings). */#ifdef NS#define IF_HANDOFF(ifq, m, ifp)			if_handoff(ifq, m, ifp, 0)#define IF_HANDOFF_ADJ(ifq, m, ifp, adj)	if_handoff(ifq, m, ifp, adj)static __inline intif_handoff(struct ifqueue *ifq, struct mbuf *m, struct ifnet *ifp, int adjust){	int need_if_start = 0;	int s = splimp(); 	if (IF_QFULL(ifq)) {		IF_DROP(ifq);		splx(s);		m_freem(m);		return (0);	}	if (ifp != NULL) {		ifp->if_obytes += m->m_pkthdr.len + adjust;		if (m->m_flags & M_MCAST)			ifp->if_omcasts++;		need_if_start = !(ifp->if_flags & IFF_OACTIVE);	}	IF_ENQUEUE(ifq, m);	if (need_if_start)		(*ifp->if_start)(ifp);	splx(s);	return (1);}#endif /* NS *//* * 72 was chosen below because it is the size of a TCP/IP * header (40) + the minimum mss (32). */#define	IF_MINMTU	72#define	IF_MAXMTU	65535#endif /* _WRS_KERNEL *//* * The ifaddr structure contains information about one address * of an interface.  They are maintained by the different address families, * are allocated and attached when an address is set, and are linked * together so all addresses for an interface can be located. */struct ifaddr {	struct	sockaddr *ifa_addr;	/* address of interface */	struct	sockaddr *ifa_dstaddr;	/* other end of p-to-p link */#define	ifa_broadaddr	ifa_dstaddr	/* broadcast address interface */	struct	sockaddr *ifa_netmask;	/* used to determine subnet */	struct	if_data if_data;	/* not all members are meaningful */	struct	ifnet *ifa_ifp;		/* back-pointer to interface */	TAILQ_ENTRY(ifaddr) ifa_link;	/* queue macro glue */	void	(*ifa_rtrequest)	/* check or clean routes (+ or -)'d */		(int, struct rtentry *, struct sockaddr *);	u_short	ifa_flags;		/* mostly rt_flags for cloning */	u_int	ifa_refcnt;		/* references to this structure */	int	ifa_metric;		/* cost of going out this interface */#ifdef notdef	struct	rtentry *ifa_rt;	/* XXXX for ROUTETOIF ????? */#endif	int (*ifa_claim_addr)		/* check if an addr goes to this if */		(struct ifaddr *, struct sockaddr *);};#define	IFA_ROUTE	RTF_UP		/* route installed *//* for compatibility with other BSDs */#define	ifa_list	ifa_link/* * The prefix structure contains information about one prefix * of an interface.  They are maintained by the different address families, * are allocated and attached when an prefix or an address is set, * and are linked together so all prefixes for an interface can be located. */struct ifprefix {	struct	sockaddr *ifpr_prefix;	/* prefix of interface */	struct	ifnet *ifpr_ifp;	/* back-pointer to interface */	TAILQ_ENTRY(ifprefix) ifpr_list; /* queue macro glue */	u_char	ifpr_plen;		/* prefix length in bits */	u_char	ifpr_type;		/* protocol dependent prefix type */};/* * Multicast address structure.  This is analogous to the ifaddr * structure except that it keeps track of multicast addresses. * Also, the reference count here is a count of requests for this * address, not a count of pointers to this structure. */struct ifmultiaddr {	LIST_ENTRY(ifmultiaddr) ifma_link; /* queue macro glue */	struct	sockaddr *ifma_addr; 	/* address this membership is for */	struct	sockaddr *ifma_lladdr;	/* link-layer translation, if any */	struct	ifnet *ifma_ifp;	/* back-pointer to interface */	u_int	ifma_refcount;		/* reference count */	void	*ifma_protospec;	/* protocol-specific state, if any */};#ifdef _WRS_KERNEL#define	IFAFREE(ifa) \	do { \		if ((ifa)->ifa_refcnt <= 0) \			ifafree(ifa); \		else \			(ifa)->ifa_refcnt--; \	} while (0)#ifndef VIRTUAL_STACKextern	struct ifnethead ifnet_head;extern struct	ifnet	**ifindex2ifnet;extern	int ifqmaxlen;extern	struct ifnet *loif;extern	int last_if_index;extern	struct ifaddr **ifnet_addrs;#endif /* VIRTUAL_STACK */_WRS_FASTTEXTint	ether_output(struct ifnet *,	   struct mbuf *, struct sockaddr *, struct rtentry *);int	if_addmulti(struct ifnet *, struct sockaddr *, struct ifmultiaddr **);int	if_allmulti(struct ifnet *, int);int	if_attach(struct ifnet *);int	if_delmulti(struct ifnet *, struct sockaddr *);void	if_detach(struct ifnet *);void	if_down(struct ifnet *, short);void	if_initname(struct ifnet *, char *, int);void	if_route(struct ifnet *, int flag, int fam);int	if_setlladdr(struct ifnet *, const u_char *, int);void	if_unroute(struct ifnet *, int flag, int fam);void	if_up(struct ifnet *, short);/*void	ifinit(void);*/ /* declared in systm.h for main() */int	ifioctl(struct socket *, u_long, caddr_t, struct proc *);int	ifpromisc(struct ifnet *, int);struct	ifnet *ifunit(const char *);struct	ifnet *if_withname(struct sockaddr *);struct	ifaddr *ifa_ifwithaddr(struct sockaddr *);struct	ifaddr *ifa_ifwithdstaddr(struct sockaddr *);struct	ifaddr *ifa_ifwithnet(struct sockaddr *);struct	ifaddr *ifa_ifwithroute(int, struct sockaddr *, struct sockaddr *);struct	ifaddr *ifaof_ifpforaddr(struct sockaddr *, struct ifnet *);void	ifafree(struct ifaddr *);struct	ifmultiaddr *ifmaof_ifpforaddr(struct sockaddr *, struct ifnet *);int	if_simloop(struct ifnet *ifp, struct mbuf *m, int af, int hlen);extern void intrqJobHandler (INTRQ_QJOB * pJob);#ifdef VIRTUAL_STACKextern void intrqFlush (struct ifqueue * ifq);#endif#define IF_LLADDR(ifp)							\    LLADDR((struct sockaddr_dl *) ifnet_addrs[ifp->if_index - 1]->ifa_addr)#ifdef DEVICE_POLLINGenum poll_cmd { POLL_ONLY, POLL_AND_CHECK_STATUS, POLL_DEREGISTER };typedef	void poll_handler_t (struct ifnet *ifp,		enum poll_cmd cmd, int count);int	ether_poll_register(poll_handler_t *h, struct ifnet *ifp);int	ether_poll_deregister(struct ifnet *ifp);#endif /* DEVICE_POLLING */#endif /* _WRS_KERNEL */#ifdef __cplusplus}#endif#endif /* !_NET_IF_VAR_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -