From 4815d95128ed0a03544b9d89af4cf709b73e1d96 Mon Sep 17 00:00:00 2001 From: Leo Zurbriggen Date: Thu, 2 Jan 2025 18:08:06 +0100 Subject: [PATCH 1/3] move GetCommPorts to correct foreign block --- core/sys/windows/kernel32.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index 8be50bceb..ff9d84959 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -109,7 +109,6 @@ foreign kernel32 { ClearCommError :: proc(hFile: HANDLE, lpErrors: ^Com_Error, lpStat: ^COMSTAT) -> BOOL --- GetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL --- SetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL --- - GetCommPorts :: proc(lpPortNumbers: PULONG, uPortNumbersCount: ULONG, puPortNumbersFound: PULONG) -> ULONG --- GetCommandLineW :: proc() -> LPCWSTR --- GetTempPathW :: proc(nBufferLength: DWORD, lpBuffer: LPCWSTR) -> DWORD --- GetCurrentProcess :: proc() -> HANDLE --- @@ -1068,6 +1067,7 @@ foreign one_core { PageProtection: ULONG, PreferredNode: ULONG, ) -> PVOID --- + GetCommPorts :: proc(lpPortNumbers: PULONG, uPortNumbersCount: ULONG, puPortNumbersFound: PULONG) -> ULONG --- } From c60492659527fdf383eb8bcc730f5f38dec48e26 Mon Sep 17 00:00:00 2001 From: Leo Zurbriggen Date: Sun, 5 Jan 2025 18:04:36 +0100 Subject: [PATCH 2/3] add SetCommMask, GetCommMask, WaitCommEvent, GetCommPorts, communication event constants --- core/sys/windows/kernel32.odin | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index ff9d84959..e3bbb9a10 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -21,6 +21,16 @@ COMMON_LVB_REVERSE_VIDEO :: WORD(0x4000) COMMON_LVB_UNDERSCORE :: WORD(0x8000) COMMON_LVB_SBCSDBCS :: WORD(0x0300) +EV_BREAK :: DWORD(0x0040) +EV_CTS :: DWORD(0x0008) +EV_DSR :: DWORD(0x0010) +EV_ERR :: DWORD(0x0080) +EV_RING :: DWORD(0x0100) +EV_RLSD :: DWORD(0x0020) +EV_RXCHAR :: DWORD(0x0001) +EV_RXFLAG :: DWORD(0x0002) +EV_TXEMPTY :: DWORD(0x0004) + @(default_calling_convention="system") foreign kernel32 { OutputDebugStringA :: proc(lpOutputString: LPCSTR) --- // The only A thing that is allowed @@ -109,6 +119,9 @@ foreign kernel32 { ClearCommError :: proc(hFile: HANDLE, lpErrors: ^Com_Error, lpStat: ^COMSTAT) -> BOOL --- GetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL --- SetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL --- + SetCommMask :: proc(handle: HANDLE, dwEvtMap: DWORD) -> BOOL --- + GetCommMask :: proc(handle: HANDLE, lpEvtMask: LPDWORD) -> BOOL --- + WaitCommEvent ::proc(handle: HANDLE, lpEvtMask: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL --- GetCommandLineW :: proc() -> LPCWSTR --- GetTempPathW :: proc(nBufferLength: DWORD, lpBuffer: LPCWSTR) -> DWORD --- GetCurrentProcess :: proc() -> HANDLE --- @@ -1067,7 +1080,11 @@ foreign one_core { PageProtection: ULONG, PreferredNode: ULONG, ) -> PVOID --- - GetCommPorts :: proc(lpPortNumbers: PULONG, uPortNumbersCount: ULONG, puPortNumbersFound: PULONG) -> ULONG --- + GetCommPorts :: proc( + lpPortNumbers: PULONG, + uPortNumbersCount: ULONG, + puPortNumbersFound: PULONG, + ) -> ULONG --- } From 823740c7a4f9a6bcee28137aca9ee35c3bb87655 Mon Sep 17 00:00:00 2001 From: Leo Zurbriggen Date: Sun, 5 Jan 2025 18:43:16 +0100 Subject: [PATCH 3/3] formatting --- core/sys/windows/kernel32.odin | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index e3bbb9a10..e280b3c29 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -20,16 +20,15 @@ COMMON_LVB_GRID_RVERTICAL :: WORD(0x1000) COMMON_LVB_REVERSE_VIDEO :: WORD(0x4000) COMMON_LVB_UNDERSCORE :: WORD(0x8000) COMMON_LVB_SBCSDBCS :: WORD(0x0300) - -EV_BREAK :: DWORD(0x0040) -EV_CTS :: DWORD(0x0008) -EV_DSR :: DWORD(0x0010) -EV_ERR :: DWORD(0x0080) -EV_RING :: DWORD(0x0100) -EV_RLSD :: DWORD(0x0020) -EV_RXCHAR :: DWORD(0x0001) -EV_RXFLAG :: DWORD(0x0002) -EV_TXEMPTY :: DWORD(0x0004) +EV_BREAK :: DWORD(0x0040) +EV_CTS :: DWORD(0x0008) +EV_DSR :: DWORD(0x0010) +EV_ERR :: DWORD(0x0080) +EV_RING :: DWORD(0x0100) +EV_RLSD :: DWORD(0x0020) +EV_RXCHAR :: DWORD(0x0001) +EV_RXFLAG :: DWORD(0x0002) +EV_TXEMPTY :: DWORD(0x0004) @(default_calling_convention="system") foreign kernel32 { @@ -121,7 +120,7 @@ foreign kernel32 { SetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL --- SetCommMask :: proc(handle: HANDLE, dwEvtMap: DWORD) -> BOOL --- GetCommMask :: proc(handle: HANDLE, lpEvtMask: LPDWORD) -> BOOL --- - WaitCommEvent ::proc(handle: HANDLE, lpEvtMask: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL --- + WaitCommEvent :: proc(handle: HANDLE, lpEvtMask: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL --- GetCommandLineW :: proc() -> LPCWSTR --- GetTempPathW :: proc(nBufferLength: DWORD, lpBuffer: LPCWSTR) -> DWORD --- GetCurrentProcess :: proc() -> HANDLE ---