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