The item codes:

POWER_VECTOR, TEMPERATURE_VECTOR, THERMAL_VECTOR, and FAN_VECTOR

are defined in syidef.h for recent VMS and C versions.  However, that 
doesn't mean the underlying hardware and supporting cpu routines know how to 
serve up this info.  Unfortunately, $getsyi will fail if even one of the 
item codes you give it is not implemented by the executive, and when 
VMS::System tries to give you all system items it's an all-or-nothing 
proposition; it only looks to see if the item codes are defined and does not 
check to see if the implied operations can be performed on the hardware in 
question.  For example, on an EV45 system at 7.2-1, I see:

$ perl -e "use VMS::System; print $^E unless 
defined(VMS::System::get_all_sys_info_items());"
%SYSTEM-E-NOT_LOADED, system service or exec routine is not loaded

Does anyone know what the specific requirements are on the availability of 
these item codes?  Is it simply EV6* and later processors?  Also, are there 
any C macros that reveal the underlying processor?  If not, how else could a 
C program/perl extension determine this?

Similar issues are apparent in DCL, with older OS's being immune.  On an 
AlphaServer 2100 (EV5 processor) running OpenVMS Alpha V7.1:

$ write sys$output f$getsyi("thermal_vector")
%DCL-W-IVKEYW, unrecognized keyword - check validity and spelling
 \THERMAL_VECTOR\

On an AlphaServer 300 (EV45 processor) running OpenVMS Alpha V7.2-1:

$ write sys$output f$getsyi("thermal_vector")
%SYSTEM-E-NOT_LOADED, system service or exec routine is not loaded
 \THERMAL_VECTOR\





Reply via email to