--- a/UnixOS.st Wed Mar 31 20:20:11 1999 +0200
+++ b/UnixOS.st Wed Mar 31 21:59:01 1999 +0200
@@ -6062,52 +6062,58 @@
This method is mainly provided to augment error reports with some system
information.
(in case of system/version specific OS errors, conditional workarounds and patches
- may be based upon this info).
+ may be based upon this info).
Also, applications could enable/disable buffering or otherwise reduce
their memory usage depending upon the amount of memory installed.
- Your application should NOT depend upon this in any way.
+ Your application may make use of available information for tuning,
+ but should NEVER DEPEND upon this in any way.
The returned info may (or may not) contain:
- #system -> some operating system identification (irix, Linux, nt, win32s ...)
- #version -> OS version (some os version identification)
- #release -> OS release (3.5, 1.2.1 ...)
- #node -> some host identification (hostname)
- #domain -> domain name (hosts domain)
- #machine -> type of CPU (i586, mips ...)
+ #system -> some operating system identification (irix, Linux, nt, win32s ...)
+ #version -> OS version (some os version identification)
+ #release -> OS release (3.5, 1.2.1 ...)
+ #node -> some host identification (hostname)
+ #domain -> domain name (hosts domain)
+ #machine -> type of CPU (i586, mips ...)
those are currently returned on some machines (no warranty)
linux:
- #totalRam -> total amount of memory available
- #sharedRam -> amount of memory which is shared among processes
- (i.e. shared code)
- #bufferRam -> amount used for buffers
- #swapSize -> total size of swap space
- #freeSwap -> free amount in swapSpace
+ #totalRam -> total amount of memory available
+ #sharedRam -> amount of memory which is shared among processes
+ (i.e. shared code)
+ #bufferRam -> amount used for buffers
+ #swapSize -> total size of swap space
+ #freeSwap -> free amount in swapSpace
osf:
- #physicalRam -> total amount of physical memory
- #cpuType -> type of cpu (more detailed than machine)
- #numberOfCPUs -> number of cpus in box
+ #physicalRam -> total amount of physical memory
+ #cpuType -> type of cpu (more detailed than machine)
+ #numberOfCPUs -> number of cpus in box
solaris:
- #physicalRam -> total amount of physical memory
- #numberOfCPUs -> number of cpus in box
- #dCacheSize -> bytes in data cache
- #iCacheSize -> bytes in data cache
+ #physicalRam -> total amount of physical memory
+ #availableRam -> total available amount of physical memory (i.e. unused ram)
+ #freeRam -> amount of free memory
+ #numberOfCPUs -> number of cpus in box (online CPUS)
+ [#dCacheSize] -> bytes in data cache (only available on some solaris versions)
+ [#iCacheSize] -> bytes in data cache (only available on some solaris versions)
+ [#instructionSets]-> instruction sets available (only available on some solaris versions)
+ [#platform] -> platform name (only available on some solaris versions)
hpux:
- #physicalRam -> total amount of physical memory in box
- #activeRealMemory -> ? - read pstat documentation
- #activeVirtualRam -> ? - read pstat documentation
- #freeMemory -> ? - read pstat documentation
- #realMemory -> ? (amount of memory left to user programs)
- #virtualRam -> ? - read pstat documentation
+ #physicalRam -> total amount of physical memory in box
+ #activeRealMemory -> ? - read pstat documentation
+ #activeVirtualRam -> ? - read pstat documentation
+ #freeMemory -> ? - read pstat documentation
+ #realMemory -> ? (amount of memory left to user programs)
+ #virtualRam -> ? - read pstat documentation
"
|sys node rel ver mach dom mtyp brel info arch cpuType
- physicalRam totalRam sharedRam bufferRam swapSize freeSwap
- numberOfCPUs pageSize physicalPages dCacheSize iCacheSize
- virtualRam activeVirtualRam realMemory activeRealMemory freeMemory|
+ physicalRam availableRam totalRam sharedRam bufferRam swapSize freeSwap
+ numberOfCPUs pageSize physicalPages availablePages dCacheSize iCacheSize
+ virtualRam activeVirtualRam realMemory activeRealMemory freeMemory
+ instructionSets platform|
%{ /* STACK: 4096 */
@@ -6119,11 +6125,11 @@
struct sysinfo infoBuffer;
if (sysinfo(&infoBuffer) >= 0) {
- totalRam = __MKUINT(infoBuffer.totalram);
- sharedRam = __MKUINT(infoBuffer.sharedram);
- bufferRam = __MKUINT(infoBuffer.bufferram);
- swapSize = __MKUINT(infoBuffer.totalswap);
- freeSwap = __MKUINT(infoBuffer.freeswap);
+ totalRam = __MKUINT(infoBuffer.totalram);
+ sharedRam = __MKUINT(infoBuffer.sharedram);
+ bufferRam = __MKUINT(infoBuffer.bufferram);
+ swapSize = __MKUINT(infoBuffer.totalswap);
+ freeSwap = __MKUINT(infoBuffer.freeswap);
}
# endif
#endif /* LINUX */
@@ -6146,18 +6152,18 @@
#if defined(HAS_UNAME)
{
- struct utsname ubuff;
-
- if (uname(&ubuff) >= 0) {
- sys = __MKSTRING(ubuff.sysname);
- node = __MKSTRING(ubuff.nodename);
- rel = __MKSTRING(ubuff.release);
- ver = __MKSTRING(ubuff.version);
- mach = __MKSTRING(ubuff.machine);
+ struct utsname ubuff;
+
+ if (uname(&ubuff) >= 0) {
+ sys = __MKSTRING(ubuff.sysname);
+ node = __MKSTRING(ubuff.nodename);
+ rel = __MKSTRING(ubuff.release);
+ ver = __MKSTRING(ubuff.version);
+ mach = __MKSTRING(ubuff.machine);
# ifdef HAS_UTS_DOMAINNAME
- dom = __MKSTRING(ubuff.domainname);
+ dom = __MKSTRING(ubuff.domainname);
# endif /* no HAS_UTS_DOMAINNAME */
- }
+ }
}
#else /* no UNAME */
@@ -6169,21 +6175,41 @@
#if defined(HAS_SYSINFO) && defined(SI_ARCHITECTURE)
if (arch == nil) {
- char buffer[128];
-
- if (sysinfo(SI_ARCHITECTURE, buffer, sizeof(buffer))) {
- arch = __MKSTRING(buffer);
- }
+ char buffer[128];
+
+ if (sysinfo(SI_ARCHITECTURE, buffer, sizeof(buffer))) {
+ arch = __MKSTRING(buffer);
+ }
+ }
+#endif /* HAS_SYSINFO & SI_ARCHITECTURE */
+
+#if defined(HAS_SYSINFO) && defined(SI_ISALIST)
+ {
+ char buffer[128];
+
+ if (sysinfo(SI_ISALIST, buffer, sizeof(buffer))) {
+ instructionSets = __MKSTRING(buffer);
+ }
+ }
+#endif /* HAS_SYSINFO & SI_ARCHITECTURE */
+
+#if defined(HAS_SYSINFO) && defined(SI_PLATFORM)
+ {
+ char buffer[128];
+
+ if (sysinfo(SI_PLATFORM, buffer, sizeof(buffer))) {
+ platform = __MKSTRING(buffer);
+ }
}
#endif /* HAS_SYSINFO & SI_ARCHITECTURE */
#if defined(HAS_GETDOMAINNAME)
if (dom == nil) {
- char buffer[128];
-
- if (getdomainname(buffer, sizeof(buffer)) == 0) {
- dom = __MKSTRING(buffer);
- }
+ char buffer[128];
+
+ if (getdomainname(buffer, sizeof(buffer)) == 0) {
+ dom = __MKSTRING(buffer);
+ }
}
#endif /* HAS_GETDOMAINNAME */
@@ -6191,46 +6217,62 @@
# ifdef _SC_NPROCESSORS_ONLN
{
- long val;
+ long val;
- val = sysconf(_SC_NPROCESSORS_ONLN);
- if (val > 0) {
- numberOfCPUs = __MKINT(val);
- }
- }
-# endif
-# if defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE)
+ val = sysconf(_SC_NPROCESSORS_ONLN);
+ if (val > 0) {
+ numberOfCPUs = __MKINT(val);
+ }
+ }
+# endif
+# if defined(_SC_PAGESIZE)
{
- long val;
-
- val = sysconf(_SC_PHYS_PAGES);
- if (val != -1) {
- physicalPages = __MKUINT(val);
- val = sysconf(_SC_PAGESIZE);
- if (val != -1) {
- pageSize = __MKUINT(val);
- }
- }
+ long val;
+
+ val = sysconf(_SC_PAGESIZE);
+ if (val != -1) {
+ pageSize = __MKUINT(val);
+ }
+ }
+# endif
+# if defined(_SC_PHYS_PAGES)
+ {
+ long val;
+
+ val = sysconf(_SC_PHYS_PAGES);
+ if (val != -1) {
+ physicalPages = __MKUINT(val);
+ }
+ }
+# endif
+# if defined(_SC_AVPHYS_PAGES)
+ {
+ long val;
+
+ val = sysconf(_SC_AVPHYS_PAGES);
+ if (val != -1) {
+ availablePages = __MKUINT(val);
+ }
}
# endif
# if defined(_SC_ICACHE_SZ)
{
- long val;
-
- val = sysconf(_SC_ICACHE_SZ);
- if (val != -1) {
- iCacheSize = __MKUINT(val);
- }
+ long val;
+
+ val = sysconf(_SC_ICACHE_SZ);
+ if (val != -1) {
+ iCacheSize = __MKUINT(val);
+ }
}
# endif
# if defined(_SC_DCACHE_SZ)
{
- long val;
+ long val;
- val = sysconf(_SC_DCACHE_SZ);
- if (val != -1) {
- dCacheSize = __MKUINT(val);
- }
+ val = sysconf(_SC_DCACHE_SZ);
+ if (val != -1) {
+ dCacheSize = __MKUINT(val);
+ }
}
# endif
@@ -6239,293 +6281,293 @@
#if defined(HAS_GETSYSTEMINFO)
{
- INT index;
- int retInt32 = 0;
+ INT index;
+ int retInt32 = 0;
# if defined(GSI_CPU)
- index = 0;
- if (getsysinfo(GSI_CPU, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
- switch (retInt32) {
+ index = 0;
+ if (getsysinfo(GSI_CPU, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+ switch (retInt32) {
# ifdef VAX_780
- case VAX_780:
- cpuType = __MKSTRING("VAX_780");
- break;
+ case VAX_780:
+ cpuType = __MKSTRING("VAX_780");
+ break;
# endif
# ifdef VAX_750
- case VAX_750:
- cpuType = __MKSTRING("VAX_750");
- break;
+ case VAX_750:
+ cpuType = __MKSTRING("VAX_750");
+ break;
# endif
# ifdef VAX_730
- case VAX_730:
- cpuType = __MKSTRING("VAX_730");
- break;
+ case VAX_730:
+ cpuType = __MKSTRING("VAX_730");
+ break;
# endif
# ifdef VAX_8600
- case VAX_8600:
- cpuType = __MKSTRING("VAX_8600");
- break;
+ case VAX_8600:
+ cpuType = __MKSTRING("VAX_8600");
+ break;
# endif
# ifdef VAX_8200
- case VAX_8200:
- cpuType = __MKSTRING("VAX_8200");
- break;
+ case VAX_8200:
+ cpuType = __MKSTRING("VAX_8200");
+ break;
# endif
# ifdef VAX_8800
- case VAX_8800:
- cpuType = __MKSTRING("VAX_8800");
- break;
+ case VAX_8800:
+ cpuType = __MKSTRING("VAX_8800");
+ break;
# endif
# ifdef MVAX_I
- case MVAX_I:
- cpuType = __MKSTRING("MVAX_I");
- break;
+ case MVAX_I:
+ cpuType = __MKSTRING("MVAX_I");
+ break;
# endif
# ifdef MVAX_II
- case MVAX_II:
- cpuType = __MKSTRING("MVAX_II");
- break;
+ case MVAX_II:
+ cpuType = __MKSTRING("MVAX_II");
+ break;
# endif
# ifdef V_VAX
- case V_VAX:
- cpuType = __MKSTRING("V_VAX");
- break;
+ case V_VAX:
+ cpuType = __MKSTRING("V_VAX");
+ break;
# endif
# ifdef VAX_3600
- case VAX_3600:
- cpuType = __MKSTRING("VAX_3600");
- break;
+ case VAX_3600:
+ cpuType = __MKSTRING("VAX_3600");
+ break;
# endif
# ifdef VAX_6200
- case VAX_6200:
- cpuType = __MKSTRING("VAX_6200");
- break;
+ case VAX_6200:
+ cpuType = __MKSTRING("VAX_6200");
+ break;
# endif
# ifdef VAX_3400
- case VAX_3400:
- cpuType = __MKSTRING("VAX_3400");
- break;
+ case VAX_3400:
+ cpuType = __MKSTRING("VAX_3400");
+ break;
# endif
# ifdef C_VAXSTAR
- case C_VAXSTAR:
- cpuType = __MKSTRING("C_VAXSTAR");
- break;
+ case C_VAXSTAR:
+ cpuType = __MKSTRING("C_VAXSTAR");
+ break;
# endif
# ifdef VAX_60
- case VAX_60:
- cpuType = __MKSTRING("VAX_60");
- break;
+ case VAX_60:
+ cpuType = __MKSTRING("VAX_60");
+ break;
# endif
# ifdef VAX_3900
- case VAX_3900:
- cpuType = __MKSTRING("VAX_3900");
- break;
+ case VAX_3900:
+ cpuType = __MKSTRING("VAX_3900");
+ break;
# endif
# ifdef DS_3100
- case DS_3100:
- cpuType = __MKSTRING("DS_3100");
- break;
+ case DS_3100:
+ cpuType = __MKSTRING("DS_3100");
+ break;
# endif
# ifdef VAX_8820
- case VAX_8820:
- cpuType = __MKSTRING("VAX_8820");
- break;
+ case VAX_8820:
+ cpuType = __MKSTRING("VAX_8820");
+ break;
# endif
# ifdef DS_5400
- case DS_5400:
- cpuType = __MKSTRING("DS_5400");
- break;
+ case DS_5400:
+ cpuType = __MKSTRING("DS_5400");
+ break;
# endif
# ifdef DS_5800
- case DS_5800:
- cpuType = __MKSTRING("DS_5800");
- break;
+ case DS_5800:
+ cpuType = __MKSTRING("DS_5800");
+ break;
# endif
# ifdef DS_5000
- case DS_5000:
- cpuType = __MKSTRING("DS_5000");
- break;
+ case DS_5000:
+ cpuType = __MKSTRING("DS_5000");
+ break;
# endif
# ifdef DS_CMAX
- case DS_CMAX:
- cpuType = __MKSTRING("DS_CMAX");
- break;
+ case DS_CMAX:
+ cpuType = __MKSTRING("DS_CMAX");
+ break;
# endif
# ifdef VAX_6400
- case VAX_6400:
- cpuType = __MKSTRING("VAX_6400");
- break;
+ case VAX_6400:
+ cpuType = __MKSTRING("VAX_6400");
+ break;
# endif
# ifdef VAXSTAR
- case VAXSTAR:
- cpuType = __MKSTRING("VAXSTAR");
- break;
+ case VAXSTAR:
+ cpuType = __MKSTRING("VAXSTAR");
+ break;
# endif
# ifdef DS_5500
- case DS_5500:
- cpuType = __MKSTRING("DS_5500");
- break;
+ case DS_5500:
+ cpuType = __MKSTRING("DS_5500");
+ break;
# endif
# ifdef DS_5100
- case DS_5100:
- cpuType = __MKSTRING("DS_5100");
- break;
+ case DS_5100:
+ cpuType = __MKSTRING("DS_5100");
+ break;
# endif
# ifdef VAX_9000
- case VAX_9000:
- cpuType = __MKSTRING("VAX_9000");
- break;
+ case VAX_9000:
+ cpuType = __MKSTRING("VAX_9000");
+ break;
# endif
# ifdef DS_500_100
- case DS_500_100:
- cpuType = __MKSTRING("DS_500_100");
- break;
+ case DS_500_100:
+ cpuType = __MKSTRING("DS_500_100");
+ break;
# endif
# ifdef ALPHA_ADU
- case ALPHA_ADU:
- cpuType = __MKSTRING("ALPHA_ADU");
- break;
+ case ALPHA_ADU:
+ cpuType = __MKSTRING("ALPHA_ADU");
+ break;
# endif
# ifdef DEC_4000
- case DEC_4000:
- cpuType = __MKSTRING("DEC_4000");
- break;
+ case DEC_4000:
+ cpuType = __MKSTRING("DEC_4000");
+ break;
# endif
# ifdef DEC_3000_500
- case DEC_3000_500:
- cpuType = __MKSTRING("DEC_3000_500");
- break;
+ case DEC_3000_500:
+ cpuType = __MKSTRING("DEC_3000_500");
+ break;
# endif
# ifdef DEC_7000
- case DEC_7000:
- cpuType = __MKSTRING("DEC_7000");
- break;
+ case DEC_7000:
+ cpuType = __MKSTRING("DEC_7000");
+ break;
# endif
# ifdef DS_5000_300
- case DS_5000_300:
- cpuType = __MKSTRING("DS_5000_300");
- break;
+ case DS_5000_300:
+ cpuType = __MKSTRING("DS_5000_300");
+ break;
# endif
# ifdef DEC_3000_300
- case DEC_3000_300:
- cpuType = __MKSTRING("DEC_3000_300");
- break;
+ case DEC_3000_300:
+ cpuType = __MKSTRING("DEC_3000_300");
+ break;
# endif
# ifdef DEC_2000_300
- case DEC_2000_300:
- cpuType = __MKSTRING("DEC_2000_300");
- break;
+ case DEC_2000_300:
+ cpuType = __MKSTRING("DEC_2000_300");
+ break;
# endif
# ifdef DEC_2100_A500
- case DEC_2100_A500:
- cpuType = __MKSTRING("DEC_2100_A500");
- break;
+ case DEC_2100_A500:
+ cpuType = __MKSTRING("DEC_2100_A500");
+ break;
# endif
# ifdef DEC_2100_A50
- case DEC_2100_A50:
- cpuType = __MKSTRING("DEC_2100_A50");
- break;
+ case DEC_2100_A50:
+ cpuType = __MKSTRING("DEC_2100_A50");
+ break;
# endif
# ifdef ALPHA_KN20AA
- case ALPHA_KN20AA:
- cpuType = __MKSTRING("ALPHA_KN20AA");
- break;
+ case ALPHA_KN20AA:
+ cpuType = __MKSTRING("ALPHA_KN20AA");
+ break;
# endif
# ifdef DEC_21000
- case DEC_21000:
- cpuType = __MKSTRING("DEC_21000");
- break;
+ case DEC_21000:
+ cpuType = __MKSTRING("DEC_21000");
+ break;
# endif
# ifdef DEC_AXPVME_64
- case DEC_AXPVME_64:
- cpuType = __MKSTRING("DEC_AXPVME_64");
- break;
+ case DEC_AXPVME_64:
+ cpuType = __MKSTRING("DEC_AXPVME_64");
+ break;
# endif
# ifdef DEC_2100_C500
- case DEC_2100_C500:
- cpuType = __MKSTRING("DEC_2100_C500");
- break;
+ case DEC_2100_C500:
+ cpuType = __MKSTRING("DEC_2100_C500");
+ break;
# endif
# ifdef DEC_AXPPCI_33
- case DEC_AXPPCI_33:
- cpuType = __MKSTRING("DEC_AXPPCI_33");
- break;
+ case DEC_AXPPCI_33:
+ cpuType = __MKSTRING("DEC_AXPPCI_33");
+ break;
# endif
# ifdef DEC_1000
- case DEC_1000:
- cpuType = __MKSTRING("DEC_1000");
- break;
+ case DEC_1000:
+ cpuType = __MKSTRING("DEC_1000");
+ break;
# endif
# ifdef EB64_PLUS
- case EB64_PLUS:
- cpuType = __MKSTRING("EB64_PLUS");
- break;
+ case EB64_PLUS:
+ cpuType = __MKSTRING("EB64_PLUS");
+ break;
# endif
# ifdef LCA_EB66
- case LCA_EB66:
- cpuType = __MKSTRING("LCA_EB66");
- break;
+ case LCA_EB66:
+ cpuType = __MKSTRING("LCA_EB66");
+ break;
# endif
# ifdef ALPHA_EB164
- case ALPHA_EB164:
- cpuType = __MKSTRING("ALPHA_EB164");
- break;
+ case ALPHA_EB164:
+ cpuType = __MKSTRING("ALPHA_EB164");
+ break;
# endif
# ifdef DEC_EV45_PBP
- case DEC_EV45_PBP:
- cpuType = __MKSTRING("DEC_EV45_PBP");
- break;
+ case DEC_EV45_PBP:
+ cpuType = __MKSTRING("DEC_EV45_PBP");
+ break;
# endif
# ifdef DEC_1000A
- case DEC_1000A:
- cpuType = __MKSTRING("DEC_1000A");
- break;
+ case DEC_1000A:
+ cpuType = __MKSTRING("DEC_1000A");
+ break;
# endif
# ifdef DEC_4100
- case DEC_4100:
- cpuType = __MKSTRING("DEC_4100");
- break;
+ case DEC_4100:
+ cpuType = __MKSTRING("DEC_4100");
+ break;
# endif
# ifdef DEC_ALPHAVME_224
- case DEC_ALPHAVME_224:
- cpuType = __MKSTRING("DEC_ALPHAVME_224");
- break;
+ case DEC_ALPHAVME_224:
+ cpuType = __MKSTRING("DEC_ALPHAVME_224");
+ break;
# endif
# ifdef DEC_1000_5
- case DEC_1000_5:
- cpuType = __MKSTRING("DEC_1000_5");
- break;
+ case DEC_1000_5:
+ cpuType = __MKSTRING("DEC_1000_5");
+ break;
# endif
# ifdef DEC_1000A_5
- case DEC_1000A_5:
- cpuType = __MKSTRING("DEC_1000A_5");
- break;
+ case DEC_1000A_5:
+ cpuType = __MKSTRING("DEC_1000A_5");
+ break;
# endif
# ifdef UNKN_SYSTEM
- case UNKN_SYSTEM:
- cpuType = __MKSTRING("UNKN_SYSTEM");
- break;
+ case UNKN_SYSTEM:
+ cpuType = __MKSTRING("UNKN_SYSTEM");
+ break;
# endif
- }
- }
+ }
+ }
# endif /* GSI_CPU */
# if defined(GSI_CPUS_IN_BOX)
- index = 0;
- if (getsysinfo(GSI_CPUS_IN_BOX, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
- numberOfCPUs = __MKUINT(retInt32);
- }
+ index = 0;
+ if (getsysinfo(GSI_CPUS_IN_BOX, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+ numberOfCPUs = __MKUINT(retInt32);
+ }
# endif /* GSI_CPUS_IN_BOX */
# if defined(GSI_PHYSMEM)
- index = 0;
- if (getsysinfo(GSI_PHYSMEM, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
- INT bytes = retInt32 * 1024;
-
- physicalRam = __MKUINT(bytes);
- }
+ index = 0;
+ if (getsysinfo(GSI_PHYSMEM, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+ INT bytes = retInt32 * 1024;
+
+ physicalRam = __MKUINT(bytes);
+ }
# endif /* GSI_PHYSMEM */
}
@@ -6533,19 +6575,19 @@
%}.
sys isNil ifTrue:[
- sys := self getSystemType.
+ sys := self getSystemType.
].
node isNil ifTrue:[
- node := self getHostName.
+ node := self getHostName.
].
dom isNil ifTrue:[
- dom := self getDomainName.
+ dom := self getDomainName.
].
mach isNil ifTrue:[
- mach := self getCPUType.
+ mach := self getCPUType.
].
arch isNil ifTrue:[
- arch := sys.
+ arch := sys.
].
info := IdentityDictionary new.
@@ -6557,9 +6599,13 @@
arch notNil ifTrue:[info at:#architecture put:arch].
dom notNil ifTrue:[info at:#domain put:dom].
(pageSize notNil and:[physicalPages notNil]) ifTrue:[
- physicalRam := pageSize * physicalPages. "/ done here - could be largeInt.
+ physicalRam := pageSize * physicalPages. "/ done here - could be largeInt.
+ physicalRam notNil ifTrue:[info at:#physicalRam put:physicalRam].
].
- physicalRam notNil ifTrue:[info at:#physicalRam put:physicalRam].
+ (pageSize notNil and:[availablePages notNil]) ifTrue:[
+ availableRam := pageSize * availablePages. "/ done here - could be largeInt.
+ availableRam notNil ifTrue:[info at:#availableRam put:availableRam].
+ ].
totalRam notNil ifTrue:[info at:#totalRam put:totalRam].
sharedRam notNil ifTrue:[info at:#sharedRam put:sharedRam].
bufferRam notNil ifTrue:[info at:#bufferRam put:bufferRam].
@@ -6574,6 +6620,8 @@
cpuType notNil ifTrue:[info at:#cpuType put:cpuType].
dCacheSize notNil ifTrue:[info at:#dCacheSize put:dCacheSize].
iCacheSize notNil ifTrue:[info at:#iCacheSize put:iCacheSize].
+ instructionSets notNil ifTrue:[info at:#instructionSets put:instructionSets].
+ platform notNil ifTrue:[info at:#platform put:platform].
info at:#osType put:(self getOSType).
^ info
@@ -8527,6 +8575,6 @@
!UnixOperatingSystem class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/UnixOS.st,v 1.50 1999-03-03 19:16:20 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/UnixOS.st,v 1.51 1999-03-31 19:59:01 cg Exp $'
! !
UnixOperatingSystem initialize!
--- a/UnixOperatingSystem.st Wed Mar 31 20:20:11 1999 +0200
+++ b/UnixOperatingSystem.st Wed Mar 31 21:59:01 1999 +0200
@@ -6062,52 +6062,58 @@
This method is mainly provided to augment error reports with some system
information.
(in case of system/version specific OS errors, conditional workarounds and patches
- may be based upon this info).
+ may be based upon this info).
Also, applications could enable/disable buffering or otherwise reduce
their memory usage depending upon the amount of memory installed.
- Your application should NOT depend upon this in any way.
+ Your application may make use of available information for tuning,
+ but should NEVER DEPEND upon this in any way.
The returned info may (or may not) contain:
- #system -> some operating system identification (irix, Linux, nt, win32s ...)
- #version -> OS version (some os version identification)
- #release -> OS release (3.5, 1.2.1 ...)
- #node -> some host identification (hostname)
- #domain -> domain name (hosts domain)
- #machine -> type of CPU (i586, mips ...)
+ #system -> some operating system identification (irix, Linux, nt, win32s ...)
+ #version -> OS version (some os version identification)
+ #release -> OS release (3.5, 1.2.1 ...)
+ #node -> some host identification (hostname)
+ #domain -> domain name (hosts domain)
+ #machine -> type of CPU (i586, mips ...)
those are currently returned on some machines (no warranty)
linux:
- #totalRam -> total amount of memory available
- #sharedRam -> amount of memory which is shared among processes
- (i.e. shared code)
- #bufferRam -> amount used for buffers
- #swapSize -> total size of swap space
- #freeSwap -> free amount in swapSpace
+ #totalRam -> total amount of memory available
+ #sharedRam -> amount of memory which is shared among processes
+ (i.e. shared code)
+ #bufferRam -> amount used for buffers
+ #swapSize -> total size of swap space
+ #freeSwap -> free amount in swapSpace
osf:
- #physicalRam -> total amount of physical memory
- #cpuType -> type of cpu (more detailed than machine)
- #numberOfCPUs -> number of cpus in box
+ #physicalRam -> total amount of physical memory
+ #cpuType -> type of cpu (more detailed than machine)
+ #numberOfCPUs -> number of cpus in box
solaris:
- #physicalRam -> total amount of physical memory
- #numberOfCPUs -> number of cpus in box
- #dCacheSize -> bytes in data cache
- #iCacheSize -> bytes in data cache
+ #physicalRam -> total amount of physical memory
+ #availableRam -> total available amount of physical memory (i.e. unused ram)
+ #freeRam -> amount of free memory
+ #numberOfCPUs -> number of cpus in box (online CPUS)
+ [#dCacheSize] -> bytes in data cache (only available on some solaris versions)
+ [#iCacheSize] -> bytes in data cache (only available on some solaris versions)
+ [#instructionSets]-> instruction sets available (only available on some solaris versions)
+ [#platform] -> platform name (only available on some solaris versions)
hpux:
- #physicalRam -> total amount of physical memory in box
- #activeRealMemory -> ? - read pstat documentation
- #activeVirtualRam -> ? - read pstat documentation
- #freeMemory -> ? - read pstat documentation
- #realMemory -> ? (amount of memory left to user programs)
- #virtualRam -> ? - read pstat documentation
+ #physicalRam -> total amount of physical memory in box
+ #activeRealMemory -> ? - read pstat documentation
+ #activeVirtualRam -> ? - read pstat documentation
+ #freeMemory -> ? - read pstat documentation
+ #realMemory -> ? (amount of memory left to user programs)
+ #virtualRam -> ? - read pstat documentation
"
|sys node rel ver mach dom mtyp brel info arch cpuType
- physicalRam totalRam sharedRam bufferRam swapSize freeSwap
- numberOfCPUs pageSize physicalPages dCacheSize iCacheSize
- virtualRam activeVirtualRam realMemory activeRealMemory freeMemory|
+ physicalRam availableRam totalRam sharedRam bufferRam swapSize freeSwap
+ numberOfCPUs pageSize physicalPages availablePages dCacheSize iCacheSize
+ virtualRam activeVirtualRam realMemory activeRealMemory freeMemory
+ instructionSets platform|
%{ /* STACK: 4096 */
@@ -6119,11 +6125,11 @@
struct sysinfo infoBuffer;
if (sysinfo(&infoBuffer) >= 0) {
- totalRam = __MKUINT(infoBuffer.totalram);
- sharedRam = __MKUINT(infoBuffer.sharedram);
- bufferRam = __MKUINT(infoBuffer.bufferram);
- swapSize = __MKUINT(infoBuffer.totalswap);
- freeSwap = __MKUINT(infoBuffer.freeswap);
+ totalRam = __MKUINT(infoBuffer.totalram);
+ sharedRam = __MKUINT(infoBuffer.sharedram);
+ bufferRam = __MKUINT(infoBuffer.bufferram);
+ swapSize = __MKUINT(infoBuffer.totalswap);
+ freeSwap = __MKUINT(infoBuffer.freeswap);
}
# endif
#endif /* LINUX */
@@ -6146,18 +6152,18 @@
#if defined(HAS_UNAME)
{
- struct utsname ubuff;
-
- if (uname(&ubuff) >= 0) {
- sys = __MKSTRING(ubuff.sysname);
- node = __MKSTRING(ubuff.nodename);
- rel = __MKSTRING(ubuff.release);
- ver = __MKSTRING(ubuff.version);
- mach = __MKSTRING(ubuff.machine);
+ struct utsname ubuff;
+
+ if (uname(&ubuff) >= 0) {
+ sys = __MKSTRING(ubuff.sysname);
+ node = __MKSTRING(ubuff.nodename);
+ rel = __MKSTRING(ubuff.release);
+ ver = __MKSTRING(ubuff.version);
+ mach = __MKSTRING(ubuff.machine);
# ifdef HAS_UTS_DOMAINNAME
- dom = __MKSTRING(ubuff.domainname);
+ dom = __MKSTRING(ubuff.domainname);
# endif /* no HAS_UTS_DOMAINNAME */
- }
+ }
}
#else /* no UNAME */
@@ -6169,21 +6175,41 @@
#if defined(HAS_SYSINFO) && defined(SI_ARCHITECTURE)
if (arch == nil) {
- char buffer[128];
-
- if (sysinfo(SI_ARCHITECTURE, buffer, sizeof(buffer))) {
- arch = __MKSTRING(buffer);
- }
+ char buffer[128];
+
+ if (sysinfo(SI_ARCHITECTURE, buffer, sizeof(buffer))) {
+ arch = __MKSTRING(buffer);
+ }
+ }
+#endif /* HAS_SYSINFO & SI_ARCHITECTURE */
+
+#if defined(HAS_SYSINFO) && defined(SI_ISALIST)
+ {
+ char buffer[128];
+
+ if (sysinfo(SI_ISALIST, buffer, sizeof(buffer))) {
+ instructionSets = __MKSTRING(buffer);
+ }
+ }
+#endif /* HAS_SYSINFO & SI_ARCHITECTURE */
+
+#if defined(HAS_SYSINFO) && defined(SI_PLATFORM)
+ {
+ char buffer[128];
+
+ if (sysinfo(SI_PLATFORM, buffer, sizeof(buffer))) {
+ platform = __MKSTRING(buffer);
+ }
}
#endif /* HAS_SYSINFO & SI_ARCHITECTURE */
#if defined(HAS_GETDOMAINNAME)
if (dom == nil) {
- char buffer[128];
-
- if (getdomainname(buffer, sizeof(buffer)) == 0) {
- dom = __MKSTRING(buffer);
- }
+ char buffer[128];
+
+ if (getdomainname(buffer, sizeof(buffer)) == 0) {
+ dom = __MKSTRING(buffer);
+ }
}
#endif /* HAS_GETDOMAINNAME */
@@ -6191,46 +6217,62 @@
# ifdef _SC_NPROCESSORS_ONLN
{
- long val;
+ long val;
- val = sysconf(_SC_NPROCESSORS_ONLN);
- if (val > 0) {
- numberOfCPUs = __MKINT(val);
- }
- }
-# endif
-# if defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE)
+ val = sysconf(_SC_NPROCESSORS_ONLN);
+ if (val > 0) {
+ numberOfCPUs = __MKINT(val);
+ }
+ }
+# endif
+# if defined(_SC_PAGESIZE)
{
- long val;
-
- val = sysconf(_SC_PHYS_PAGES);
- if (val != -1) {
- physicalPages = __MKUINT(val);
- val = sysconf(_SC_PAGESIZE);
- if (val != -1) {
- pageSize = __MKUINT(val);
- }
- }
+ long val;
+
+ val = sysconf(_SC_PAGESIZE);
+ if (val != -1) {
+ pageSize = __MKUINT(val);
+ }
+ }
+# endif
+# if defined(_SC_PHYS_PAGES)
+ {
+ long val;
+
+ val = sysconf(_SC_PHYS_PAGES);
+ if (val != -1) {
+ physicalPages = __MKUINT(val);
+ }
+ }
+# endif
+# if defined(_SC_AVPHYS_PAGES)
+ {
+ long val;
+
+ val = sysconf(_SC_AVPHYS_PAGES);
+ if (val != -1) {
+ availablePages = __MKUINT(val);
+ }
}
# endif
# if defined(_SC_ICACHE_SZ)
{
- long val;
-
- val = sysconf(_SC_ICACHE_SZ);
- if (val != -1) {
- iCacheSize = __MKUINT(val);
- }
+ long val;
+
+ val = sysconf(_SC_ICACHE_SZ);
+ if (val != -1) {
+ iCacheSize = __MKUINT(val);
+ }
}
# endif
# if defined(_SC_DCACHE_SZ)
{
- long val;
+ long val;
- val = sysconf(_SC_DCACHE_SZ);
- if (val != -1) {
- dCacheSize = __MKUINT(val);
- }
+ val = sysconf(_SC_DCACHE_SZ);
+ if (val != -1) {
+ dCacheSize = __MKUINT(val);
+ }
}
# endif
@@ -6239,293 +6281,293 @@
#if defined(HAS_GETSYSTEMINFO)
{
- INT index;
- int retInt32 = 0;
+ INT index;
+ int retInt32 = 0;
# if defined(GSI_CPU)
- index = 0;
- if (getsysinfo(GSI_CPU, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
- switch (retInt32) {
+ index = 0;
+ if (getsysinfo(GSI_CPU, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+ switch (retInt32) {
# ifdef VAX_780
- case VAX_780:
- cpuType = __MKSTRING("VAX_780");
- break;
+ case VAX_780:
+ cpuType = __MKSTRING("VAX_780");
+ break;
# endif
# ifdef VAX_750
- case VAX_750:
- cpuType = __MKSTRING("VAX_750");
- break;
+ case VAX_750:
+ cpuType = __MKSTRING("VAX_750");
+ break;
# endif
# ifdef VAX_730
- case VAX_730:
- cpuType = __MKSTRING("VAX_730");
- break;
+ case VAX_730:
+ cpuType = __MKSTRING("VAX_730");
+ break;
# endif
# ifdef VAX_8600
- case VAX_8600:
- cpuType = __MKSTRING("VAX_8600");
- break;
+ case VAX_8600:
+ cpuType = __MKSTRING("VAX_8600");
+ break;
# endif
# ifdef VAX_8200
- case VAX_8200:
- cpuType = __MKSTRING("VAX_8200");
- break;
+ case VAX_8200:
+ cpuType = __MKSTRING("VAX_8200");
+ break;
# endif
# ifdef VAX_8800
- case VAX_8800:
- cpuType = __MKSTRING("VAX_8800");
- break;
+ case VAX_8800:
+ cpuType = __MKSTRING("VAX_8800");
+ break;
# endif
# ifdef MVAX_I
- case MVAX_I:
- cpuType = __MKSTRING("MVAX_I");
- break;
+ case MVAX_I:
+ cpuType = __MKSTRING("MVAX_I");
+ break;
# endif
# ifdef MVAX_II
- case MVAX_II:
- cpuType = __MKSTRING("MVAX_II");
- break;
+ case MVAX_II:
+ cpuType = __MKSTRING("MVAX_II");
+ break;
# endif
# ifdef V_VAX
- case V_VAX:
- cpuType = __MKSTRING("V_VAX");
- break;
+ case V_VAX:
+ cpuType = __MKSTRING("V_VAX");
+ break;
# endif
# ifdef VAX_3600
- case VAX_3600:
- cpuType = __MKSTRING("VAX_3600");
- break;
+ case VAX_3600:
+ cpuType = __MKSTRING("VAX_3600");
+ break;
# endif
# ifdef VAX_6200
- case VAX_6200:
- cpuType = __MKSTRING("VAX_6200");
- break;
+ case VAX_6200:
+ cpuType = __MKSTRING("VAX_6200");
+ break;
# endif
# ifdef VAX_3400
- case VAX_3400:
- cpuType = __MKSTRING("VAX_3400");
- break;
+ case VAX_3400:
+ cpuType = __MKSTRING("VAX_3400");
+ break;
# endif
# ifdef C_VAXSTAR
- case C_VAXSTAR:
- cpuType = __MKSTRING("C_VAXSTAR");
- break;
+ case C_VAXSTAR:
+ cpuType = __MKSTRING("C_VAXSTAR");
+ break;
# endif
# ifdef VAX_60
- case VAX_60:
- cpuType = __MKSTRING("VAX_60");
- break;
+ case VAX_60:
+ cpuType = __MKSTRING("VAX_60");
+ break;
# endif
# ifdef VAX_3900
- case VAX_3900:
- cpuType = __MKSTRING("VAX_3900");
- break;
+ case VAX_3900:
+ cpuType = __MKSTRING("VAX_3900");
+ break;
# endif
# ifdef DS_3100
- case DS_3100:
- cpuType = __MKSTRING("DS_3100");
- break;
+ case DS_3100:
+ cpuType = __MKSTRING("DS_3100");
+ break;
# endif
# ifdef VAX_8820
- case VAX_8820:
- cpuType = __MKSTRING("VAX_8820");
- break;
+ case VAX_8820:
+ cpuType = __MKSTRING("VAX_8820");
+ break;
# endif
# ifdef DS_5400
- case DS_5400:
- cpuType = __MKSTRING("DS_5400");
- break;
+ case DS_5400:
+ cpuType = __MKSTRING("DS_5400");
+ break;
# endif
# ifdef DS_5800
- case DS_5800:
- cpuType = __MKSTRING("DS_5800");
- break;
+ case DS_5800:
+ cpuType = __MKSTRING("DS_5800");
+ break;
# endif
# ifdef DS_5000
- case DS_5000:
- cpuType = __MKSTRING("DS_5000");
- break;
+ case DS_5000:
+ cpuType = __MKSTRING("DS_5000");
+ break;
# endif
# ifdef DS_CMAX
- case DS_CMAX:
- cpuType = __MKSTRING("DS_CMAX");
- break;
+ case DS_CMAX:
+ cpuType = __MKSTRING("DS_CMAX");
+ break;
# endif
# ifdef VAX_6400
- case VAX_6400:
- cpuType = __MKSTRING("VAX_6400");
- break;
+ case VAX_6400:
+ cpuType = __MKSTRING("VAX_6400");
+ break;
# endif
# ifdef VAXSTAR
- case VAXSTAR:
- cpuType = __MKSTRING("VAXSTAR");
- break;
+ case VAXSTAR:
+ cpuType = __MKSTRING("VAXSTAR");
+ break;
# endif
# ifdef DS_5500
- case DS_5500:
- cpuType = __MKSTRING("DS_5500");
- break;
+ case DS_5500:
+ cpuType = __MKSTRING("DS_5500");
+ break;
# endif
# ifdef DS_5100
- case DS_5100:
- cpuType = __MKSTRING("DS_5100");
- break;
+ case DS_5100:
+ cpuType = __MKSTRING("DS_5100");
+ break;
# endif
# ifdef VAX_9000
- case VAX_9000:
- cpuType = __MKSTRING("VAX_9000");
- break;
+ case VAX_9000:
+ cpuType = __MKSTRING("VAX_9000");
+ break;
# endif
# ifdef DS_500_100
- case DS_500_100:
- cpuType = __MKSTRING("DS_500_100");
- break;
+ case DS_500_100:
+ cpuType = __MKSTRING("DS_500_100");
+ break;
# endif
# ifdef ALPHA_ADU
- case ALPHA_ADU:
- cpuType = __MKSTRING("ALPHA_ADU");
- break;
+ case ALPHA_ADU:
+ cpuType = __MKSTRING("ALPHA_ADU");
+ break;
# endif
# ifdef DEC_4000
- case DEC_4000:
- cpuType = __MKSTRING("DEC_4000");
- break;
+ case DEC_4000:
+ cpuType = __MKSTRING("DEC_4000");
+ break;
# endif
# ifdef DEC_3000_500
- case DEC_3000_500:
- cpuType = __MKSTRING("DEC_3000_500");
- break;
+ case DEC_3000_500:
+ cpuType = __MKSTRING("DEC_3000_500");
+ break;
# endif
# ifdef DEC_7000
- case DEC_7000:
- cpuType = __MKSTRING("DEC_7000");
- break;
+ case DEC_7000:
+ cpuType = __MKSTRING("DEC_7000");
+ break;
# endif
# ifdef DS_5000_300
- case DS_5000_300:
- cpuType = __MKSTRING("DS_5000_300");
- break;
+ case DS_5000_300:
+ cpuType = __MKSTRING("DS_5000_300");
+ break;
# endif
# ifdef DEC_3000_300
- case DEC_3000_300:
- cpuType = __MKSTRING("DEC_3000_300");
- break;
+ case DEC_3000_300:
+ cpuType = __MKSTRING("DEC_3000_300");
+ break;
# endif
# ifdef DEC_2000_300
- case DEC_2000_300:
- cpuType = __MKSTRING("DEC_2000_300");
- break;
+ case DEC_2000_300:
+ cpuType = __MKSTRING("DEC_2000_300");
+ break;
# endif
# ifdef DEC_2100_A500
- case DEC_2100_A500:
- cpuType = __MKSTRING("DEC_2100_A500");
- break;
+ case DEC_2100_A500:
+ cpuType = __MKSTRING("DEC_2100_A500");
+ break;
# endif
# ifdef DEC_2100_A50
- case DEC_2100_A50:
- cpuType = __MKSTRING("DEC_2100_A50");
- break;
+ case DEC_2100_A50:
+ cpuType = __MKSTRING("DEC_2100_A50");
+ break;
# endif
# ifdef ALPHA_KN20AA
- case ALPHA_KN20AA:
- cpuType = __MKSTRING("ALPHA_KN20AA");
- break;
+ case ALPHA_KN20AA:
+ cpuType = __MKSTRING("ALPHA_KN20AA");
+ break;
# endif
# ifdef DEC_21000
- case DEC_21000:
- cpuType = __MKSTRING("DEC_21000");
- break;
+ case DEC_21000:
+ cpuType = __MKSTRING("DEC_21000");
+ break;
# endif
# ifdef DEC_AXPVME_64
- case DEC_AXPVME_64:
- cpuType = __MKSTRING("DEC_AXPVME_64");
- break;
+ case DEC_AXPVME_64:
+ cpuType = __MKSTRING("DEC_AXPVME_64");
+ break;
# endif
# ifdef DEC_2100_C500
- case DEC_2100_C500:
- cpuType = __MKSTRING("DEC_2100_C500");
- break;
+ case DEC_2100_C500:
+ cpuType = __MKSTRING("DEC_2100_C500");
+ break;
# endif
# ifdef DEC_AXPPCI_33
- case DEC_AXPPCI_33:
- cpuType = __MKSTRING("DEC_AXPPCI_33");
- break;
+ case DEC_AXPPCI_33:
+ cpuType = __MKSTRING("DEC_AXPPCI_33");
+ break;
# endif
# ifdef DEC_1000
- case DEC_1000:
- cpuType = __MKSTRING("DEC_1000");
- break;
+ case DEC_1000:
+ cpuType = __MKSTRING("DEC_1000");
+ break;
# endif
# ifdef EB64_PLUS
- case EB64_PLUS:
- cpuType = __MKSTRING("EB64_PLUS");
- break;
+ case EB64_PLUS:
+ cpuType = __MKSTRING("EB64_PLUS");
+ break;
# endif
# ifdef LCA_EB66
- case LCA_EB66:
- cpuType = __MKSTRING("LCA_EB66");
- break;
+ case LCA_EB66:
+ cpuType = __MKSTRING("LCA_EB66");
+ break;
# endif
# ifdef ALPHA_EB164
- case ALPHA_EB164:
- cpuType = __MKSTRING("ALPHA_EB164");
- break;
+ case ALPHA_EB164:
+ cpuType = __MKSTRING("ALPHA_EB164");
+ break;
# endif
# ifdef DEC_EV45_PBP
- case DEC_EV45_PBP:
- cpuType = __MKSTRING("DEC_EV45_PBP");
- break;
+ case DEC_EV45_PBP:
+ cpuType = __MKSTRING("DEC_EV45_PBP");
+ break;
# endif
# ifdef DEC_1000A
- case DEC_1000A:
- cpuType = __MKSTRING("DEC_1000A");
- break;
+ case DEC_1000A:
+ cpuType = __MKSTRING("DEC_1000A");
+ break;
# endif
# ifdef DEC_4100
- case DEC_4100:
- cpuType = __MKSTRING("DEC_4100");
- break;
+ case DEC_4100:
+ cpuType = __MKSTRING("DEC_4100");
+ break;
# endif
# ifdef DEC_ALPHAVME_224
- case DEC_ALPHAVME_224:
- cpuType = __MKSTRING("DEC_ALPHAVME_224");
- break;
+ case DEC_ALPHAVME_224:
+ cpuType = __MKSTRING("DEC_ALPHAVME_224");
+ break;
# endif
# ifdef DEC_1000_5
- case DEC_1000_5:
- cpuType = __MKSTRING("DEC_1000_5");
- break;
+ case DEC_1000_5:
+ cpuType = __MKSTRING("DEC_1000_5");
+ break;
# endif
# ifdef DEC_1000A_5
- case DEC_1000A_5:
- cpuType = __MKSTRING("DEC_1000A_5");
- break;
+ case DEC_1000A_5:
+ cpuType = __MKSTRING("DEC_1000A_5");
+ break;
# endif
# ifdef UNKN_SYSTEM
- case UNKN_SYSTEM:
- cpuType = __MKSTRING("UNKN_SYSTEM");
- break;
+ case UNKN_SYSTEM:
+ cpuType = __MKSTRING("UNKN_SYSTEM");
+ break;
# endif
- }
- }
+ }
+ }
# endif /* GSI_CPU */
# if defined(GSI_CPUS_IN_BOX)
- index = 0;
- if (getsysinfo(GSI_CPUS_IN_BOX, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
- numberOfCPUs = __MKUINT(retInt32);
- }
+ index = 0;
+ if (getsysinfo(GSI_CPUS_IN_BOX, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+ numberOfCPUs = __MKUINT(retInt32);
+ }
# endif /* GSI_CPUS_IN_BOX */
# if defined(GSI_PHYSMEM)
- index = 0;
- if (getsysinfo(GSI_PHYSMEM, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
- INT bytes = retInt32 * 1024;
-
- physicalRam = __MKUINT(bytes);
- }
+ index = 0;
+ if (getsysinfo(GSI_PHYSMEM, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+ INT bytes = retInt32 * 1024;
+
+ physicalRam = __MKUINT(bytes);
+ }
# endif /* GSI_PHYSMEM */
}
@@ -6533,19 +6575,19 @@
%}.
sys isNil ifTrue:[
- sys := self getSystemType.
+ sys := self getSystemType.
].
node isNil ifTrue:[
- node := self getHostName.
+ node := self getHostName.
].
dom isNil ifTrue:[
- dom := self getDomainName.
+ dom := self getDomainName.
].
mach isNil ifTrue:[
- mach := self getCPUType.
+ mach := self getCPUType.
].
arch isNil ifTrue:[
- arch := sys.
+ arch := sys.
].
info := IdentityDictionary new.
@@ -6557,9 +6599,13 @@
arch notNil ifTrue:[info at:#architecture put:arch].
dom notNil ifTrue:[info at:#domain put:dom].
(pageSize notNil and:[physicalPages notNil]) ifTrue:[
- physicalRam := pageSize * physicalPages. "/ done here - could be largeInt.
+ physicalRam := pageSize * physicalPages. "/ done here - could be largeInt.
+ physicalRam notNil ifTrue:[info at:#physicalRam put:physicalRam].
].
- physicalRam notNil ifTrue:[info at:#physicalRam put:physicalRam].
+ (pageSize notNil and:[availablePages notNil]) ifTrue:[
+ availableRam := pageSize * availablePages. "/ done here - could be largeInt.
+ availableRam notNil ifTrue:[info at:#availableRam put:availableRam].
+ ].
totalRam notNil ifTrue:[info at:#totalRam put:totalRam].
sharedRam notNil ifTrue:[info at:#sharedRam put:sharedRam].
bufferRam notNil ifTrue:[info at:#bufferRam put:bufferRam].
@@ -6574,6 +6620,8 @@
cpuType notNil ifTrue:[info at:#cpuType put:cpuType].
dCacheSize notNil ifTrue:[info at:#dCacheSize put:dCacheSize].
iCacheSize notNil ifTrue:[info at:#iCacheSize put:iCacheSize].
+ instructionSets notNil ifTrue:[info at:#instructionSets put:instructionSets].
+ platform notNil ifTrue:[info at:#platform put:platform].
info at:#osType put:(self getOSType).
^ info
@@ -8527,6 +8575,6 @@
!UnixOperatingSystem class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.50 1999-03-03 19:16:20 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.51 1999-03-31 19:59:01 cg Exp $'
! !
UnixOperatingSystem initialize!