Phoenix-RTOS: Add <netpacket/packet.h> header and import <net/if_arp.h> header from FreeBSD.
This commit is contained in:
		
				
					committed by
					
						 Corinna Vinschen
						Corinna Vinschen
					
				
			
			
				
	
			
			
			
						parent
						
							4473035feb
						
					
				
				
					commit
					ab92a06cd4
				
			
							
								
								
									
										121
									
								
								newlib/libc/sys/phoenix/include/net/if_arp.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								newlib/libc/sys/phoenix/include/net/if_arp.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,121 @@ | ||||
| /* | ||||
|  * Copyright (c) 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_arp.h	8.1 (Berkeley) 6/10/93 | ||||
|  * $FreeBSD: src/sys/net/if_arp.h,v 1.16 2001/10/14 20:17:52 fjoe Exp $ | ||||
|  */ | ||||
|  | ||||
| #ifndef _NET_IF_ARP_H_ | ||||
| #define	_NET_IF_ARP_H_ | ||||
|  | ||||
| /* | ||||
|  * Address Resolution Protocol. | ||||
|  * | ||||
|  * See RFC 826 for protocol description.  ARP packets are variable | ||||
|  * in size; the arphdr structure defines the fixed-length portion. | ||||
|  * Protocol type values are the same as those for 10 Mb/s Ethernet. | ||||
|  * It is followed by the variable-sized fields ar_sha, arp_spa, | ||||
|  * arp_tha and arp_tpa in that order, according to the lengths | ||||
|  * specified.  Field names used correspond to RFC 826. | ||||
|  */ | ||||
| struct	arphdr { | ||||
| 	u_short	ar_hrd;		/* format of hardware address */ | ||||
| #define ARPHRD_ETHER 	1	/* ethernet hardware format */ | ||||
| #define ARPHRD_IEEE802	6	/* token-ring hardware format */ | ||||
| #define ARPHRD_ARCNET	7	/* arcnet hardware format */ | ||||
| #define ARPHRD_FRELAY 	15	/* frame relay hardware format */ | ||||
| 	u_short	ar_pro;		/* format of protocol address */ | ||||
| 	u_char	ar_hln;		/* length of hardware address */ | ||||
| 	u_char	ar_pln;		/* length of protocol address */ | ||||
| 	u_short	ar_op;		/* one of: */ | ||||
| #define	ARPOP_REQUEST	1	/* request to resolve address */ | ||||
| #define	ARPOP_REPLY	2	/* response to previous request */ | ||||
| #define	ARPOP_REVREQUEST 3	/* request protocol address given hardware */ | ||||
| #define	ARPOP_REVREPLY	4	/* response giving protocol address */ | ||||
| #define ARPOP_INVREQUEST 8 	/* request to identify peer */ | ||||
| #define ARPOP_INVREPLY	9	/* response identifying peer */ | ||||
| /* | ||||
|  * The remaining fields are variable in size, | ||||
|  * according to the sizes above. | ||||
|  */ | ||||
| #ifdef COMMENT_ONLY | ||||
| 	u_char	ar_sha[];	/* sender hardware address */ | ||||
| 	u_char	ar_spa[];	/* sender protocol address */ | ||||
| 	u_char	ar_tha[];	/* target hardware address */ | ||||
| 	u_char	ar_tpa[];	/* target protocol address */ | ||||
| #endif | ||||
| }; | ||||
|  | ||||
| #define ar_sha(ap)	(((caddr_t)((ap)+1)) +   0) | ||||
| #define ar_spa(ap)	(((caddr_t)((ap)+1)) +   (ap)->ar_hln) | ||||
| #define ar_tha(ap)	(((caddr_t)((ap)+1)) +   (ap)->ar_hln + (ap)->ar_pln) | ||||
| #define ar_tpa(ap)	(((caddr_t)((ap)+1)) + 2*(ap)->ar_hln + (ap)->ar_pln) | ||||
|  | ||||
| #define arphdr_len2(ar_hln, ar_pln)					\ | ||||
| 	(sizeof(struct arphdr) + 2*(ar_hln) + 2*(ar_pln)) | ||||
| #define arphdr_len(ap)	(arphdr_len2((ap)->ar_hln, (ap)->ar_pln)) | ||||
|  | ||||
| /* | ||||
|  * ARP ioctl request | ||||
|  */ | ||||
| struct arpreq { | ||||
| 	struct	sockaddr arp_pa;		/* protocol address */ | ||||
| 	struct	sockaddr arp_ha;		/* hardware address */ | ||||
| 	int	arp_flags;			/* flags */ | ||||
| }; | ||||
| /*  arp_flags and at_flags field values */ | ||||
| #define	ATF_INUSE	0x01	/* entry in use */ | ||||
| #define ATF_COM		0x02	/* completed entry (enaddr valid) */ | ||||
| #define	ATF_PERM	0x04	/* permanent entry */ | ||||
| #define	ATF_PUBL	0x08	/* publish entry (respond for other host) */ | ||||
| #define	ATF_USETRAILERS	0x10	/* has requested trailers */ | ||||
|  | ||||
| #ifdef _KERNEL | ||||
| /* | ||||
|  * Structure shared between the ethernet driver modules and | ||||
|  * the address resolution code.  For example, each ec_softc or il_softc | ||||
|  * begins with this structure. | ||||
|  */ | ||||
| struct	arpcom { | ||||
| 	/* | ||||
| 	 * The ifnet struct _must_ be at the head of this structure. | ||||
| 	 */ | ||||
| 	struct 	ifnet ac_if;		/* network-visible interface */ | ||||
| 	u_char	ac_enaddr[6];		/* ethernet hardware address */ | ||||
| 	int	ac_multicnt;		/* length of ac_multiaddrs list */ | ||||
| 	void	*ac_netgraph;		/* ng_ether(4) netgraph node info */ | ||||
| }; | ||||
|  | ||||
| extern u_char	etherbroadcastaddr[6]; | ||||
| #endif | ||||
|  | ||||
| #endif /* !_NET_IF_ARP_H_ */ | ||||
							
								
								
									
										63
									
								
								newlib/libc/sys/phoenix/include/netpacket/packet.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								newlib/libc/sys/phoenix/include/netpacket/packet.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| /* Copyright (c) 2016 Phoenix Systems | ||||
|    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. | ||||
|  | ||||
|    THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.*/ | ||||
|  | ||||
| #ifndef NETPACKET_PACKET_H | ||||
| #define NETPACKET_PACKET_H | ||||
|  | ||||
| struct sockaddr_ll { | ||||
| 	unsigned short int sll_family; | ||||
| 	unsigned short int sll_protocol; | ||||
| 	int sll_ifindex; | ||||
| 	unsigned short int sll_hatype; | ||||
| 	unsigned char sll_pkttype; | ||||
| 	unsigned char sll_halen; | ||||
| 	unsigned char sll_addr[8]; | ||||
|   }; | ||||
|  | ||||
| #define PACKET_ADD_MEMBERSHIP		1 | ||||
| #define PACKET_DROP_MEMBERSHIP		2 | ||||
| #define	PACKET_RECV_OUTPUT			3 | ||||
| #define	PACKET_RX_RING				5 | ||||
| #define	PACKET_STATISTICS			6 | ||||
|  | ||||
| #define PACKET_HOST					0 | ||||
| #define PACKET_BROADCAST			1 | ||||
| #define PACKET_MULTICAST			2 | ||||
| #define PACKET_OTHERHOST			3 | ||||
| #define PACKET_OUTGOING				4 | ||||
| #define PACKET_LOOPBACK				5 | ||||
| #define PACKET_FASTROUTE			6 | ||||
|  | ||||
| struct packet_mreq { | ||||
| 	int mr_ifindex; | ||||
| 	unsigned short int mr_type; | ||||
| 	unsigned short int mr_alen; | ||||
| 	unsigned char mr_address[8]; | ||||
| }; | ||||
|  | ||||
| #define PACKET_MR_MULTICAST			0 | ||||
| #define PACKET_MR_PROMISC			1 | ||||
| #define PACKET_MR_ALLMULTI			2 | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user