headers: Move some structure from ws2tcpip.h to ws2ipdef.h

Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
Signed-off-by: Liu Hao <lh_mouse@126.com>
diff --git a/mingw-w64-headers/include/ws2ipdef.h b/mingw-w64-headers/include/ws2ipdef.h
index de761f5..188b2f4 100644
--- a/mingw-w64-headers/include/ws2ipdef.h
+++ b/mingw-w64-headers/include/ws2ipdef.h
@@ -119,11 +119,6 @@
 #define PROTECTION_LEVEL_DEFAULT ((UINT)-1)
 #endif
 
-typedef struct ip_mreq {
-  IN_ADDR imr_multiaddr;
-  IN_ADDR imr_interface;
-} IP_MREQ, *PIP_MREQ;
-
 typedef struct ipv6_mreq {
   struct in6_addr ipv6mr_multiaddr;
   unsigned int ipv6mr_interface;
@@ -164,11 +159,60 @@
   sockaddr_gen iiNetmask;
 } INTERFACE_INFO,*LPINTERFACE_INFO;
 
+typedef struct _INTERFACE_INFO_EX {
+  u_long iiFlags;
+  SOCKET_ADDRESS iiAddress;
+  SOCKET_ADDRESS iiBroadcastAddress;
+  SOCKET_ADDRESS iiNetmask;
+} INTERFACE_INFO_EX, *LPINTERFACE_INFO_EX;
+
+#define IFF_UP 0x00000001
+#define IFF_BROADCAST 0x00000002
+#define IFF_LOOPBACK 0x00000004
+#define IFF_POINTTOPOINT 0x00000008
+#define IFF_MULTICAST 0x00000010
+
+typedef enum _PMTUD_STATE {
+  IP_PMTUDISC_NOT_SET,
+  IP_PMTUDISC_DO,
+  IP_PMTUDISC_DONT,
+  IP_PMTUDISC_PROBE,
+  IP_PMTUDISC_MAX
+} PMTUD_STATE, *PPMTUD_STATE;
+
+#define MCAST_JOIN_GROUP 41
+#define MCAST_LEAVE_GROUP 42
+#define MCAST_BLOCK_SOURCE 43
+#define MCAST_UNBLOCK_SOURCE 44
+#define MCAST_JOIN_SOURCE_GROUP 45
+#define MCAST_LEAVE_SOURCE_GROUP 46
+
 typedef enum _MULTICAST_MODE_TYPE {
-  MCAST_INCLUDE   = 0,
+  MCAST_INCLUDE = 0,
   MCAST_EXCLUDE
 } MULTICAST_MODE_TYPE;
 
+typedef struct ip_mreq {
+  IN_ADDR imr_multiaddr;
+  IN_ADDR imr_interface;
+} IP_MREQ, *PIP_MREQ;
+
+typedef struct ip_mreq_source {
+  IN_ADDR imr_multiaddr;
+  IN_ADDR imr_sourceaddr;
+  IN_ADDR imr_interface;
+} IP_MREQ_SOURCE, *PIP_MREQ_SOURCE;
+
+typedef struct ip_msfilter {
+  IN_ADDR imsf_multiaddr;
+  IN_ADDR imsf_interface;
+  MULTICAST_MODE_TYPE imsf_fmode;
+  ULONG imsf_numsrc;
+  IN_ADDR imsf_slist[1];
+} IP_MSFILTER, *PIP_MSFILTER;
+
+#define IP_MSFILTER_SIZE(NumSources) (sizeof(IP_MSFILTER) - sizeof(IN_ADDR) + (NumSources) * sizeof(IN_ADDR))
+
 typedef struct _sockaddr_in6_pair {
   PSOCKADDR_IN6 SourceAddress;
   PSOCKADDR_IN6 DestinationAddress;
diff --git a/mingw-w64-headers/include/ws2tcpip.h b/mingw-w64-headers/include/ws2tcpip.h
index 3c8b6cc..0a7890b 100644
--- a/mingw-w64-headers/include/ws2tcpip.h
+++ b/mingw-w64-headers/include/ws2tcpip.h
@@ -19,22 +19,6 @@
 #include <psdk_inc/_ip_mreq1.h>
 #include <winapifamily.h>
 
-struct ip_mreq_source {
-  struct in_addr imr_multiaddr;
-  struct in_addr imr_sourceaddr;
-  struct in_addr imr_interface;
-};
-
-struct ip_msfilter {
-  struct in_addr imsf_multiaddr;
-  struct in_addr imsf_interface;
-  u_long imsf_fmode;
-  u_long imsf_numsrc;
-  struct in_addr imsf_slist[1];
-};
-
-#define IP_MSFILTER_SIZE(numsrc) (sizeof(struct ip_msfilter)-sizeof(struct in_addr) + (numsrc)*sizeof(struct in_addr))
-
 #define SIO_GET_INTERFACE_LIST _IOR('t',127,u_long)
 
 #define SIO_GET_INTERFACE_LIST_EX _IOR('t',126,u_long)
@@ -133,19 +117,6 @@
 }
 #endif
 
-typedef struct _INTERFACE_INFO_EX {
-  u_long iiFlags;
-  SOCKET_ADDRESS iiAddress;
-  SOCKET_ADDRESS iiBroadcastAddress;
-  SOCKET_ADDRESS iiNetmask;
-} INTERFACE_INFO_EX,*LPINTERFACE_INFO_EX;
-
-#define IFF_UP 0x00000001
-#define IFF_BROADCAST 0x00000002
-#define IFF_LOOPBACK 0x00000004
-#define IFF_POINTTOPOINT 0x00000008
-#define IFF_MULTICAST 0x00000010
-
 typedef struct in_pktinfo {
   IN_ADDR ipi_addr;
   UINT ipi_ifindex;