aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/sys/windows/kernel32.odin6
-rw-r--r--core/sys/windows/types.odin6
-rw-r--r--core/sys/windows/ws2_32.odin4
3 files changed, 16 insertions, 0 deletions
diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin
index ed32c7a9f..5c02cecf2 100644
--- a/core/sys/windows/kernel32.odin
+++ b/core/sys/windows/kernel32.odin
@@ -372,6 +372,12 @@ foreign kernel32 {
bInitialState: BOOL,
lpName: LPCWSTR,
) -> HANDLE ---
+ CreateEventExW :: proc(
+ lpEventAttributes: LPSECURITY_ATTRIBUTES,
+ lpName: LPCWSTR,
+ dwFlags: DWORD,
+ dwDesiredAccess: DWORD,
+ ) -> HANDLE ---
ResetEvent :: proc(hEvent: HANDLE) -> BOOL ---
SetEvent :: proc(hEvent: HANDLE) -> BOOL ---
WaitForMultipleObjects :: proc(
diff --git a/core/sys/windows/types.odin b/core/sys/windows/types.odin
index f698b63d4..92b1cb15c 100644
--- a/core/sys/windows/types.odin
+++ b/core/sys/windows/types.odin
@@ -4845,6 +4845,12 @@ SOMAXCONN :: 128 // The number of messages that can be queued in memory after
SOCKET_ERROR :: -1
// Networking errors
+WSA_INVALID_HANDLE :: 6 // Specified event object handle is invalid.
+WSA_NOT_ENOUGH_MEMORY :: 8 // Insufficient memory available.
+WSA_INVALID_PARAMETER :: 87 // One or more parameters are invalid.
+WSA_OPERATION_ABORTED :: 995 // Overlapped operation aborted.
+WSA_IO_INCOMPLETE :: 996 // Overlapped I/O event object not in signaled state.
+WSA_IO_PENDING :: 997 // Overlapped operations will complete later.
WSAEINTR :: 10004 // Call interrupted. CancelBlockingCall was called. (This is different on Linux.)
WSAEACCES :: 10013 // If you try to bind a Udp socket to the broadcast address without the socket option set.
WSAEFAULT :: 10014 // A pointer that was passed to a WSA function is invalid, such as a buffer size is smaller than you said it was
diff --git a/core/sys/windows/ws2_32.odin b/core/sys/windows/ws2_32.odin
index d808bcd09..0fc427728 100644
--- a/core/sys/windows/ws2_32.odin
+++ b/core/sys/windows/ws2_32.odin
@@ -131,6 +131,10 @@ foreign ws2_32 {
) -> SOCKET ---
// [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsaioctl)
WSAIoctl :: proc(s: SOCKET, dwIoControlCode: DWORD, lpvInBuffer: rawptr, cbInBuffer: DWORD, lpvOutBuffer: rawptr, cbOutBuffer: DWORD, lpcbBytesReturned: ^DWORD, lpOverlapped: ^OVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> c_int ---
+ // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsacreateevent)
+ WSACreateEvent :: proc() -> WSAEVENT ---
+ // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsacloseevent)
+ WSACloseEvent :: proc(hEvent: WSAEVENT) -> bool ---
// [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsaeventselect)
WSAEventSelect :: proc(s: SOCKET, hEventObject: WSAEVENT, lNetworkEvents: i32) -> c_int ---
// [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsawaitformultipleevents)