diff options
| author | seyko <seyko2@gmail.com> | 2015-05-14 01:27:46 +0300 |
|---|---|---|
| committer | seyko <seyko2@gmail.com> | 2015-05-14 01:27:46 +0300 |
| commit | 101cc8747f767344d38566bd229f1761ad96f744 (patch) | |
| tree | ef800583f7994bb56c6c32bf4256f44727c5d48d /win32/include/winapi/mstcpip.h | |
| parent | 80322adaa0544eedc7198ed4c529a41856f66f43 (diff) | |
| download | tinycc-101cc8747f767344d38566bd229f1761ad96f744.tar.gz tinycc-101cc8747f767344d38566bd229f1761ad96f744.tar.bz2 | |
win32/include/winapi changes from https://github.com/run4flat/tinycc.git
just for testing. Is it needed? I'm not a MSYS citizen.
run4flat is a tcc fork by David Mertens that knows how to work with
multiple symbol tables. Excelent work. A good descriptions of the
tcc internals inside a code comments.
Diffstat (limited to 'win32/include/winapi/mstcpip.h')
| -rw-r--r-- | win32/include/winapi/mstcpip.h | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/win32/include/winapi/mstcpip.h b/win32/include/winapi/mstcpip.h new file mode 100644 index 0000000..71e3d9f --- /dev/null +++ b/win32/include/winapi/mstcpip.h @@ -0,0 +1,195 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ +#ifndef _MSTCPIP_ +#define _MSTCPIP_ + +#include <_mingw_unicode.h> + +struct tcp_keepalive { + u_long onoff; + u_long keepalivetime; + u_long keepaliveinterval; +}; + +#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1) +#define SIO_RCVALL_MCAST _WSAIOW(IOC_VENDOR,2) +#define SIO_RCVALL_IGMPMCAST _WSAIOW(IOC_VENDOR,3) +#define SIO_KEEPALIVE_VALS _WSAIOW(IOC_VENDOR,4) +#define SIO_ABSORB_RTRALERT _WSAIOW(IOC_VENDOR,5) +#define SIO_UCAST_IF _WSAIOW(IOC_VENDOR,6) +#define SIO_LIMIT_BROADCASTS _WSAIOW(IOC_VENDOR,7) +#define SIO_INDEX_BIND _WSAIOW(IOC_VENDOR,8) +#define SIO_INDEX_MCASTIF _WSAIOW(IOC_VENDOR,9) +#define SIO_INDEX_ADD_MCAST _WSAIOW(IOC_VENDOR,10) +#define SIO_INDEX_DEL_MCAST _WSAIOW(IOC_VENDOR,11) + +#define RCVALL_OFF 0 +#define RCVALL_ON 1 +#define RCVALL_SOCKETLEVELONLY 2 + +#if (_WIN32_WINNT >= 0x0502) +#define SOCKET_SETTINGS_GUARANTEE_ENCRYPTION 0x00000001 +#define SOCKET_SETTINGS_ALLOW_INSECURE 0x00000002 + +typedef enum _SOCKET_SECURITY_PROTOCOL { + SOCKET_SECURITY_PROTOCOL_DEFAULT, + SOCKET_SECURITY_PROTOCOL_IPSEC, + SOCKET_SECURITY_PROTOCOL_INVALID +} SOCKET_SECURITY_PROTOCOL; + +typedef enum _SOCKET_USAGE_TYPE { + SYSTEM_CRITICAL_SOCKET = 1 +} SOCKET_USAGE_TYPE; + +typedef struct _SOCKET_PEER_TARGET_NAME { + SOCKET_SECURITY_PROTOCOL SecurityProtocol; + SOCKADDR_STORAGE PeerAddress; + ULONG PeerTargetNameStringLen; + wchar_t AllStrings[]; +} SOCKET_PEER_TARGET_NAME; + +#define SOCKET_INFO_CONNECTION_SECURED 0x00000001 +#define SOCKET_INFO_CONNECTION_ENCRYPTED 0x00000002 +#define SOCKET_INFO_CONNECTION_IMPERSONATED 0x00000004 + +typedef struct _SOCKET_SECURITY_QUERY_INFO { + SOCKET_SECURITY_PROTOCOL SecurityProtocol; + ULONG Flags; + UINT64 PeerApplicationAccessTokenHandle; + UINT64 PeerMachineAccessTokenHandle; +} SOCKET_SECURITY_QUERY_INFO; + +typedef struct _SOCKET_SECURITY_QUERY_TEMPLATE { + SOCKET_SECURITY_PROTOCOL SecurityProtocol; + SOCKADDR_STORAGE PeerAddress; + ULONG PeerTokenAccessMask; +} SOCKET_SECURITY_QUERY_TEMPLATE; + +typedef struct _SOCKET_SECURITY_SETTINGS { + SOCKET_SECURITY_PROTOCOL SecurityProtocol; + ULONG SecurityFlags; +} SOCKET_SECURITY_SETTINGS; + +#define SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION 0x00000001 + +typedef struct _SOCKET_SECURITY_SETTINGS_IPSEC { + SOCKET_SECURITY_PROTOCOL SecurityProtocol; + ULONG SecurityFlags; + ULONG IpsecFlags; + GUID AuthipMMPolicyKey; + GUID AuthipQMPolicyKey; + GUID Reserved; + UINT64 Reserved2; + ULONG UserNameStringLen; + ULONG DomainNameStringLen; + ULONG PasswordStringLen; + wchar_t AllStrings[]; +} SOCKET_SECURITY_SETTINGS_IPSEC; + +#define RtlIpv6AddressToString __MINGW_NAME_AW(RtlIpv6AddressToString) +#define RtlIpv6AddressToStringEx __MINGW_NAME_AW(RtlIpv6AddressToStringEx) + +LPWSTR NTAPI RtlIpv6AddressToStringA( + const IN6_ADDR *Addr, + LPSTR S +); + +LPSTR NTAPI RtlIpv6AddressToStringW( + const IN6_ADDR *Addr, + LPWSTR S +); + +LONG NTAPI RtlIpv6AddressToStringExA( + const IN6_ADDR *Address, + ULONG ScopeId, + USHORT Port, + LPSTR AddressString, + PULONG AddressStringLength +); + +LONG NTAPI RtlIpv6AddressToStringExW( + const IN6_ADDR *Address, + ULONG ScopeId, + USHORT Port, + LPWSTR AddressString, + PULONG AddressStringLength +); + +#define RtlIpv4AddressToString __MINGW_NAME_AW(RtlIpv4AddressToString) +LPTSTR NTAPI RtlIpv4AddressToStringA( + const IN_ADDR *Addr, + LPSTR S +); + +LPTSTR NTAPI RtlIpv4AddressToStringW( + const IN_ADDR *Addr, + LPWSTR S +); + +#define RtlIpv4AddressToStringEx __MINGW_NAME_AW(RtlIpv4AddressToStringEx) +LONG NTAPI RtlIpv4AddressToStringExA( + const IN_ADDR *Address, + USHORT Port, + LPSTR AddressString, + PULONG AddressStringLength +); + +LONG NTAPI RtlIpv4AddressToStringExW( + const IN_ADDR *Address, + USHORT Port, + LPWSTR AddressString, + PULONG AddressStringLength +); + +#define RtlIpv4StringToAddress __MINGW_NAME_AW(RtlIpv4StringToAddress) +LONG NTAPI RtlIpv4StringToAddressA( + PCSTR S, + BOOLEAN Strict, + LPSTR *Terminator, + IN_ADDR *Addr +); + +LONG NTAPI RtlIpv4StringToAddressW( + PCWSTR S, + BOOLEAN Strict, + LPWSTR *Terminator, + IN_ADDR *Addr +); + +#define RtlIpv4StringToAddressEx __MINGW_NAME_AW(RtlIpv4StringToAddressEx) +LONG NTAPI RtlIpv4StringToAddressExA( + PCSTR AddressString, + BOOLEAN Strict, + IN_ADDR *Address, + PUSHORT Port +); + +LONG NTAPI RtlIpv4StringToAddressExW( + PCWSTR AddressString, + BOOLEAN Strict, + IN_ADDR *Address, + PUSHORT Port +); + +#define RtlIpv6StringToAddressEx __MINGW_NAME_AW(RtlIpv6StringToAddressEx) +LONG NTAPI RtlIpv6StringToAddressExA( + PCSTR AddressString, + IN6_ADDR *Address, + PULONG ScopeId, + PUSHORT Port +); + +LONG NTAPI RtlIpv6StringToAddressExW( + PCSTR AddressString, + IN6_ADDR *Address, + PULONG ScopeId, + PUSHORT Port +); + +#endif /*(_WIN32_WINNT >= 0x0502)*/ + +#endif /* _MSTCPIP_ */ + |
