diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index c8c821f23..16f5258cc 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,13 @@ +2006-04-28 Dimitri Papadopoulos + + * include/ipifcons.h (MIN_IF_TYPE,IF_TYPE_*,MAX_IF_TYPE,IF_ACCESS_*, + IF_CHECK_*,IF_CONNECTION_*,IF_ADMIN_*,IF_OPER_*): Define. + * include/winbase.h (CancelWaitableTimer,UnregisterWait): + Add function declaration. + * include/mgm.h: New file. + * lib/rtm.def: New file. + Thanks to: Bruce M Simpson + 2006-04-24 Dimitri Papadopoulos * include/ws2tcpip.h (gai_strerror): Remove thread-safety comment. diff --git a/winsup/w32api/include/ipifcons.h b/winsup/w32api/include/ipifcons.h index eecf53264..b301be138 100644 --- a/winsup/w32api/include/ipifcons.h +++ b/winsup/w32api/include/ipifcons.h @@ -4,6 +4,172 @@ #pragma GCC system_header #endif +#define MIN_IF_TYPE 1 +#define IF_TYPE_OTHER 1 +#define IF_TYPE_REGULAR_1822 2 +#define IF_TYPE_HDH_1822 3 +#define IF_TYPE_DDN_X25 4 +#define IF_TYPE_RFC877_X25 5 +#define IF_TYPE_ETHERNET_CSMACD 6 +#define IF_TYPE_IS088023_CSMACD 7 +#define IF_TYPE_ISO88024_TOKENBUS 8 +#define IF_TYPE_ISO88025_TOKENRING 9 +#define IF_TYPE_ISO88026_MAN 10 +#define IF_TYPE_STARLAN 11 +#define IF_TYPE_PROTEON_10MBIT 12 +#define IF_TYPE_PROTEON_80MBIT 13 +#define IF_TYPE_HYPERCHANNEL 14 +#define IF_TYPE_FDDI 15 +#define IF_TYPE_LAP_B 16 +#define IF_TYPE_SDLC 17 +#define IF_TYPE_DS1 18 +#define IF_TYPE_E1 19 +#define IF_TYPE_BASIC_ISDN 20 +#define IF_TYPE_PRIMARY_ISDN 21 +#define IF_TYPE_PROP_POINT2POINT_SERIAL 22 +#define IF_TYPE_PPP 23 +#define IF_TYPE_SOFTWARE_LOOPBACK 24 +#define IF_TYPE_EON 25 +#define IF_TYPE_ETHERNET_3MBIT 26 +#define IF_TYPE_NSIP 27 +#define IF_TYPE_SLIP 28 +#define IF_TYPE_ULTRA 29 +#define IF_TYPE_DS3 30 +#define IF_TYPE_SIP 31 +#define IF_TYPE_FRAMERELAY 32 +#define IF_TYPE_RS232 33 +#define IF_TYPE_PARA 34 +#define IF_TYPE_ARCNET 35 +#define IF_TYPE_ARCNET_PLUS 36 +#define IF_TYPE_ATM 37 +#define IF_TYPE_MIO_X25 38 +#define IF_TYPE_SONET 39 +#define IF_TYPE_X25_PLE 40 +#define IF_TYPE_ISO88022_LLC 41 +#define IF_TYPE_LOCALTALK 42 +#define IF_TYPE_SMDS_DXI 43 +#define IF_TYPE_FRAMERELAY_SERVICE 44 +#define IF_TYPE_V35 45 +#define IF_TYPE_HSSI 46 +#define IF_TYPE_HIPPI 47 +#define IF_TYPE_MODEM 48 +#define IF_TYPE_AAL5 49 +#define IF_TYPE_SONET_PATH 50 +#define IF_TYPE_SONET_VT 51 +#define IF_TYPE_SMDS_ICIP 52 +#define IF_TYPE_PROP_VIRTUAL 53 +#define IF_TYPE_PROP_MULTIPLEXOR 54 +#define IF_TYPE_IEEE80212 55 +#define IF_TYPE_FIBRECHANNEL 56 +#define IF_TYPE_HIPPIINTERFACE 57 +#define IF_TYPE_FRAMERELAY_INTERCONNECT 58 +#define IF_TYPE_AFLANE_8023 59 +#define IF_TYPE_AFLANE_8025 60 +#define IF_TYPE_CCTEMUL 61 +#define IF_TYPE_FASTETHER 62 +#define IF_TYPE_ISDN 63 +#define IF_TYPE_V11 64 +#define IF_TYPE_V36 65 +#define IF_TYPE_G703_64K 66 +#define IF_TYPE_G703_2MB 67 +#define IF_TYPE_QLLC 68 +#define IF_TYPE_FASTETHER_FX 69 +#define IF_TYPE_CHANNEL 70 +#define IF_TYPE_IEEE80211 71 +#define IF_TYPE_IBM370PARCHAN 72 +#define IF_TYPE_ESCON 73 +#define IF_TYPE_DLSW 74 +#define IF_TYPE_ISDN_S 75 +#define IF_TYPE_ISDN_U 76 +#define IF_TYPE_LAP_D 77 +#define IF_TYPE_IPSWITCH 78 +#define IF_TYPE_RSRB 79 +#define IF_TYPE_ATM_LOGICAL 80 +#define IF_TYPE_DS0 81 +#define IF_TYPE_DS0_BUNDLE 82 +#define IF_TYPE_BSC 83 +#define IF_TYPE_ASYNC 84 +#define IF_TYPE_CNR 85 +#define IF_TYPE_ISO88025R_DTR 86 +#define IF_TYPE_EPLRS 87 +#define IF_TYPE_ARAP 88 +#define IF_TYPE_PROP_CNLS 89 +#define IF_TYPE_HOSTPAD 90 +#define IF_TYPE_TERMPAD 91 +#define IF_TYPE_FRAMERELAY_MPI 92 +#define IF_TYPE_X213 93 +#define IF_TYPE_ADSL 94 +#define IF_TYPE_RADSL 95 +#define IF_TYPE_SDSL 96 +#define IF_TYPE_VDSL 97 +#define IF_TYPE_ISO88025_CRFPRINT 98 +#define IF_TYPE_MYRINET 99 +#define IF_TYPE_VOICE_EM 100 +#define IF_TYPE_VOICE_FXO 101 +#define IF_TYPE_VOICE_FXS 102 +#define IF_TYPE_VOICE_ENCAP 103 +#define IF_TYPE_VOICE_OVERIP 104 +#define IF_TYPE_ATM_DXI 105 +#define IF_TYPE_ATM_FUNI 106 +#define IF_TYPE_ATM_IMA 107 +#define IF_TYPE_PPPMULTILINKBUNDLE 108 +#define IF_TYPE_IPOVER_CDLC 109 +#define IF_TYPE_IPOVER_CLAW 110 +#define IF_TYPE_STACKTOSTACK 111 +#define IF_TYPE_VIRTUALIPADDRESS 112 +#define IF_TYPE_MPC 113 +#define IF_TYPE_IPOVER_ATM 114 +#define IF_TYPE_ISO88025_FIBER 115 +#define IF_TYPE_TDLC 116 +#define IF_TYPE_GIGABITETHERNET 117 +#define IF_TYPE_HDLC 118 +#define IF_TYPE_LAP_F 119 +#define IF_TYPE_V37 120 +#define IF_TYPE_X25_MLP 121 +#define IF_TYPE_X25_HUNTGROUP 122 +#define IF_TYPE_TRANSPHDLC 123 +#define IF_TYPE_INTERLEAVE 124 +#define IF_TYPE_FAST 125 +#define IF_TYPE_IP 126 +#define IF_TYPE_DOCSCABLE_MACLAYER 127 +#define IF_TYPE_DOCSCABLE_DOWNSTREAM 128 +#define IF_TYPE_DOCSCABLE_UPSTREAM 129 +#define IF_TYPE_A12MPPSWITCH 130 +#define IF_TYPE_TUNNEL 131 +#define IF_TYPE_COFFEE 132 +#define IF_TYPE_CES 133 +#define IF_TYPE_ATM_SUBINTERFACE 134 +#define IF_TYPE_L2_VLAN 135 +#define IF_TYPE_L3_IPVLAN 136 +#define IF_TYPE_L3_IPXVLAN 137 +#define IF_TYPE_DIGITALPOWERLINE 138 +#define IF_TYPE_MEDIAMAILOVERIP 139 +#define IF_TYPE_DTM 140 +#define IF_TYPE_DCN 141 +#define IF_TYPE_IPFORWARD 142 +#define IF_TYPE_MSDSL 143 +#define IF_TYPE_IEEE1394 144 +#define IF_TYPE_RECEIVE_ONLY 145 +#define MAX_IF_TYPE 145 +#define IF_ACCESS_LOOPBACK 1 +#define IF_ACCESS_BROADCAST 2 +#define IF_ACCESS_POINTTOPOINT 3 +#define IF_ACCESS_POINTTOMULTIPOINT 4 +#define IF_CHECK_NONE 0x00 +#define IF_CHECK_MCAST 0x01 +#define IF_CHECK_SEND 0x02 +#define IF_CONNECTION_DEDICATED 1 +#define IF_CONNECTION_PASSIVE 2 +#define IF_CONNECTION_DEMAND 3 +#define IF_ADMIN_STATUS_UP 1 +#define IF_ADMIN_STATUS_DOWN 2 +#define IF_ADMIN_STATUS_TESTING 3 +#define IF_OPER_STATUS_NON_OPERATIONAL 0 +#define IF_OPER_STATUS_UNREACHABLE 1 +#define IF_OPER_STATUS_DISCONNECTED 2 +#define IF_OPER_STATUS_CONNECTING 3 +#define IF_OPER_STATUS_CONNECTED 4 +#define IF_OPER_STATUS_OPERATIONAL 5 #define MIB_IF_ADMIN_STATUS_UP 1 #define MIB_IF_ADMIN_STATUS_DOWN 2 #define MIB_IF_ADMIN_STATUS_TESTING 3 @@ -20,4 +186,5 @@ #define MIB_IF_TYPE_PPP 23 #define MIB_IF_TYPE_LOOPBACK 24 #define MIB_IF_TYPE_SLIP 28 -#endif /* _IPIFCONS_H */ + +#endif diff --git a/winsup/w32api/include/mgm.h b/winsup/w32api/include/mgm.h new file mode 100644 index 000000000..d8f0d8907 --- /dev/null +++ b/winsup/w32api/include/mgm.h @@ -0,0 +1,75 @@ +#ifndef _MGM_H +#define _MGM_H +#if __GNUC__ >= 3 +#pragma GCC system_header +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if (_WIN32_WINNT >= 0x0500) +#define MGM_JOIN_STATE_FLAG 0x00000001 +#define MGM_FORWARD_STATE_FLAG 0x00000002 +#define MGM_MFE_STATS_0 0x00000001 +#define MGM_MFE_STATS_1 0x00000002 +typedef enum _MGM_ENUM_TYPES { + ANY_SOURCE=0, + ALL_SOURCES +} MGM_ENUM_TYPES; +typedef struct _MGM_IF_ENTRY { + DWORD dwIfIndex; + DWORD dwIfNextHopAddr; + BOOL bIGMP; + BOOL bIsEnabled; +} MGM_IF_ENTRY,*PMGM_IF_ENTRY; +typedef DWORD(CALLBACK *PMGM_RPF_CALLBACK)(DWORD,DWORD,DWORD,DWORD,PDWORD,PDWORD,PDWORD,DWORD,PBYTE,PBYTE); +typedef DWORD(CALLBACK *PMGM_CREATION_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PMGM_IF_ENTRY); +typedef DWORD(CALLBACK *PMGM_PRUNE_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,BOOL,PDWORD); +typedef DWORD(CALLBACK *PMGM_JOIN_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,BOOL); +typedef DWORD(CALLBACK *PMGM_WRONG_IF_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,PBYTE); +typedef DWORD(CALLBACK *PMGM_LOCAL_JOIN_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD); +typedef DWORD(CALLBACK *PMGM_LOCAL_LEAVE_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD); +typedef DWORD(CALLBACK *PMGM_DISABLE_IGMP_CALLBACK)(DWORD,DWORD); +typedef DWORD(CALLBACK *PMGM_ENABLE_IGMP_CALLBACK)(DWORD,DWORD); +typedef struct _ROUTING_PROTOCOL_CONFIG { + DWORD dwCallbackFlags; + PMGM_RPF_CALLBACK pfnRpfCallback; + PMGM_CREATION_ALERT_CALLBACK pfnCreationAlertCallback; + PMGM_PRUNE_ALERT_CALLBACK pfnPruneAlertCallback; + PMGM_JOIN_ALERT_CALLBACK pfnJoinAlertCallback; + PMGM_WRONG_IF_CALLBACK pfnWrongIfCallback; + PMGM_LOCAL_JOIN_CALLBACK pfnLocalJoinCallback; + PMGM_LOCAL_LEAVE_CALLBACK pfnLocalLeaveCallback; + PMGM_DISABLE_IGMP_CALLBACK pfnDisableIgmpCallback; + PMGM_ENABLE_IGMP_CALLBACK pfnEnableIgmpCallback; +} ROUTING_PROTOCOL_CONFIG,*PROUTING_PROTOCOL_CONFIG; +typedef struct _SOURCE_GROUP_ENTRY { + DWORD dwSourceAddr; + DWORD dwSourceMask; + DWORD dwGroupAddr; + DWORD dwGroupMask; +} SOURCE_GROUP_ENTRY,*PSOURCE_GROUP_ENTRY; +DWORD WINAPI MgmAddGroupMembershipEntry(HANDLE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD); +DWORD WINAPI MgmDeleteGroupMembershipEntry(HANDLE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD); +DWORD WINAPI MgmDeRegisterMProtocol(HANDLE); +DWORD WINAPI MgmGetFirstMfe(PDWORD,PBYTE,PDWORD); +DWORD WINAPI MgmGetFirstMfeStats(PDWORD,PBYTE,PDWORD,DWORD); +DWORD WINAPI MgmGetMfe(PMIB_IPMCAST_MFE,PDWORD,PBYTE); +DWORD WINAPI MgmGetMfeStats(PMIB_IPMCAST_MFE,PDWORD,PBYTE,DWORD); +DWORD WINAPI MgmGetNextMfe(PMIB_IPMCAST_MFE,PDWORD,PBYTE,PDWORD); +DWORD WINAPI MgmGetNextMfeStats(PMIB_IPMCAST_MFE,PDWORD,PBYTE,PDWORD,DWORD); +DWORD WINAPI MgmGetProtocolOnInterface(DWORD,DWORD,PDWORD,PDWORD); +DWORD WINAPI MgmGroupEnumerationEnd(HANDLE); +DWORD WINAPI MgmGroupEnumerationGetNext(HANDLE,PDWORD,PBYTE,PDWORD); +DWORD WINAPI MgmGroupEnumerationStart(HANDLE,MGM_ENUM_TYPES,HANDLE*); +DWORD WINAPI MgmRegisterMProtocol(PROUTING_PROTOCOL_CONFIG,DWORD,DWORD,HANDLE*); +DWORD WINAPI MgmReleaseInterfaceOwnership(HANDLE,DWORD,DWORD); +DWORD WINAPI MgmSetMfe(HANDLE,PMIB_IPMCAST_MFE); +DWORD WINAPI MgmTakeInterfaceOwnership(HANDLE,DWORD,DWORD); +#endif + +#ifdef __cplusplus +} +#endif +#endif diff --git a/winsup/w32api/include/winbase.h b/winsup/w32api/include/winbase.h index be78b2f27..003ff3ca0 100644 --- a/winsup/w32api/include/winbase.h +++ b/winsup/w32api/include/winbase.h @@ -939,7 +939,7 @@ typedef struct _MEMORYSTATUSEX { DWORDLONG ullTotalVirtual; DWORDLONG ullAvailVirtual; DWORDLONG ullAvailExtendedVirtual; -} MEMORYSTATUSEX, *LPMEMORYSTATUSEX; +} MEMORYSTATUSEX,*LPMEMORYSTATUSEX; #endif typedef struct _LDT_ENTRY { WORD LimitLow; @@ -1134,6 +1134,9 @@ WINBASEAPI BOOL WINAPI CallNamedPipeW(LPCWSTR,PVOID,DWORD,PVOID,DWORD,PDWORD,DWO WINBASEAPI BOOL WINAPI CancelDeviceWakeupRequest(HANDLE); WINBASEAPI BOOL WINAPI CancelIo(HANDLE); WINBASEAPI BOOL WINAPI CancelWaitableTimer(HANDLE); +#if (_WIN32_WINNT >= 0x0500) +WINBASEAPI BOOL WINAPI ChangeTimerQueueTimer(HANDLE,HANDLE,ULONG,ULONG); +#endif #if (_WIN32_WINNT >= 0x0501) WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3A(LPCSTR,LPSTR,DWORD,PBOOL,PBOOL); WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3W(LPCWSTR,LPSTR,DWORD,PBOOL,PBOOL); @@ -1953,6 +1956,7 @@ WINBASEAPI BOOL WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED); #define UnlockSegment(w) GlobalUnfix((HANDLE)(w)) /* Obsolete: Has no effect. */ WINBASEAPI BOOL WINAPI UnmapViewOfFile(PVOID); #if (_WIN32_WINNT >= 0x0500) +WINBASEAPI BOOL WINAPI UnregisterWait(HANDLE); WINBASEAPI BOOL WINAPI UnregisterWaitEx(HANDLE,HANDLE); #endif WINBASEAPI BOOL WINAPI UpdateResourceA(HANDLE,LPCSTR,LPCSTR,WORD,PVOID,DWORD); @@ -2397,6 +2401,7 @@ typedef PCACTCTXA PCACTCTX; #define WriteProfileString WriteProfileStringA #endif #endif + #ifdef __cplusplus } #endif diff --git a/winsup/w32api/lib/rtm.def b/winsup/w32api/lib/rtm.def new file mode 100644 index 000000000..b156914ff --- /dev/null +++ b/winsup/w32api/lib/rtm.def @@ -0,0 +1,18 @@ +LIBRARY RTM.DLL +EXPORTS +MgmAddGroupMembershipEntry@32 +MgmDeleteGroupMembershipEntry@32 +MgmDeRegisterMProtocol@4 +MgmGetFirstMfe@12 +MgmGetFirstMfeStats@16 +MgmGetMfe@12 +MgmGetMfeStats@16 +MgmGetNextMfe@16 +MgmGetNextMfeStats@20 +MgmGetProtocolOnInterface@16 +MgmGroupEnumerationEnd@4 +MgmGroupEnumerationGetNext@16 +MgmGroupEnumerationStart@12 +MgmRegisterMProtocol@16 +MgmReleaseInterfaceOwnership@12 +MgmTakeInterfaceOwnership@12