headers: Move IPv4/v6 options to ws2ipdef.h from ws2tcpip.h.
Also add missing new ones.
Required for OpenRGB https://gitlab.com/CalcProgrammer1/OpenRGB.git
Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
diff --git a/mingw-w64-headers/include/ws2ipdef.h b/mingw-w64-headers/include/ws2ipdef.h
index b6273a8..b4d36c2 100644
--- a/mingw-w64-headers/include/ws2ipdef.h
+++ b/mingw-w64-headers/include/ws2ipdef.h
@@ -20,6 +20,105 @@
extern "C" {
#endif
+/* options at IPPROTO_IP level */
+#define IP_OPTIONS 1
+#define IP_HDRINCL 2
+#define IP_TOS 3
+#define IP_TTL 4
+#define IP_MULTICAST_IF 9
+#define IP_MULTICAST_TTL 10
+#define IP_MULTICAST_LOOP 11
+#define IP_ADD_MEMBERSHIP 12
+#define IP_DROP_MEMBERSHIP 13
+#define IP_DONTFRAGMENT 14
+#define IP_ADD_SOURCE_MEMBERSHIP 15
+#define IP_DROP_SOURCE_MEMBERSHIP 16
+#define IP_BLOCK_SOURCE 17
+#define IP_UNBLOCK_SOURCE 18
+#define IP_PKTINFO 19
+#define IP_HOPLIMIT 21
+#define IP_RECVTTL 21
+#define IP_RECEIVE_BROADCAST 22
+#define IP_RECVIF 24
+#define IP_RECVDSTADDR 25
+#define IP_IFLIST 28
+#define IP_ADD_IFLIST 29
+#define IP_DEL_IFLIST 30
+#define IP_UNICAST_IF 31
+#define IP_RTHDR 32
+#define IP_GET_IFLIST 33
+#define IP_RECVRTHDR 38
+#define IP_TCLASS 39
+#define IP_RECVTCLASS 40
+#define IP_RECVTOS 40
+#define IP_ORIGINAL_ARRIVAL_IF 47
+#define IP_ECN 50
+#define IP_PKTINFO_EX 51
+#define IP_WFP_REDIRECT_RECORDS 60
+#define IP_WFP_REDIRECT_CONTEXT 70
+#define IP_MTU_DISCOVER 71
+#define IP_MTU 73
+#define IP_NRT_INTERFACE 74
+#define IP_RECVERR 75
+#define IP_USER_MTU 76
+
+#define IP_UNSPECIFIED_TYPE_OF_SERVICE -1
+#define IP_UNSPECIFIED_USER_MTU MAXULONG
+
+#define IPV6_ADDRESS_BITS RTL_BITS_OF(IN6_ADDR)
+
+/* options at IPPROTO_IPV6 level */
+#define IPV6_HOPOPTS 1
+#define IPV6_HDRINCL 2
+#define IPV6_UNICAST_HOPS 4
+#define IPV6_MULTICAST_IF 9
+#define IPV6_MULTICAST_HOPS 10
+#define IPV6_MULTICAST_LOOP 11
+#define IPV6_ADD_MEMBERSHIP 12
+#define IPV6_JOIN_GROUP IPV6_ADD_MEMBERSHIP
+#define IPV6_DROP_MEMBERSHIP 13
+#define IPV6_LEAVE_GROUP IPV6_DROP_MEMBERSHIP
+#define IPV6_DONTFRAG 14
+#define IPV6_PKTINFO 19
+#define IPV6_HOPLIMIT 21
+#define IPV6_PROTECTION_LEVEL 23
+#define IPV6_RECVIF 24
+#define IPV6_RECVDSTADDR 25
+#define IPV6_CHECKSUM 26
+#define IPV6_V6ONLY 27
+#define IPV6_IFLIST 28
+#define IPV6_ADD_IFLIST 29
+#define IPV6_DEL_IFLIST 30
+#define IPV6_UNICAST_IF 31
+#define IPV6_RTHDR 32
+#define IPV6_GET_IFLIST 33
+#define IPV6_RECVRTHDR 38
+#define IPV6_TCLASS 39
+#define IPV6_RECVTCLASS 40
+#define IPV6_ECN 50
+#define IPV6_PKTINFO_EX 51
+#define IPV6_WFP_REDIRECT_RECORDS 60
+#define IPV6_WFP_REDIRECT_CONTEXT 70
+#define IPV6_MTU_DISCOVER 71
+#define IPV6_MTU 72
+#define IPV6_NRT_INTERFACE 74
+#define IPV6_RECVERR 75
+#define IPV6_USER_MTU 76
+
+#define IP_UNSPECIFIED_HOP_LIMIT -1
+
+#define IP_PROTECTION_LEVEL IPV6_PROTECTION_LEVEL
+
+#define PROTECTION_LEVEL_UNRESTRICTED 10
+#define PROTECTION_LEVEL_EDGERESTRICTED 20
+#define PROTECTION_LEVEL_RESTRICTED 30
+
+#if NTDDI_VERSION < NTDDI_VISTA
+#define PROTECTION_LEVEL_DEFAULT PROTECTION_LEVEL_EDGERESTRICTED
+#else
+#define PROTECTION_LEVEL_DEFAULT ((UINT)-1)
+#endif
+
typedef struct ipv6_mreq {
struct in6_addr ipv6mr_multiaddr;
unsigned int ipv6mr_interface;
@@ -95,33 +194,6 @@
SOCKADDR_STORAGE gsr_source;
} GROUP_SOURCE_REQ, *PGROUP_SOURCE_REQ;
-#define IPV6_HOPOPTS 1
-#define IPV6_HDRINCL 2
-#define IPV6_UNICAST_HOPS 4
-#define IPV6_MULTICAST_IF 9
-#define IPV6_MULTICAST_HOPS 10
-#define IPV6_MULTICAST_LOOP 11
-#define IPV6_ADD_MEMBERSHIP 12
-#define IPV6_JOIN_GROUP IPV6_ADD_MEMBERSHIP
-#define IPV6_DROP_MEMBERSHIP 13
-#define IPV6_LEAVE_GROUP IPV6_DROP_MEMBERSHIP
-#define IPV6_DONTFRAG 14
-#define IPV6_PKTINFO 19
-#define IPV6_HOPLIMIT 21
-#define IPV6_PROTECTION_LEVEL 23
-#define IPV6_RECVIF 24
-#define IPV6_RECVDSTADDR 25
-#define IPV6_CHECKSUM 26
-#define IPV6_V6ONLY 27
-#define IPV6_IFLIST 28
-#define IPV6_ADD_IFLIST 29
-#define IPV6_DEL_IFLIST 30
-#define IPV6_UNICAST_IF 31
-#define IPV6_RTHDR 32
-#define IPV6_RECVRTHDR 38
-#define IPV6_TCLASS 39
-#define IPV6_RECVTCLASS 40
-
#define WS2TCPIP_INLINE __CRT_INLINE
int IN6_ADDR_EQUAL(const struct in6_addr *,const struct in6_addr *);
diff --git a/mingw-w64-headers/include/ws2tcpip.h b/mingw-w64-headers/include/ws2tcpip.h
index 78742d7..3c8b6cc 100644
--- a/mingw-w64-headers/include/ws2tcpip.h
+++ b/mingw-w64-headers/include/ws2tcpip.h
@@ -41,27 +41,6 @@
#define SIO_SET_MULTICAST_FILTER _IOW('t',125,u_long)
#define SIO_GET_MULTICAST_FILTER _IOW('t',124 | IOC_IN,u_long)
-#define IP_OPTIONS 1
-#define IP_HDRINCL 2
-#define IP_TOS 3
-#define IP_TTL 4
-#define IP_MULTICAST_IF 9
-#define IP_MULTICAST_TTL 10
-#define IP_MULTICAST_LOOP 11
-#define IP_ADD_MEMBERSHIP 12
-#define IP_DROP_MEMBERSHIP 13
-#define IP_DONTFRAGMENT 14
-#define IP_ADD_SOURCE_MEMBERSHIP 15
-#define IP_DROP_SOURCE_MEMBERSHIP 16
-#define IP_BLOCK_SOURCE 17
-#define IP_UNBLOCK_SOURCE 18
-#define IP_PKTINFO 19
-#define IP_RECEIVE_BROADCAST 22
-
-#define PROTECTION_LEVEL_UNRESTRICTED 10
-#define PROTECTION_LEVEL_DEFAULT 20
-#define PROTECTION_LEVEL_RESTRICTED 30
-
#define UDP_NOCHECKSUM 1
#define UDP_CHECKSUM_COVERAGE 20