diff --git a/library/windows/kernel32-constants.factor b/library/windows/kernel32-constants.factor index 195826e104..d882a68247 100644 --- a/library/windows/kernel32-constants.factor +++ b/library/windows/kernel32-constants.factor @@ -58,3 +58,4 @@ USING: alien kernel errors ; : CREATE_DEFAULT_ERROR_MODE HEX: 4000000 ; inline : DETACHED_PROCESS 8 ; inline +: PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 ; inline diff --git a/library/windows/kernel32-structs.factor b/library/windows/kernel32-structs.factor index 66b875225c..08ef316915 100644 --- a/library/windows/kernel32-structs.factor +++ b/library/windows/kernel32-structs.factor @@ -100,3 +100,54 @@ BEGIN-STRUCT: PROCESS_INFORMATION FIELD: DWORD dwThreadId END-STRUCT +BEGIN-STRUCT: SYSTEM_INFO + FIELD: DWORD dwOemId + ! FIELD: WORD wProcessorArchitecture + ! FIELD: WORD wReserved + FIELD: DWORD dwPageSize + FIELD: LPVOID lpMinimumApplicationAddress + FIELD: LPVOID lpMaximumApplicationAddress + FIELD: DWORD_PTR dwActiveProcessorMask + FIELD: DWORD dwNumberOfProcessors + FIELD: DWORD dwProcessorType + FIELD: DWORD dwAllocationGranularity + FIELD: WORD wProcessorLevel + FIELD: WORD wProcessorRevision +END-STRUCT + +TYPEDEF: void* LPSYSTEM_INFO + +BEGIN-STRUCT: MEMORYSTATUS + FIELD: DWORD dwLength + FIELD: DWORD dwMemoryLoad + FIELD: SIZE_T dwTotalPhys + FIELD: SIZE_T dwAvailPhys + FIELD: SIZE_T dwTotalPageFile + FIELD: SIZE_T dwAvailPageFile + FIELD: SIZE_T dwTotalVirtual + FIELD: SIZE_T dwAvailVirtual +END-STRUCT +TYPEDEF: void* LPMEMORYSTATUS + +BEGIN-STRUCT: MEMORYSTATUSEX + FIELD: DWORD dwLength + FIELD: DWORD dwMemoryLoad + FIELD: DWORDLONG ullTotalPhys + FIELD: DWORDLONG ullAvailPhys + FIELD: DWORDLONG ullTotalPageFile + FIELD: DWORDLONG ullAvailPageFile + FIELD: DWORDLONG ullTotalVirtual + FIELD: DWORDLONG ullAvailVirtual + FIELD: DWORDLONG ullAvailExtendedVirtual +END-STRUCT +TYPEDEF: void* LPMEMORYSTATUSEX + +BEGIN-STRUCT: OSVERSIONINFO + FIELD: DWORD dwOSVersionInfoSize + FIELD: DWORD dwMajorVersion + FIELD: DWORD dwMinorVersion + FIELD: DWORD dwBuildNumber + FIELD: DWORD dwPlatformId + FIELD: char[128] szCSDVersion +END-STRUCT +TYPEDEF: void* LPOSVERSIONINFO diff --git a/library/windows/kernel32.factor b/library/windows/kernel32.factor index 6e20bda9bb..a1e136a7ed 100644 --- a/library/windows/kernel32.factor +++ b/library/windows/kernel32.factor @@ -471,7 +471,7 @@ FUNCTION: HANDLE GetStdHandle ( DWORD nStdHandle ) ; ! FUNCTION: GetSystemDefaultUILanguage ! FUNCTION: GetSystemDirectoryA ! FUNCTION: GetSystemDirectoryW -! FUNCTION: GetSystemInfo +FUNCTION: void GetSystemInfo ( LPSYSTEM_INFO lpSystemInfo ) ; ! FUNCTION: GetSystemPowerStatus ! FUNCTION: GetSystemRegistryQuota FUNCTION: void GetSystemTime ( LPSYSTEMTIME lpSystemTime ) ; @@ -505,9 +505,10 @@ FUNCTION: DWORD GetTimeZoneInformation ( LPTIME_ZONE_INFORMATION lpTimeZoneInfor ! FUNCTION: GetUserDefaultUILanguage ! FUNCTION: GetUserGeoID ! FUNCTION: GetVDMCurrentDirectories -! FUNCTION: GetVersion -! FUNCTION: GetVersionExA -! FUNCTION: GetVersionExW +FUNCTION: DWORD GetVersion ( ) ; +FUNCTION: BOOL GetVersionExA ( LPOSVERSIONINFO lpVersionInfo ) ; +FUNCTION: BOOL GetVersionExW ( LPOSVERSIONINFO lpVersionInfo ) ; +: GetVersionEx GetVersionExA ; ! FUNCTION: GetVolumeInformationA ! FUNCTION: GetVolumeInformationW ! FUNCTION: GetVolumeNameForVolumeMountPointA @@ -533,8 +534,8 @@ FUNCTION: HGLOBAL GlobalAlloc ( UINT uFlags, SIZE_T dwBytes ) ; ! FUNCTION: GlobalGetAtomNameW ! FUNCTION: GlobalHandle FUNCTION: LPVOID GlobalLock ( HGLOBAL hMem ) ; -! FUNCTION: GlobalMemoryStatus -! FUNCTION: GlobalMemoryStatusEx +FUNCTION: void GlobalMemoryStatus ( LPMEMORYSTATUS lpBuffer ) ; +FUNCTION: BOOL GlobalMemoryStatusEx ( LPMEMORYSTATUSEX lpBuffer ) ; ! FUNCTION: GlobalReAlloc ! FUNCTION: GlobalSize ! FUNCTION: GlobalUnfix @@ -587,7 +588,7 @@ FUNCTION: BOOL GlobalUnlock ( HGLOBAL hMem ) ; ! FUNCTION: IsDBCSLeadByteEx ! FUNCTION: IsDebuggerPresent ! FUNCTION: IsProcessInJob -! FUNCTION: IsProcessorFeaturePresent +FUNCTION: BOOL IsProcessorFeaturePresent ( DWORD ProcessorFeature ) ; ! FUNCTION: IsSystemResumeAutomatic ! FUNCTION: IsValidCodePage ! FUNCTION: IsValidLanguageGroup