mirror of
https://github.com/frida/tinycc
synced 2024-12-18 19:32:33 +03:00
101cc8747f
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.
196 lines
5.1 KiB
C
196 lines
5.1 KiB
C
/**
|
|
* 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_ */
|
|
|