svn commit: trunk/uClibc: include/netinet libc/sysdeps/linux/commo etc...

pkj at uclibc.org pkj at uclibc.org
Wed Feb 22 08:48:48 UTC 2006


Author: pkj
Date: 2006-02-22 00:48:45 -0800 (Wed, 22 Feb 2006)
New Revision: 14194

Log:
Sync with glibc 2.3.6.


Modified:
   trunk/uClibc/include/netinet/in.h
   trunk/uClibc/libc/sysdeps/linux/common/bits/in.h


Changeset:
Modified: trunk/uClibc/include/netinet/in.h
===================================================================
--- trunk/uClibc/include/netinet/in.h	2006-02-22 08:27:23 UTC (rev 14193)
+++ trunk/uClibc/include/netinet/in.h	2006-02-22 08:48:45 UTC (rev 14194)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2001, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,7 @@
 
 #include <features.h>
 #include <stdint.h>
+#include <sys/socket.h>
 #include <bits/types.h>
 
 
@@ -79,6 +80,8 @@
 #define IPPROTO_PIM		IPPROTO_PIM
     IPPROTO_COMP = 108,	   /* Compression Header Protocol.  */
 #define IPPROTO_COMP		IPPROTO_COMP
+    IPPROTO_SCTP = 132,	   /* Stream Control Transmission Protocol.  */
+#define IPPROTO_SCTP		IPPROTO_SCTP
     IPPROTO_RAW = 255,	   /* Raw IP packets.  */
 #define IPPROTO_RAW		IPPROTO_RAW
     IPPROTO_MAX
@@ -236,7 +239,30 @@
     uint32_t sin6_scope_id;	/* IPv6 scope-id */
   };
 
-/* IPv6 multicast request.  */
+
+/* IPv4 multicast request.  */
+struct ip_mreq
+  {
+    /* IP multicast address of group.  */
+    struct in_addr imr_multiaddr;
+
+    /* Local IP address of interface.  */
+    struct in_addr imr_interface;
+  };
+
+struct ip_mreq_source
+  {
+    /* IP multicast address of group.  */
+    struct in_addr imr_multiaddr;
+
+    /* IP address of source.  */
+    struct in_addr imr_interface;
+
+    /* IP address of interface.  */
+    struct in_addr imr_sourceaddr;
+  };
+
+/* Likewise, for IPv6.  */
 struct ipv6_mreq
   {
     /* IPv6 multicast address of group */
@@ -246,6 +272,75 @@
     unsigned int ipv6mr_interface;
   };
 
+
+/* Multicast group request.  */
+struct group_req
+  {
+    /* Interface index.  */
+    uint32_t gr_interface;
+
+    /* Group address.  */
+    struct sockaddr_storage gr_group;
+  };
+
+struct group_source_req
+  {
+    /* Interface index.  */
+    uint32_t gsr_interface;
+
+    /* Group address.  */
+    struct sockaddr_storage gsr_group;
+
+    /* Source address.  */
+    struct sockaddr_storage gsr_source;
+  };
+
+
+/* Full-state filter operations.  */
+struct ip_msfilter
+  {
+    /* IP multicast address of group.  */
+    struct in_addr imsf_multiaddr;
+
+    /* Local IP address of interface.  */
+    struct in_addr imsf_interface;
+
+    /* Filter mode.  */
+    uint32_t imsf_fmode;
+
+    /* Number of source addresses.  */
+    uint32_t imsf_numsrc;
+    /* Source addresses.  */
+    struct in_addr imsf_slist[1];
+  };
+
+#define IP_MSFILTER_SIZE(numsrc) (sizeof (struct ip_msfilter) \
+				  - sizeof (struct in_addr)		      \
+				  + (numsrc) * sizeof (struct in_addr))
+
+struct group_filter
+  {
+    /* Interface index.  */
+    uint32_t gf_interface;
+
+    /* Group address.  */
+    struct sockaddr_storage gf_group;
+
+    /* Filter mode.  */
+    uint32_t gf_fmode;
+
+    /* Number of source addresses.  */
+    uint32_t gf_numsrc;
+    /* Source addresses.  */
+    struct sockaddr_storage gf_slist[1];
+};
+
+#define GROUP_FILTER_SIZE(numsrc) (sizeof (struct group_filter) \
+				   - sizeof (struct sockaddr_storage)	      \
+				   + ((numsrc)				      \
+				      * sizeof (struct sockaddr_storage)))
+
+
 /* Get system-specific definitions.  */
 #include <bits/in.h>
 
@@ -269,9 +364,6 @@
 /* Get machine dependent optimized versions of byte swapping functions.  */
 #include <bits/byteswap.h>
 
-#ifndef __OPTIMIZE__
-#define __OPTIMIZE__
-#endif
 #ifdef __OPTIMIZE__
 /* We can optimize calls to the conversion functions.  Either nothing has
    to be done or we are using directly the byte-swapping functions which
@@ -367,6 +459,54 @@
     unsigned int	ipi6_ifindex; /* send/recv interface index */
   };
 
+
+#if 0 /*def __USE_GNU*/
+/* Hop-by-Hop and Destination Options Processing.  */
+extern int inet6_option_space (int __nbytes) __THROW;
+extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp,
+			      int __type) __THROW;
+extern int inet6_option_append (struct cmsghdr *__cmsg,
+				__const uint8_t *__typep, int __multx,
+				int __plusy) __THROW;
+extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen,
+				    int __multx, int __plusy) __THROW;
+extern int inet6_option_next (__const struct cmsghdr *__cmsg,
+			      uint8_t **__tptrp) __THROW;
+extern int inet6_option_find (__const struct cmsghdr *__cmsg,
+			      uint8_t **__tptrp, int __type) __THROW;
+
+
+/* Multicast source filter support.  */
+
+/* Get IPv4 source filter.  */
+extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr,
+				struct in_addr __group, uint32_t *__fmode,
+				uint32_t *__numsrc, struct in_addr *__slist)
+     __THROW;
+
+/* Set IPv4 source filter.  */
+extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr,
+				struct in_addr __group, uint32_t __fmode,
+				uint32_t __numsrc,
+				__const struct in_addr *__slist)
+     __THROW;
+
+
+/* Get source filter.  */
+extern int getsourcefilter (int __s, uint32_t __interface_addr,
+			    __const struct sockaddr *__group,
+			    socklen_t __grouplen, uint32_t *__fmode,
+			    uint32_t *__numsrc,
+			    struct sockaddr_storage *__slist) __THROW;
+
+/* Set source filter.  */
+extern int setsourcefilter (int __s, uint32_t __interface_addr,
+			    __const struct sockaddr *__group,
+			    socklen_t __grouplen, uint32_t __fmode,
+			    uint32_t __numsrc,
+			    __const struct sockaddr_storage *__slist) __THROW;
+#endif	/* use GNU */
+
 __END_DECLS
 
 #endif	/* netinet/in.h */

Modified: trunk/uClibc/libc/sysdeps/linux/common/bits/in.h
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/common/bits/in.h	2006-02-22 08:27:23 UTC (rev 14193)
+++ trunk/uClibc/libc/sysdeps/linux/common/bits/in.h	2006-02-22 08:48:45 UTC (rev 14194)
@@ -25,13 +25,36 @@
 /* Options for use with `getsockopt' and `setsockopt' at the IP level.
    The first word in the comment at the right is the data type used;
    "bool" means a boolean value stored in an `int'.  */
-#define IP_TOS             1	/* int; IP type of service and precedence.  */
-#define IP_TTL             2	/* int; IP time to live.  */
-#define IP_HDRINCL         3	/* int; Header is included with data.  */
-#define IP_OPTIONS         4	/* ip_opts; IP per-packet options.  */
+#define        IP_OPTIONS      4       /* ip_opts; IP per-packet options.  */
+#define        IP_HDRINCL      3       /* int; Header is included with data.  */
+#define        IP_TOS          1       /* int; IP type of service and precedence.  */
+#define        IP_TTL          2       /* int; IP time to live.  */
+#define        IP_RECVOPTS     6       /* bool; Receive all IP options w/datagram.  */
+/* For BSD compatibility.  */
+#define        IP_RECVRETOPTS  IP_RETOPTS       /* bool; Receive IP options for response.  */
+#define        IP_RETOPTS      7       /* ip_opts; Set/get IP per-packet options.  */
+#define IP_MULTICAST_IF 32	/* in_addr; set/get IP multicast i/f */
+#define IP_MULTICAST_TTL 33	/* u_char; set/get IP multicast ttl */
+#define IP_MULTICAST_LOOP 34	/* i_char; set/get IP multicast loopback */
+#define IP_ADD_MEMBERSHIP 35	/* ip_mreq; add an IP group membership */
+#define IP_DROP_MEMBERSHIP 36	/* ip_mreq; drop an IP group membership */
+#define IP_UNBLOCK_SOURCE 37	/* ip_mreq_source: unblock data from source */
+#define IP_BLOCK_SOURCE 38	/* ip_mreq_source: block data from source */
+#define IP_ADD_SOURCE_MEMBERSHIP 39 /* ip_mreq_source: join source group */
+#define IP_DROP_SOURCE_MEMBERSHIP 40 /* ip_mreq_source: leave source group */
+#define IP_MSFILTER 41
+#define MCAST_JOIN_GROUP 42	/* group_req: join any-source group */
+#define MCAST_BLOCK_SOURCE 43	/* group_source_req: block from given group */
+#define MCAST_UNBLOCK_SOURCE 44	/* group_source_req: unblock from given group*/
+#define MCAST_LEAVE_GROUP 45	/* group_req: leave any-source group */
+#define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */
+#define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/
+#define MCAST_MSFILTER 48
+
+#define MCAST_EXCLUDE   0
+#define MCAST_INCLUDE   1
+
 #define IP_ROUTER_ALERT    5	/* bool */
-#define IP_RECVOPTS        6	/* bool; Receive all IP options w/datagram.  */
-#define IP_RETOPTS         7	/* bool; Set/get IP per-packet options.  */
 #define IP_PKTINFO         8	/* bool */
 #define IP_PKTOPTIONS      9
 #define IP_PMTUDISC        10	/* obsolete name? */
@@ -39,30 +62,8 @@
 #define IP_RECVERR         11	/* bool */
 #define IP_RECVTTL         12	/* bool */
 #define IP_RECVTOS         13	/* bool */
-#define IP_MULTICAST_IF    32	/* in_addr; set/get IP multicast i/f */
-#define IP_MULTICAST_TTL   33	/* u_char; set/get IP multicast ttl */
-#define IP_MULTICAST_LOOP  34	/* i_char; set/get IP multicast loopback */
-#define IP_ADD_MEMBERSHIP  35	/* ip_mreq; add an IP group membership */
-#define IP_DROP_MEMBERSHIP 36	/* ip_mreq; drop an IP group membership */
-#define IP_UNBLOCK_SOURCE  37	/* ip_mreq_source: unblock data from source */
-#define IP_BLOCK_SOURCE    38	/* ip_mreq_source: block data from source */
-#define IP_ADD_SOURCE_MEMBERSHIP  39	/* ip_mreq_source: join source group */
-#define IP_DROP_SOURCE_MEMBERSHIP 40	/* ip_mreq_source: leave source group */
-#define IP_MSFILTER               41
-#define MCAST_JOIN_GROUP          42	/* group_req: join any-source group */
-#define MCAST_BLOCK_SOURCE        43	/* group_source_req: block from given group */
-#define MCAST_UNBLOCK_SOURCE      44	/* group_source_req: unblock from given group*/
-#define MCAST_LEAVE_GROUP         45	/* group_req: leave any-source group */
-#define MCAST_JOIN_SOURCE_GROUP   46	/* group_source_req: join source-spec gr */
-#define MCAST_LEAVE_SOURCE_GROUP  47	/* group_source_req: leave source-spec gr*/
-#define MCAST_MSFILTER            48
 
-#define MCAST_EXCLUDE   0
-#define MCAST_INCLUDE   1
 
-/* For BSD compatibility.  */
-#define IP_RECVRETOPTS     IP_RETOPTS	/* bool; Receive IP options for response.  */
-
 /* IP_MTU_DISCOVER arguments.  */
 #define IP_PMTUDISC_DONT   0	/* Never send DF frames.  */
 #define IP_PMTUDISC_WANT   1	/* Use per route hints.  */
@@ -84,14 +85,7 @@
     char ip_opts[40];		/* Actually variable in size.  */
   };
 
-/* Structure used for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. */
-struct ip_mreq
-  {
-    struct in_addr imr_multiaddr;	/* IP multicast address of group */
-    struct in_addr imr_interface;	/* local IP address of interface */
-  };
-
-/* As above but including interface specification by index.  */
+/* Like `struct ip_mreq' but including interface specification by index.  */
 struct ip_mreqn
   {
     struct in_addr imr_multiaddr;	/* IP multicast address of group */
@@ -111,13 +105,16 @@
    The first word in the comment at the right is the data type used;
    "bool" means a boolean value stored in an `int'.  */
 #define IPV6_ADDRFORM		1
-#define IPV6_PKTINFO		2
-#define IPV6_HOPOPTS		3
-#define IPV6_DSTOPTS		4
-#define IPV6_RTHDR		5
-#define IPV6_PKTOPTIONS		6
+#define IPV6_2292PKTINFO	2
+#define IPV6_2292HOPOPTS	3
+#define IPV6_2292DSTOPTS	4
+#define IPV6_2292RTHDR		5
+#define IPV6_2292PKTOPTIONS	6
 #define IPV6_CHECKSUM		7
-#define IPV6_HOPLIMIT		8
+#define IPV6_2292HOPLIMIT	8
+
+#define SCM_SRCRT		IPV6_RXSRCRT
+
 #define IPV6_NEXTHOP		9
 #define IPV6_AUTHHDR		10
 #define IPV6_UNICAST_HOPS	16
@@ -136,8 +133,21 @@
 #define IPV6_IPSEC_POLICY	34
 #define IPV6_XFRM_POLICY	35
 
-#define SCM_SRCRT		IPV6_RXSRCRT
+#define IPV6_RECVPKTINFO	49
+#define IPV6_PKTINFO		50
+#define IPV6_RECVHOPLIMIT	51
+#define IPV6_HOPLIMIT		52
+#define IPV6_RECVHOPOPTS	53
+#define IPV6_HOPOPTS		54
+#define IPV6_RTHDRDSTOPTS	55
+#define IPV6_RECVRTHDR		56
+#define IPV6_RTHDR		57
+#define IPV6_RECVDSTOPTS	58
+#define IPV6_DSTOPTS		59
 
+#define IPV6_RECVTCLASS		66
+#define IPV6_TCLASS		67
+
 /* Obsolete synonyms for the above.  */
 #define IPV6_ADD_MEMBERSHIP	IPV6_JOIN_GROUP
 #define IPV6_DROP_MEMBERSHIP	IPV6_LEAVE_GROUP




More information about the uClibc-cvs mailing list