factor/extra/system-info/windows/nt/nt.factor

47 lines
1.4 KiB
Factor
Raw Normal View History

2008-12-06 23:58:19 -05:00
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
2008-04-20 06:15:46 -04:00
USING: alien alien.c-types alien.strings
2008-12-06 23:58:19 -05:00
kernel libc math namespaces system-info.backend
system-info.windows windows windows.advapi32
2008-12-04 00:36:28 -05:00
windows.kernel32 system byte-arrays ;
2008-12-06 23:58:19 -05:00
IN: system-info.windows.nt
2007-09-20 18:09:08 -04:00
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
dup GlobalMemoryStatusEx win32-error=0/f ;
2007-09-20 18:09:08 -04:00
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 ;
: computer-name ( -- string )
MAX_COMPUTERNAME_LENGTH 1+
[ <byte-array> dup ] keep <uint>
GetComputerName win32-error=0/f alien>native-string ;
2007-09-20 18:09:08 -04:00
: username ( -- string )
UNLEN 1+
[ <byte-array> dup ] keep <uint>
GetUserName win32-error=0/f alien>native-string ;