mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-04 12:07:45 +00:00
119 lines
3.1 KiB
Odin
119 lines
3.1 KiB
Odin
// +build windows
|
|
package sys_windows
|
|
|
|
foreign import ws2_32 "system:Ws2_32.lib"
|
|
|
|
@(default_calling_convention="stdcall")
|
|
foreign ws2_32 {
|
|
WSAStartup :: proc(wVersionRequested: WORD, lpWSAData: LPWSADATA) -> c_int ---
|
|
WSACleanup :: proc() -> c_int ---
|
|
WSAGetLastError :: proc() -> c_int ---
|
|
WSADuplicateSocketW :: proc(
|
|
s: SOCKET,
|
|
dwProcessId: DWORD,
|
|
lpProtocolInfo: LPWSAPROTOCOL_INFO,
|
|
) -> c_int ---
|
|
WSASend :: proc(
|
|
s: SOCKET,
|
|
lpBuffers: LPWSABUF,
|
|
dwBufferCount: DWORD,
|
|
lpNumberOfBytesSent: LPDWORD,
|
|
dwFlags: DWORD,
|
|
lpOverlapped: LPWSAOVERLAPPED,
|
|
lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
|
) -> c_int ---
|
|
WSARecv :: proc(
|
|
s: SOCKET,
|
|
lpBuffers: LPWSABUF,
|
|
dwBufferCount: DWORD,
|
|
lpNumberOfBytesRecvd: LPDWORD,
|
|
lpFlags: LPDWORD,
|
|
lpOverlapped: LPWSAOVERLAPPED,
|
|
lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE,
|
|
) -> c_int ---
|
|
WSASocketW :: proc(
|
|
af: c_int,
|
|
kind: c_int,
|
|
protocol: c_int,
|
|
lpProtocolInfo: LPWSAPROTOCOL_INFO,
|
|
g: GROUP,
|
|
dwFlags: DWORD,
|
|
) -> SOCKET ---
|
|
socket :: proc(
|
|
af: c_int,
|
|
type: c_int,
|
|
protocol: c_int,
|
|
) -> SOCKET ---
|
|
|
|
ioctlsocket :: proc(s: SOCKET, cmd: c_long, argp: ^c_ulong) -> c_int ---
|
|
closesocket :: proc(socket: SOCKET) -> c_int ---
|
|
recv :: proc(socket: SOCKET, buf: rawptr, len: c_int, flags: c_int) -> c_int ---
|
|
send :: proc(socket: SOCKET, buf: rawptr, len: c_int, flags: c_int) -> c_int ---
|
|
recvfrom :: proc(
|
|
socket: SOCKET,
|
|
buf: rawptr,
|
|
len: c_int,
|
|
flags: c_int,
|
|
addr: ^SOCKADDR,
|
|
addrlen: ^c_int,
|
|
) -> c_int ---
|
|
sendto :: proc(
|
|
socket: SOCKET,
|
|
buf: rawptr,
|
|
len: c_int,
|
|
flags: c_int,
|
|
addr: ^SOCKADDR,
|
|
addrlen: c_int,
|
|
) -> c_int ---
|
|
shutdown :: proc(socket: SOCKET, how: c_int) -> c_int ---
|
|
accept :: proc(socket: SOCKET, address: ^SOCKADDR, address_len: ^c_int) -> SOCKET ---
|
|
|
|
setsockopt :: proc(
|
|
s: SOCKET,
|
|
level: c_int,
|
|
optname: c_int,
|
|
optval: rawptr,
|
|
optlen: c_int,
|
|
) -> c_int ---
|
|
getsockname :: proc(socket: SOCKET, address: ^SOCKADDR, address_len: ^c_int) -> c_int ---
|
|
getpeername :: proc(socket: SOCKET, address: ^SOCKADDR, address_len: ^c_int) -> c_int ---
|
|
bind :: proc(socket: SOCKET, address: ^SOCKADDR, address_len: socklen_t) -> c_int ---
|
|
listen :: proc(socket: SOCKET, backlog: c_int) -> c_int ---
|
|
connect :: proc(socket: SOCKET, address: ^SOCKADDR, len: c_int) -> c_int ---
|
|
getaddrinfo :: proc(
|
|
node: cstring,
|
|
service: cstring,
|
|
hints: ^ADDRINFOA,
|
|
res: ^^ADDRINFOA,
|
|
) -> c_int ---
|
|
freeaddrinfo :: proc(res: ^ADDRINFOA) ---
|
|
FreeAddrInfoExW :: proc(pAddrInfoEx: PADDRINFOEXW) ---
|
|
GetAddrInfoExW :: proc(
|
|
pName: PCWSTR,
|
|
pServiceName: PCWSTR,
|
|
dwNameSpace: DWORD,
|
|
lpNspId: LPGUID,
|
|
hints: ^ADDRINFOEXW,
|
|
ppResult: ^PADDRINFOEXW,
|
|
timeout: ^timeval,
|
|
lpOverlapped: LPOVERLAPPED,
|
|
lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE,
|
|
lpHandle: LPHANDLE) -> INT ---
|
|
|
|
select :: proc(
|
|
nfds: c_int,
|
|
readfds: ^fd_set,
|
|
writefds: ^fd_set,
|
|
exceptfds: ^fd_set,
|
|
timeout: ^timeval,
|
|
) -> c_int ---
|
|
getsockopt :: proc(
|
|
s: SOCKET,
|
|
level: c_int,
|
|
optname: c_int,
|
|
optval: ^c_char,
|
|
optlen: ^c_int,
|
|
) -> c_int ---
|
|
|
|
}
|