more structs

db4
Doug Coleman 2009-08-25 18:19:34 -05:00
parent 003db124e2
commit d109126c4b
3 changed files with 45 additions and 44 deletions

View File

@ -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

View File

@ -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 +

View File

@ -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>