more structs
parent
003db124e2
commit
d109126c4b
|
@ -267,42 +267,42 @@ STRUCT: PROCESS_INFORMATION
|
|||
{ dwProcessId DWORD }
|
||||
{ dwThreadId DWORD } ;
|
||||
|
||||
C-STRUCT: SYSTEM_INFO
|
||||
{ "DWORD" "dwOemId" }
|
||||
{ "DWORD" "dwPageSize" }
|
||||
{ "LPVOID" "lpMinimumApplicationAddress" }
|
||||
{ "LPVOID" "lpMaximumApplicationAddress" }
|
||||
{ "DWORD_PTR" "dwActiveProcessorMask" }
|
||||
{ "DWORD" "dwNumberOfProcessors" }
|
||||
{ "DWORD" "dwProcessorType" }
|
||||
{ "DWORD" "dwAllocationGranularity" }
|
||||
{ "WORD" "wProcessorLevel" }
|
||||
{ "WORD" "wProcessorRevision" } ;
|
||||
STRUCT: SYSTEM_INFO
|
||||
{ dwOemId DWORD }
|
||||
{ dwPageSize DWORD }
|
||||
{ lpMinimumApplicationAddress LPVOID }
|
||||
{ lpMaximumApplicationAddress LPVOID }
|
||||
{ dwActiveProcessorMask DWORD_PTR }
|
||||
{ dwNumberOfProcessors DWORD }
|
||||
{ dwProcessorType DWORD }
|
||||
{ dwAllocationGranularity DWORD }
|
||||
{ wProcessorLevel WORD }
|
||||
{ wProcessorRevision WORD } ;
|
||||
|
||||
TYPEDEF: void* LPSYSTEM_INFO
|
||||
|
||||
C-STRUCT: MEMORYSTATUS
|
||||
{ "DWORD" "dwLength" }
|
||||
{ "DWORD" "dwMemoryLoad" }
|
||||
{ "SIZE_T" "dwTotalPhys" }
|
||||
{ "SIZE_T" "dwAvailPhys" }
|
||||
{ "SIZE_T" "dwTotalPageFile" }
|
||||
{ "SIZE_T" "dwAvailPageFile" }
|
||||
{ "SIZE_T" "dwTotalVirtual" }
|
||||
{ "SIZE_T" "dwAvailVirtual" } ;
|
||||
STRUCT: MEMORYSTATUS
|
||||
{ dwLength DWORD }
|
||||
{ dwMemoryLoad DWORD }
|
||||
{ dwTotalPhys SIZE_T }
|
||||
{ dwAvailPhys SIZE_T }
|
||||
{ dwTotalPageFile SIZE_T }
|
||||
{ dwAvailPageFile SIZE_T }
|
||||
{ dwTotalVirtual SIZE_T }
|
||||
{ dwAvailVirtual SIZE_T } ;
|
||||
|
||||
TYPEDEF: void* LPMEMORYSTATUS
|
||||
|
||||
C-STRUCT: MEMORYSTATUSEX
|
||||
{ "DWORD" "dwLength" }
|
||||
{ "DWORD" "dwMemoryLoad" }
|
||||
{ "DWORDLONG" "ullTotalPhys" }
|
||||
{ "DWORDLONG" "ullAvailPhys" }
|
||||
{ "DWORDLONG" "ullTotalPageFile" }
|
||||
{ "DWORDLONG" "ullAvailPageFile" }
|
||||
{ "DWORDLONG" "ullTotalVirtual" }
|
||||
{ "DWORDLONG" "ullAvailVirtual" }
|
||||
{ "DWORDLONG" "ullAvailExtendedVirtual" } ;
|
||||
STRUCT: MEMORYSTATUSEX
|
||||
{ dwLength DWORD }
|
||||
{ dwMemoryLoad DWORD }
|
||||
{ ullTotalPhys DWORDLONG }
|
||||
{ ullAvailPhys DWORDLONG }
|
||||
{ ullTotalPageFile DWORDLONG }
|
||||
{ ullAvailPageFile DWORDLONG }
|
||||
{ ullTotalVirtual DWORDLONG }
|
||||
{ ullAvailVirtual DWORDLONG }
|
||||
{ ullAvailExtendedVirtual DWORDLONG } ;
|
||||
|
||||
TYPEDEF: void* LPMEMORYSTATUSEX
|
||||
|
||||
|
|
|
@ -3,37 +3,38 @@
|
|||
USING: alien alien.c-types alien.strings
|
||||
kernel libc math namespaces system-info.backend
|
||||
system-info.windows windows windows.advapi32
|
||||
windows.kernel32 system byte-arrays windows.errors ;
|
||||
windows.kernel32 system byte-arrays windows.errors
|
||||
classes classes.struct ;
|
||||
IN: system-info.windows.nt
|
||||
|
||||
M: winnt cpus ( -- n )
|
||||
system-info SYSTEM_INFO-dwNumberOfProcessors ;
|
||||
|
||||
: memory-status ( -- MEMORYSTATUSEX )
|
||||
"MEMORYSTATUSEX" <c-object>
|
||||
"MEMORYSTATUSEX" heap-size over set-MEMORYSTATUSEX-dwLength
|
||||
"MEMORYSTATUSEX" <struct>
|
||||
dup class heap-size >>dwLength
|
||||
dup GlobalMemoryStatusEx win32-error=0/f ;
|
||||
|
||||
M: winnt memory-load ( -- n )
|
||||
memory-status MEMORYSTATUSEX-dwMemoryLoad ;
|
||||
memory-status dwMemoryLoad>> ;
|
||||
|
||||
M: winnt physical-mem ( -- n )
|
||||
memory-status MEMORYSTATUSEX-ullTotalPhys ;
|
||||
memory-status ullTotalPhys>> ;
|
||||
|
||||
M: winnt available-mem ( -- n )
|
||||
memory-status MEMORYSTATUSEX-ullAvailPhys ;
|
||||
memory-status ullAvailPhys>> ;
|
||||
|
||||
M: winnt total-page-file ( -- n )
|
||||
memory-status MEMORYSTATUSEX-ullTotalPageFile ;
|
||||
memory-status ullTotalPageFile>> ;
|
||||
|
||||
M: winnt available-page-file ( -- n )
|
||||
memory-status MEMORYSTATUSEX-ullAvailPageFile ;
|
||||
memory-status ullAvailPageFile>> ;
|
||||
|
||||
M: winnt total-virtual-mem ( -- n )
|
||||
memory-status MEMORYSTATUSEX-ullTotalVirtual ;
|
||||
memory-status ullTotalVirtual>> ;
|
||||
|
||||
M: winnt available-virtual-mem ( -- n )
|
||||
memory-status MEMORYSTATUSEX-ullAvailVirtual ;
|
||||
memory-status ullAvailVirtual>> ;
|
||||
|
||||
: computer-name ( -- string )
|
||||
MAX_COMPUTERNAME_LENGTH 1 +
|
||||
|
|
|
@ -7,18 +7,18 @@ system alien.strings windows.errors ;
|
|||
IN: system-info.windows
|
||||
|
||||
: system-info ( -- SYSTEM_INFO )
|
||||
"SYSTEM_INFO" <c-object> [ GetSystemInfo ] keep ;
|
||||
SYSTEM_INFO <struct> [ GetSystemInfo ] keep ;
|
||||
|
||||
: page-size ( -- n )
|
||||
system-info SYSTEM_INFO-dwPageSize ;
|
||||
system-info dwPageSize>> ;
|
||||
|
||||
! 386, 486, 586, 2200 (IA64), 8664 (AMD_X8664)
|
||||
: processor-type ( -- n )
|
||||
system-info SYSTEM_INFO-dwProcessorType ;
|
||||
system-info dwProcessorType>> ;
|
||||
|
||||
! 0 = x86, 6 = Intel Itanium, 9 = x64 (AMD or Intel), 10 = WOW64, 0xffff = Unk
|
||||
: processor-architecture ( -- n )
|
||||
system-info SYSTEM_INFO-dwOemId HEX: ffff0000 bitand ;
|
||||
system-info dwOemId>> HEX: ffff0000 bitand ;
|
||||
|
||||
: os-version ( -- os-version )
|
||||
"OSVERSIONINFO" <c-object>
|
||||
|
|
Loading…
Reference in New Issue