3 * System.Net.Sockets.Socket support
6 * Dick Porter (dick@ximian.com)
8 * (C) 2001 Ximian, Inc.
11 #ifndef _MONO_METADATA_W32SOCKET_H_
12 #define _MONO_METADATA_W32SOCKET_H_
16 #include <mono/metadata/object-internals.h>
17 #include <mono/metadata/icalls.h>
20 #define INVALID_SOCKET ((SOCKET)(guint32)(~0))
21 #define SOCKET_ERROR (-1)
31 /* This is a copy of System.Net.Sockets.SocketType */
37 SocketType_Seqpacket
=5,
41 /* This is a copy of System.Net.Sockets.AddressFamily */
43 AddressFamily_Unknown
=-1,
44 AddressFamily_Unspecified
=0,
46 AddressFamily_InterNetwork
=2,
47 AddressFamily_ImpLink
=3,
49 AddressFamily_Chaos
=5,
55 AddressFamily_DataKit
=9,
56 AddressFamily_Ccitt
=10,
58 AddressFamily_DecNet
=12,
59 AddressFamily_DataLink
=13,
61 AddressFamily_HyperChannel
=15,
62 AddressFamily_AppleTalk
=16,
63 AddressFamily_NetBios
=17,
64 AddressFamily_VoiceView
=18,
65 AddressFamily_FireFox
=19,
66 AddressFamily_Banyan
=21,
68 AddressFamily_InterNetworkV6
=23,
69 AddressFamily_Cluster
=24,
70 AddressFamily_Ieee12844
=25,
71 AddressFamily_Irda
=26,
72 AddressFamily_NetworkDesigners
=28
75 /* This is a copy of System.Net.Sockets.ProtocolType */
87 ProtocolType_IPv6RoutingHeader
=43,
88 ProtocolType_IPv6FragmentHeader
=44,
89 ProtocolType_IPSecEncapsulatingSecurityPayload
=50,
90 ProtocolType_IPSecAuthenticationHeader
=51,
91 ProtocolType_IcmpV6
=58,
92 ProtocolType_IPv6NoNextHeader
=59,
93 ProtocolType_IPv6DestinationOptions
=60,
96 ProtocolType_Unspecified
=0,
97 ProtocolType_Ipx
=1000,
98 ProtocolType_Spx
=1256,
99 ProtocolType_SpxII
=1257,
100 ProtocolType_Unknown
=-1
103 /* This is a copy of System.Net.Sockets.SocketOptionLevel */
105 SocketOptionLevel_Socket
=65535,
106 SocketOptionLevel_IP
=0,
107 SocketOptionLevel_IPv6
=41,
108 SocketOptionLevel_Tcp
=6,
109 SocketOptionLevel_Udp
=17
110 } MonoSocketOptionLevel
;
112 /* This is a copy of System.Net.Sockets.SocketOptionName */
114 SocketOptionName_Debug
=1,
115 SocketOptionName_AcceptConnection
=2,
116 SocketOptionName_ReuseAddress
=4,
117 SocketOptionName_KeepAlive
=8,
118 SocketOptionName_DontRoute
=16,
119 SocketOptionName_IPProtectionLevel
= 23,
120 SocketOptionName_IPv6Only
= 27,
121 SocketOptionName_Broadcast
=32,
122 SocketOptionName_UseLoopback
=64,
123 SocketOptionName_Linger
=128,
124 SocketOptionName_OutOfBandInline
=256,
125 SocketOptionName_DontLinger
= -129,
126 SocketOptionName_ExclusiveAddressUse
= -5,
127 SocketOptionName_SendBuffer
= 4097,
128 SocketOptionName_ReceiveBuffer
=4098,
129 SocketOptionName_SendLowWater
=4099,
130 SocketOptionName_ReceiveLowWater
=4100,
131 SocketOptionName_SendTimeout
=4101,
132 SocketOptionName_ReceiveTimeout
=4102,
133 SocketOptionName_Error
=4103,
134 SocketOptionName_Type
=4104,
135 SocketOptionName_MaxConnections
=2147483647,
136 SocketOptionName_IPOptions
=1,
137 SocketOptionName_HeaderIncluded
=2,
138 SocketOptionName_TypeOfService
=3,
139 SocketOptionName_IpTimeToLive
=4,
140 SocketOptionName_MulticastInterface
=9,
141 SocketOptionName_MulticastTimeToLive
=10,
142 SocketOptionName_MulticastLoopback
=11,
143 SocketOptionName_AddMembership
=12,
144 SocketOptionName_DropMembership
=13,
145 SocketOptionName_DontFragment
=14,
146 SocketOptionName_AddSourceMembership
=15,
147 SocketOptionName_DropSourceMembership
=16,
148 SocketOptionName_BlockSource
=17,
149 SocketOptionName_UnblockSource
=18,
150 SocketOptionName_PacketInformation
=19,
151 SocketOptionName_NoDelay
=1,
152 SocketOptionName_BsdUrgent
=2,
153 SocketOptionName_Expedited
=2,
154 SocketOptionName_NoChecksum
=1,
155 SocketOptionName_ChecksumCoverage
=20,
156 SocketOptionName_HopLimit
=21,
158 /* This is Mono-specific, keep it in sync with
159 * Mono.Posix/PeerCred.cs
161 SocketOptionName_PeerCred
=10001
162 } MonoSocketOptionName
;
164 /* This is a copy of System.Net.Sockets.SocketFlags */
166 SocketFlags_None
= 0x0000,
167 SocketFlags_OutOfBand
= 0x0001,
168 SocketFlags_MaxIOVectorLength
= 0x0010,
169 SocketFlags_Peek
= 0x0002,
170 SocketFlags_DontRoute
= 0x0004,
171 SocketFlags_Partial
= 0x8000
182 /* Safely access Mono.Posix.PeerCredData from native code */
183 TYPED_HANDLE_DECL (MonoPeerCredData
);
187 ves_icall_System_Net_Sockets_SocketException_WSAGetLastError_icall (void);
190 mono_network_init(void);
193 mono_network_cleanup(void);
195 #endif /* _MONO_METADATA_W32SOCKET_H_ */