OpenVMS Undocumented Features
This is the most complete collection of undocumented features we can find for OpenVMS. Some of these have been around since the time when it was called VMS while others are more current and have been added to OpenVMS V8.n. These features:
- Are NOT documented (if they were, they wouldn't belong here)
- Are NOT supported by PARSEC Group or HP
- Are NOT guaranteed to work
- May NOT exist in all versions of OpenVMS; past, present and future
- Are subject to change, removal, enhancement or being documented at the whim of OpenVMS engineering
- May be fun to know the next time you play OpenVMS trivial pursuit
- May help you get your job done easier and faster
- May help you impress your boss with your knowledge of the obscure
F$GETSYI arguments
The following arguments to the F$GETSYI lexical function are not documented.
Argument | Description |
---|---|
ACTIVE_CORE_CNT | Count of cores in hard partition with at least one active LP |
ACTIVE_CPU_BITMAP | CBB bitmap data of active CPUs |
AVAIL_CPU_BITMAP | CBB bitmap data of available CPUs |
AVAIL_PAGES | Available physical pages |
AWSMIN_SYS | AWSMIN for the system working set |
AWSTIME_SYS | AWSTIME for the system working set |
BAP_MAX_PA_REG | Bus addressable pool (BAP) maximum PA registered (megabytes) |
BAP_MAX_REQ_SZ | Bus addressable pool (BAP) maximum size requested (bytes) |
BAP_MIN_PA_REG | Bus addressable pool (BAP) minimum PA registered (megabytes) |
BAP_MIN_REQ_SZ | Bus addressable pool (BAP) minimum size requested (bytes) |
CLUSTER_NTIME | Cluster New time |
CLUSTER_NTIME_REF | Cluster New time - local reference |
COMPLEX_ID | Complex Profile ID |
CPUCONF | CPU Configuration bitmask: 0 through 31 |
CPU_SOCKETS | Returns number of cpu sockets |
DAY_OVERRIDE | UAF day classifications are overridden |
DAY_SECONDARY | UAF day override is to Secondary |
DBGTK_LOADED | Remote system debugger target kernel is loaded |
DEF_PRIO_MAX | MAX priority for default policy |
DEF_PRIO_MIN | MIN priority for default policy |
FT_ACTIVE | CIRRUS system is fully active |
FT_FLAGS | Fault Tolerance Flags field |
GLX_INCARNATION | galaxy incarnation count |
GLX_MBR_INCARNATION | galaxy member incarnation number |
GLX_MBR_JOINED | galaxy member join time |
GLX_SW_VERSION | Galaxy software version |
GLX_TERMINATION | systime galaxy died |
HP_CORE_CNT | Count of unique cores in hard partition |
H_FLOAT_EMULATED | H floating instructions emulated |
MAX_PFN | Returns contents of MMG$GL_MAXPFN |
MAX_PFN_64 | Returns contents of MMG$GQ_MAXPFN |
MIN_CPU_FEATURE_MASK | AMASK value of all CPUs ANDed together |
PFN_MEMORY_MAP | Returns a physical memory map |
PFN_MEMORY_MAP_64 | Returns a 64 bit physical memory map |
PFRATH_SYS | PFRATH for the system working set |
PFRATL_SYS | PFRATL for the system working set |
PMD_COUNT | Returns count of phys. mem. desc. in HWRPB |
POTENTIAL_CPU_BITMAP | CBB bitmap data of potential CPUs |
POWERED_CPU_BITMAP | CBB bitmap data of powered on CPUs |
PRESENT_CPU_BITMAP | CBB bitmap data of present CPUs |
PROCESS_SPACE_LIMIT | Highest process private VA |
PSXFIFO_PRIO_MAX | MAX priority for POSIX FIFO policy |
PSXFIFO_PRIO_MIN | MIN priority for POSIX FIFO policy |
PSXRR_PRIO_MAX | MAX priority for POSIX Rnd-Robbin policy |
PSXRR_PRIO_MIN | MIN priority for POSIX Rnd-Robbin policy |
PTES_PER_PAGE | Page Table Entries per Page |
PT_BASE | Base VA of PT_space |
QUORUM | Connection manager cluster QUORUM |
REALTIME_SPTS | SPT entries for CONINTERR processes |
RMS_GBLBUFQUO | RMS global buffer quota |
SERIAL_NUMBER | System Serial Number |
SHARED_VA_PTES | Boundary between process and system space PTEs |
SWPALLOCINC | Swap file allocation increment value |
WSDEC_SYS | WSDEC for the system working set |
WSINC_SYS | WSINC for the system working set |
WS_OPA0 | Workstation using QVSS for OPA0 |
XCPU | CPU subtype (Extended SID info) |
XSID | Extended System Identification Register |
F$GETSYI SERIAL_NUMBER argument
The SERIAL_NUMBER argument to F$GETSYI lexical function normally returns a formatted serial number in ASCII readable text as in the example below.
$ write sys$output f$getsyi("serial_number")
NI643047NT
On some systems, it may return a string of 32 characters representing the binary value of the serial number. This may be translated to the ASCII text using the procedure below.
$ say := write sys$output
$ snum = f$gets("SERIAL_NUMBER")
$ if f$len( snum ) .eq. 32 then -
$ gosub decode_snum
$ node = f$getsyi("nodename" )
$ hdwe_name = F$GETSYI("HW_NAME")
$ say f$fao( " Node !AS (!AS), serial nbr !AS", node, hdwe_name, snum )
$ exit
$!
$decode_snum:
$ tsnum :=
$ ptr = 0
$decode_loop:
$ disp = 32 - (ptr * 2)
$ hex = f$extr( disp - 2, 2, snum )
$ stbit = ptr * 8
$ if %X'hex' .ne. 0 then -
$ tsnum['stbit',8]=%X'hex'
$ ptr = ptr + 1
$ if ptr .lt. 16 then -
$ goto decode_loop
$ snum = tsnum
$ return
Thanks to David Dachtera at DJE Systems for providing this tip.
Please enjoy these features at your own risk. If you are aware of other features in OpenVMS which are currently undocumented, you may use our inquiry form to inform us. We may then add it to our list.