mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
sys/windows: add procedures and types
This commit is contained in:
@@ -92,6 +92,20 @@ foreign kernel32 {
|
|||||||
CreateSemaphoreW :: proc(attributes: LPSECURITY_ATTRIBUTES, initial_count, maximum_count: LONG, name: LPCSTR) -> HANDLE ---
|
CreateSemaphoreW :: proc(attributes: LPSECURITY_ATTRIBUTES, initial_count, maximum_count: LONG, name: LPCSTR) -> HANDLE ---
|
||||||
ReleaseSemaphore :: proc(semaphore: HANDLE, release_count: LONG, previous_count: ^LONG) -> BOOL ---
|
ReleaseSemaphore :: proc(semaphore: HANDLE, release_count: LONG, previous_count: ^LONG) -> BOOL ---
|
||||||
|
|
||||||
|
CreateWaitableTimerW :: proc(
|
||||||
|
lpTimerAttributes: LPSECURITY_ATTRIBUTES,
|
||||||
|
bManualReset: BOOL,
|
||||||
|
lpTimerName: LPCWSTR,
|
||||||
|
) -> HANDLE ---
|
||||||
|
SetWaitableTimerEx :: proc(
|
||||||
|
hTimer: HANDLE,
|
||||||
|
lpDueTime: ^LARGE_INTEGER,
|
||||||
|
lPeriod: LONG,
|
||||||
|
pfnCompletionRoutine: PTIMERAPCROUTINE,
|
||||||
|
lpArgToCompletionRoutine: LPVOID,
|
||||||
|
WakeContext: PREASON_CONTEXT,
|
||||||
|
TolerableDelay: ULONG,
|
||||||
|
) -> BOOL ---
|
||||||
WaitForSingleObject :: proc(hHandle: HANDLE, dwMilliseconds: DWORD) -> DWORD ---
|
WaitForSingleObject :: proc(hHandle: HANDLE, dwMilliseconds: DWORD) -> DWORD ---
|
||||||
Sleep :: proc(dwMilliseconds: DWORD) ---
|
Sleep :: proc(dwMilliseconds: DWORD) ---
|
||||||
GetProcessId :: proc(handle: HANDLE) -> DWORD ---
|
GetProcessId :: proc(handle: HANDLE) -> DWORD ---
|
||||||
|
|||||||
@@ -123,6 +123,8 @@ PCONDITION_VARIABLE :: ^CONDITION_VARIABLE
|
|||||||
PLARGE_INTEGER :: ^LARGE_INTEGER
|
PLARGE_INTEGER :: ^LARGE_INTEGER
|
||||||
PSRWLOCK :: ^SRWLOCK
|
PSRWLOCK :: ^SRWLOCK
|
||||||
|
|
||||||
|
MMRESULT :: UINT
|
||||||
|
|
||||||
SOCKET :: distinct uintptr // TODO
|
SOCKET :: distinct uintptr // TODO
|
||||||
socklen_t :: c_int
|
socklen_t :: c_int
|
||||||
ADDRESS_FAMILY :: USHORT
|
ADDRESS_FAMILY :: USHORT
|
||||||
@@ -195,6 +197,56 @@ GET_FILEEX_INFO_LEVELS :: distinct i32
|
|||||||
GetFileExInfoStandard: GET_FILEEX_INFO_LEVELS : 0
|
GetFileExInfoStandard: GET_FILEEX_INFO_LEVELS : 0
|
||||||
GetFileExMaxInfoLevel: GET_FILEEX_INFO_LEVELS : 1
|
GetFileExMaxInfoLevel: GET_FILEEX_INFO_LEVELS : 1
|
||||||
|
|
||||||
|
// String resource number bases (internal use)
|
||||||
|
|
||||||
|
MMSYSERR_BASE :: 0
|
||||||
|
WAVERR_BASE :: 32
|
||||||
|
MIDIERR_BASE :: 64
|
||||||
|
TIMERR_BASE :: 96
|
||||||
|
JOYERR_BASE :: 160
|
||||||
|
MCIERR_BASE :: 256
|
||||||
|
MIXERR_BASE :: 1024
|
||||||
|
|
||||||
|
MCI_STRING_OFFSET :: 512
|
||||||
|
MCI_VD_OFFSET :: 1024
|
||||||
|
MCI_CD_OFFSET :: 1088
|
||||||
|
MCI_WAVE_OFFSET :: 1152
|
||||||
|
MCI_SEQ_OFFSET :: 1216
|
||||||
|
|
||||||
|
// timer error return values
|
||||||
|
TIMERR_NOERROR :: 0 // no error
|
||||||
|
TIMERR_NOCANDO :: TIMERR_BASE + 1 // request not completed
|
||||||
|
TIMERR_STRUCT :: TIMERR_BASE + 33 // time struct size
|
||||||
|
|
||||||
|
DIAGNOSTIC_REASON_VERSION :: 0
|
||||||
|
|
||||||
|
DIAGNOSTIC_REASON_SIMPLE_STRING :: 0x00000001
|
||||||
|
DIAGNOSTIC_REASON_DETAILED_STRING :: 0x00000002
|
||||||
|
DIAGNOSTIC_REASON_NOT_SPECIFIED :: 0x80000000
|
||||||
|
|
||||||
|
// Defines for power request APIs
|
||||||
|
|
||||||
|
POWER_REQUEST_CONTEXT_VERSION :: DIAGNOSTIC_REASON_VERSION
|
||||||
|
|
||||||
|
POWER_REQUEST_CONTEXT_SIMPLE_STRING :: DIAGNOSTIC_REASON_SIMPLE_STRING
|
||||||
|
POWER_REQUEST_CONTEXT_DETAILED_STRING :: DIAGNOSTIC_REASON_DETAILED_STRING
|
||||||
|
|
||||||
|
REASON_CONTEXT :: struct {
|
||||||
|
Version: ULONG,
|
||||||
|
Flags: DWORD,
|
||||||
|
Reason: struct #raw_union {
|
||||||
|
Detailed: struct {
|
||||||
|
LocalizedReasonModule: HMODULE,
|
||||||
|
LocalizedReasonId: ULONG,
|
||||||
|
ReasonStringCount: ULONG,
|
||||||
|
ReasonStrings: ^LPWSTR,
|
||||||
|
},
|
||||||
|
SimpleReasonString: LPWSTR,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
PREASON_CONTEXT :: ^REASON_CONTEXT
|
||||||
|
|
||||||
|
PTIMERAPCROUTINE :: #type proc "stdcall" (lpArgToCompletionRoutine: LPVOID, dwTimerLowValue, dwTimerHighValue: DWORD)
|
||||||
|
|
||||||
TIMERPROC :: #type proc "stdcall" (HWND, UINT, UINT_PTR, DWORD)
|
TIMERPROC :: #type proc "stdcall" (HWND, UINT, UINT_PTR, DWORD)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user