Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /**
  2.  * This file has no copyright assigned and is placed in the Public Domain.
  3.  * This file is part of the w64 mingw-runtime package.
  4.  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5.  */
  6. #ifndef _INC_WS2IPDEF
  7. #define _INC_WS2IPDEF
  8.  
  9. #include <in6addr.h>
  10. #include <ws2def.h>
  11.  
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15.  
  16. typedef struct ipv6_mreq {
  17.   struct in6_addr ipv6mr_multiaddr;
  18.   unsigned int ipv6mr_interface;
  19. } IPV6_MREQ;
  20.  
  21. struct sockaddr_in6_old {
  22.   short sin6_family;
  23.   u_short sin6_port;
  24.   u_long sin6_flowinfo;
  25.   struct in6_addr sin6_addr;
  26. };
  27.  
  28. typedef union sockaddr_gen {
  29.   struct sockaddr Address;
  30.   struct sockaddr_in AddressIn;
  31.   struct sockaddr_in6_old AddressIn6;
  32. } sockaddr_gen;
  33.  
  34. struct sockaddr_in6 {
  35.   short sin6_family;
  36.   u_short sin6_port;
  37.   u_long sin6_flowinfo;
  38.   struct in6_addr sin6_addr;
  39.   __C89_NAMELESS union {
  40.     u_long sin6_scope_id;
  41.     SCOPE_ID sin6_scope_struct;
  42.   };
  43. };
  44.  
  45. typedef struct sockaddr_in6 SOCKADDR_IN6;
  46. typedef struct sockaddr_in6 *PSOCKADDR_IN6;
  47. typedef struct sockaddr_in6 *LPSOCKADDR_IN6;
  48. typedef u_short ADDRESS_FAMILY;
  49.  
  50. typedef struct _INTERFACE_INFO {
  51.   u_long iiFlags;
  52.   sockaddr_gen iiAddress;
  53.   sockaddr_gen iiBroadcastAddress;
  54.   sockaddr_gen iiNetmask;
  55. } INTERFACE_INFO,*LPINTERFACE_INFO;
  56.  
  57. typedef enum _MULTICAST_MODE_TYPE {
  58.   MCAST_INCLUDE   = 0,
  59.   MCAST_EXCLUDE
  60. } MULTICAST_MODE_TYPE;
  61.  
  62. typedef struct _sockaddr_in6_pair {
  63.   PSOCKADDR_IN6 SourceAddress;
  64.   PSOCKADDR_IN6 DestinationAddress;
  65. } SOCKADDR_IN6_PAIR, *PSOCKADDR_IN6_PAIR;
  66.  
  67. typedef union _SOCKADDR_INET {
  68.   SOCKADDR_IN    Ipv4;
  69.   SOCKADDR_IN6   Ipv6;
  70.   ADDRESS_FAMILY si_family;
  71. } SOCKADDR_INET, *PSOCKADDR_INET;
  72.  
  73. typedef struct group_filter {
  74.   ULONG               gf_interface;
  75.   SOCKADDR_STORAGE    gf_group;
  76.   MULTICAST_MODE_TYPE gf_fmode;
  77.   ULONG               gf_numsrc;
  78.   SOCKADDR_STORAGE    gf_slist[1];
  79. } GROUP_FILTER, *PGROUP_FILTER;
  80.  
  81. typedef struct group_req {
  82.   ULONG            gr_interface;
  83.   SOCKADDR_STORAGE gr_group;
  84. } GROUP_REQ, *PGROUP_REQ;
  85.  
  86. typedef struct group_source_req {
  87.   ULONG            gsr_interface;
  88.   SOCKADDR_STORAGE gsr_group;
  89.   SOCKADDR_STORAGE gsr_source;
  90. } GROUP_SOURCE_REQ, *PGROUP_SOURCE_REQ;
  91.  
  92. #ifdef __cplusplus
  93. }
  94. #endif
  95.  
  96. #endif /*_INC_WS2IPDEF*/
  97.