2008-04-20 06:15:46 -04:00
|
|
|
USING: alien alien.c-types alien.strings
|
2008-01-14 16:42:21 -05:00
|
|
|
kernel libc math namespaces hardware-info.backend
|
2008-04-03 02:48:29 -04:00
|
|
|
windows windows.advapi32 windows.kernel32 system ;
|
2007-09-20 18:09:08 -04:00
|
|
|
IN: hardware-info.windows.nt
|
|
|
|
|
2008-01-30 03:46:39 -05:00
|
|
|
: system-info ( -- SYSTEM_INFO )
|
|
|
|
"SYSTEM_INFO" <c-object> [ GetSystemInfo ] keep ;
|
|
|
|
|
2008-04-03 02:48:29 -04:00
|
|
|
M: winnt cpus ( -- n )
|
2008-01-30 03:46:39 -05:00
|
|
|
system-info SYSTEM_INFO-dwNumberOfProcessors ;
|
|
|
|
|
2007-09-20 18:09:08 -04:00
|
|
|
: memory-status ( -- MEMORYSTATUSEX )
|
|
|
|
"MEMORYSTATUSEX" <c-object>
|
|
|
|
"MEMORYSTATUSEX" heap-size over set-MEMORYSTATUSEX-dwLength
|
|
|
|
[ GlobalMemoryStatusEx ] keep swap zero? [ win32-error ] when ;
|
|
|
|
|
2008-04-03 02:48:29 -04:00
|
|
|
M: winnt memory-load ( -- n )
|
2007-09-20 18:09:08 -04:00
|
|
|
memory-status MEMORYSTATUSEX-dwMemoryLoad ;
|
|
|
|
|
2008-04-03 02:48:29 -04:00
|
|
|
M: winnt physical-mem ( -- n )
|
2007-09-20 18:09:08 -04:00
|
|
|
memory-status MEMORYSTATUSEX-ullTotalPhys ;
|
|
|
|
|
2008-04-03 02:48:29 -04:00
|
|
|
M: winnt available-mem ( -- n )
|
2007-09-20 18:09:08 -04:00
|
|
|
memory-status MEMORYSTATUSEX-ullAvailPhys ;
|
|
|
|
|
2008-04-03 02:48:29 -04:00
|
|
|
M: winnt total-page-file ( -- n )
|
2007-09-20 18:09:08 -04:00
|
|
|
memory-status MEMORYSTATUSEX-ullTotalPageFile ;
|
|
|
|
|
2008-04-03 02:48:29 -04:00
|
|
|
M: winnt available-page-file ( -- n )
|
2007-09-20 18:09:08 -04:00
|
|
|
memory-status MEMORYSTATUSEX-ullAvailPageFile ;
|
|
|
|
|
2008-04-03 02:48:29 -04:00
|
|
|
M: winnt total-virtual-mem ( -- n )
|
2007-09-20 18:09:08 -04:00
|
|
|
memory-status MEMORYSTATUSEX-ullTotalVirtual ;
|
|
|
|
|
2008-04-03 02:48:29 -04:00
|
|
|
M: winnt available-virtual-mem ( -- n )
|
2007-09-20 18:09:08 -04:00
|
|
|
memory-status MEMORYSTATUSEX-ullAvailVirtual ;
|
|
|
|
|
2008-06-09 03:14:14 -04:00
|
|
|
: pull-win32-string ( alien -- string )
|
|
|
|
[ utf16n alien>string ] keep free ;
|
2008-04-20 06:15:46 -04:00
|
|
|
|
2007-09-20 18:09:08 -04:00
|
|
|
: computer-name ( -- string )
|
|
|
|
MAX_COMPUTERNAME_LENGTH 1+ [ malloc ] keep
|
|
|
|
<int> dupd GetComputerName zero? [
|
|
|
|
free win32-error f
|
|
|
|
] [
|
2008-04-20 06:15:46 -04:00
|
|
|
pull-win32-string
|
2007-09-20 18:09:08 -04:00
|
|
|
] if ;
|
|
|
|
|
|
|
|
: username ( -- string )
|
|
|
|
UNLEN 1+ [ malloc ] keep
|
|
|
|
<int> dupd GetUserName zero? [
|
|
|
|
free win32-error f
|
|
|
|
] [
|
2008-04-20 06:15:46 -04:00
|
|
|
pull-win32-string
|
2007-09-20 18:09:08 -04:00
|
|
|
] if ;
|