123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- #pragma once
- #include <stdint.h>
- #include "il2cpp-config.h"
- #include "il2cpp-object-internals.h"
- struct Il2CppArray;
- struct Il2CppObject;
- struct Il2CppString;
- namespace il2cpp
- {
- namespace os
- {
- struct WSABuf;
- }
- }
- namespace il2cpp
- {
- namespace icalls
- {
- namespace System
- {
- namespace System
- {
- namespace Net
- {
- namespace Sockets
- {
- enum AddressFamily
- {
- kAddressFamilyUnknown = -1,
- kAddressFamilyUnspecified = 0,
- kAddressFamilyUnix = 1,
- kAddressFamilyInterNetwork = 2,
- kAddressFamilyImpLink = 3,
- kAddressFamilyPup = 4,
- kAddressFamilyChaos = 5,
- kAddressFamilyNS = 6,
- kAddressFamilyIpx = 6,
- kAddressFamilyIso = 7,
- kAddressFamilyOsi = 7,
- kAddressFamilyEcma = 8,
- kAddressFamilyDataKit = 9,
- kAddressFamilyCcitt = 10,
- kAddressFamilySna = 11,
- kAddressFamilyDecNet = 12,
- kAddressFamilyDataLink = 13,
- kAddressFamilyLat = 14,
- kAddressFamilyHyperChannel = 15,
- kAddressFamilyAppleTalk = 16,
- kAddressFamilyNetBios = 17,
- kAddressFamilyVoiceView = 18,
- kAddressFamilyFireFox = 19,
- kAddressFamilyBanyan = 21,
- kAddressFamilyAtm = 22,
- kAddressFamilyInterNetworkV6 = 23,
- kAddressFamilyCluster = 24,
- kAddressFamilyIeee12844 = 25,
- kAddressFamilyIrda = 26,
- kAddressFamilyNetworkDesigners = 28,
- kAddressFamilyMax = 29,
- };
- enum SocketType
- {
- kSocketTypeUnknown = -1,
- kSocketTypeStream = 1,
- kSocketTypeDgram = 2,
- kSocketTypeRaw = 3,
- kSocketTypeRdm = 4,
- kSocketTypeSeqpacket = 5,
- };
- enum ProtocolType
- {
- kProtocolTypeUnknown = -1,
- kProtocolTypeIP = 0,
- kProtocolTypeIcmp = 1,
- kProtocolTypeIgmp = 2,
- kProtocolTypeGgp = 3,
- kProtocolTypeTcp = 6,
- kProtocolTypePup = 12,
- kProtocolTypeUdp = 17,
- kProtocolTypeIdp = 22,
- kProtocolTypeND = 77,
- kProtocolTypeRaw = 255,
- kProtocolTypeUnspecified = 0,
- kProtocolTypeIpx = 1000,
- kProtocolTypeSpx = 1256,
- kProtocolTypeSpxII = 1257,
- // #if NET_1_1
- kProtocolTypeIPv6 = 41,
- // #endif
- // #if NET_2_0
- kProtocolTypeIPv4 = 4,
- kProtocolTypeIPv6RoutingHeader = 43,
- kProtocolTypeIPv6FragmentHeader = 44,
- kProtocolTypeIPSecEncapsulatingSecurityPayload = 50,
- kProtocolTypeIPSecAuthenticationHeader = 51,
- kProtocolTypeIcmpV6 = 58,
- kProtocolTypeIPv6NoNextHeader = 59,
- kProtocolTypeIPv6DestinationOptions = 60,
- kProtocolTypeIPv6HopByHopOptions = 0,
- // #endif
- };
- enum SocketOptionLevel
- {
- kSocketOptionLevelSocket = 65535,
- kSocketOptionLevelIP = 0,
- kSocketOptionLevelTcp = 6,
- kSocketOptionLevelUdp = 17,
- //#if NET_1_1
- kSocketOptionLevelIPv6 = 41,
- //#endif
- };
- enum SocketOptionName
- {
- kSocketOptionNameDebug = 1,
- kSocketOptionNameAcceptConnection = 2,
- kSocketOptionNameReuseAddress = 4,
- kSocketOptionNameKeepAlive = 8,
- kSocketOptionNameDontRoute = 16,
- kSocketOptionNameBroadcast = 32,
- kSocketOptionNameUseLoopback = 64,
- kSocketOptionNameLinger = 128,
- kSocketOptionNameOutOfBandInline = 256,
- kSocketOptionNameDontLinger = -129,
- kSocketOptionNameExclusiveAddressUse = -5,
- kSocketOptionNameSendBuffer = 4097,
- kSocketOptionNameReceiveBuffer = 4098,
- kSocketOptionNameSendLowWater = 4099,
- kSocketOptionNameReceiveLowWater = 4100,
- kSocketOptionNameSendTimeout = 4101,
- kSocketOptionNameReceiveTimeout = 4102,
- kSocketOptionNameError = 4103,
- kSocketOptionNameType = 4104,
- kSocketOptionNameMaxConnections = 2147483647,
- kSocketOptionNameIPOptions = 1,
- kSocketOptionNameHeaderIncluded = 2,
- kSocketOptionNameTypeOfService = 3,
- kSocketOptionNameIpTimeToLive = 4,
- kSocketOptionNameMulticastInterface = 9,
- kSocketOptionNameMulticastTimeToLive = 10,
- kSocketOptionNameMulticastLoopback = 11,
- kSocketOptionNameAddMembership = 12,
- kSocketOptionNameDropMembership = 13,
- kSocketOptionNameDontFragment = 14,
- kSocketOptionNameAddSourceMembership = 15,
- kSocketOptionNameDropSourceMembership = 16,
- kSocketOptionNameBlockSource = 17,
- kSocketOptionNameUnblockSource = 18,
- kSocketOptionNamePacketInformation = 19,
- kSocketOptionNameNoDelay = 1,
- kSocketOptionNameBsdUrgent = 2,
- kSocketOptionNameExpedited = 2,
- kSocketOptionNameNoChecksum = 1,
- kSocketOptionNameChecksumCoverage = 20,
- // #if NET_2_0
- kSocketOptionNameHopLimit = 21,
- kSocketOptionNameUpdateAcceptContext = 28683,
- kSocketOptionNameUpdateConnectContext = 28688,
- // #endif
- };
- enum SelectMode
- {
- kSelectModeSelectRead = 0,
- kSelectModeSelectWrite = 1,
- kSelectModeSelectError = 2,
- };
- enum SocketFlags
- {
- kSocketFlagsNone = 0x00000000,
- kSocketFlagsOutOfBand = 0x00000001,
- kSocketFlagsPeek = 0x00000002,
- kSocketFlagsDontRoute = 0x00000004,
- kSocketFlagsMaxIOVectorLength = 0x00000010,
- // #if NET_2_0
- kSocketFlagsTruncated = 0x00000100,
- kSocketFlagsControlDataTruncated = 0x00000200,
- kSocketFlagsBroadcast = 0x00000400,
- kSocketFlagsMulticast = 0x00000800,
- // #endif
- kSocketFlagsPartial = 0x00008000,
- };
- enum TransmitFileOptions
- {
- kTransmitFileOptionsUseDefaultWorkerThread = 0x00000000,
- kTransmitFileOptionsDisconnect = 0x00000001,
- kTransmitFileOptionsReuseSocket = 0x00000002,
- kTransmitFileOptionsWriteBehind = 0x00000004,
- kTransmitFileOptionsUseSystemThread = 0x00000010,
- kTransmitFileOptionsUseKernelApc = 0x00000020,
- };
- enum SocketShutdown
- {
- kSocketShutdownReceive = 0,
- kSocketShutdownSend = 1,
- kSocketShutdownBoth = 2,
- };
- class LIBIL2CPP_CODEGEN_API Socket
- {
- public:
- static bool Duplicate_icall(intptr_t handle, int32_t targetProcessId, intptr_t* duplicateHandle, int32_t* error);
- static bool IsProtocolSupported_internal(int32_t networkInterface);
- static bool Poll_icall(intptr_t socket, SelectMode mode, int32_t timeout, int32_t* error);
- static bool SendFile_icall(intptr_t socket, Il2CppString* filename, Il2CppArray* pre_buffer, Il2CppArray* post_buffer, TransmitFileOptions flags, int32_t* error, bool blocking);
- static bool SupportsPortReuse(int32_t proto);
- static int32_t Available_icall(intptr_t socket, int32_t* error);
- static int32_t IOControl_icall(intptr_t socket, int32_t ioctl_code, Il2CppArray* input, Il2CppArray* output, int32_t* error);
- static int32_t Receive_array_icall(intptr_t socket, os::WSABuf* bufarray, int32_t count, SocketFlags flags, int32_t *error, bool blocking);
- static int32_t Receive_icall(intptr_t socket, uint8_t* buffer, int32_t count, SocketFlags flags, int32_t* error, bool blocking);
- static int32_t ReceiveFrom_icall(intptr_t socket, uint8_t* buffer, int32_t count, SocketFlags flags, Il2CppSocketAddress** socket_address, int32_t* error, bool blocking);
- static int32_t Send_array_icall(intptr_t socket, os::WSABuf* bufarray, int32_t count, SocketFlags flags, int32_t* error, bool blocking);
- static int32_t Send_icall(intptr_t socket, uint8_t* buffer, int32_t count, SocketFlags flags, int32_t* error, bool blocking);
- static int32_t SendTo_icall(intptr_t socket, uint8_t* buffer, int32_t count, SocketFlags flags, Il2CppSocketAddress* socket_address, int32_t* error, bool blocking);
- static intptr_t Accept_icall(intptr_t socket, int32_t* error, bool blocking);
- static intptr_t Socket_icall(AddressFamily family, SocketType type, ProtocolType proto, int32_t* error);
- static Il2CppSocketAddress* LocalEndPoint_icall(intptr_t socket, int32_t family, int32_t* error);
- static Il2CppSocketAddress* RemoteEndPoint_icall(intptr_t socket, int32_t family, int32_t* error);
- static void Bind_icall(intptr_t socket, Il2CppSocketAddress* socket_address, int32_t* error);
- static void Blocking_icall(intptr_t socket, bool block, int32_t* error);
- static void cancel_blocking_socket_operation(Il2CppObject* thread);
- static void Close_icall(intptr_t socket, int32_t* error);
- static void Connect_icall(intptr_t socket, Il2CppSocketAddress* sa, int32_t* error, bool blocking);
- static void Disconnect_icall(intptr_t socket, bool reuse, int32_t* error);
- static void GetSocketOption_arr_icall(intptr_t socket, SocketOptionLevel level, SocketOptionName name, Il2CppArray** byte_val, int32_t *error);
- static void GetSocketOption_obj_icall(intptr_t socket, SocketOptionLevel level, SocketOptionName name, Il2CppObject** obj_val, int32_t *error);
- static void Listen_icall(intptr_t socket, int32_t backlog, int32_t* error);
- static void Select_icall(Il2CppArray** sockets, int32_t microSeconds, int32_t* error);
- static void SetSocketOption_icall(intptr_t socket, SocketOptionLevel level, SocketOptionName name, Il2CppObject* obj_val, Il2CppArray* byte_val, int32_t int_val, int32_t* error);
- static void Shutdown_icall(intptr_t socket, SocketShutdown how, int32_t* error);
- };
- } /* namespace Sockets */
- } /* namespace Net */
- } /* namespace System */
- } /* namespace System */
- } /* namespace icalls */
- } /* namespace il2cpp */
|