|
OpenVMS System Services Reference Manual
Because this number is a longword, the buffer length field in the item
descriptor should specify 4 (bytes).
SYI$_PMD_COUNT
Returns the total number of physical memory descriptors defined by the
system. The return value of this parameter can be used to determine the
buffer size to use when specifying the SYI$_PFN_MEMORY_MAP item code.
Because this number is a longword, the buffer length field in the item
descriptor should specify 4 (bytes).
SYI$_POTENTIALCPU_CNT
On Alpha systems, returns the number of CPUs that could potentially run
on this instance.
SYI$_POTENTIAL_CPU_MASK
On Alpha systems, returns the mask of CPUs that are compatible on this
instance.
SYI$_PRIMARY_CPUID
On Alpha systems, returns the ID of the primary CPU in the current boot
of the symmetric multiprocessing (SMP) system.
SYI$_PROCESS_SPACE_LIMIT
On Alpha systems, this item code returns the 64-bit virtual address
succeeding the last available process private address. The value
returned is the upper bound on the process private address space. The
value returned is the same for every process on the system.
Because this number is a quadword, the buffer length field in the item
descriptor should specify 8 (bytes).
SYI$_PSXFIFO_PRIO_MAX
On Alpha systems, returns the maximum priority for the POSIX FIFO
scheduling policy.
Because this number is a longword, the buffer length field in the item
descriptor should specify 4 (bytes).
SYI$_PSXFIFO_PRIO_MIN
On Alpha systems, returns the minimum priority for the POSIX FIFO
scheduling policy.
Because this number is a longword, the buffer length field in the item
descriptor should specify 4 (bytes).
SYI$_PSXRR_PRIO_MAX
On Alpha systems, returns the maximum priority for the POSIX
round-robin scheduling policy.
Because this number is a longword, the buffer length field in the item
descriptor should specify 4 (bytes).
SYI$_PSXRR_PRIO_MIN
On Alpha systems, returns the minimum priority for the POSIX
round-robin scheduling policy.
Because this number is a longword, the buffer length field in the item
descriptor should specify 4 (bytes).
SYI$_PT_BASE
On Alpha systems, returns the 64-bit virtual address of the base of the
page tables. The value returned is the same for every process on the
system.
Because this number is a quadword, the buffer length field in the item
descriptor should specify 8 (bytes).
SYI$_PTES_PER_PAGE
On Alpha systems, returns the maximum number of CPU-specific pages that
can be mapped by one page table page.
Because this number is a longword, the buffer length field in the item
descriptor should specify 4 (bytes).
SYI$_RAD_CPUS
On Alpha systems, returns a longword array of RAD/CPU pairs that can
potentially be in this operating system instance. If there is no RAD
support, all potential CPUs are in RAD 0. The array is terminated with
a -1,-1 pair.
Note: OpenVMS support for RADs is available only on the new AlphaServer GS series systems. For more information about using RADs, refer to the OpenVMS Alpha Partitioning and Galaxy Guide.
SYI$_RAD_MEMSIZE
On Alpha systems, returns a longword array of RAD/page count pairs. The
number of pages of private memory is returned. If there is no RAD
support, all memory is reported in RAD 0. The array is terminated with
a -1,-1 pair.
Note: OpenVMS support for RADs is available only on the new AlphaServer GS series systems. For more information about using RADs, refer to the OpenVMS Alpha Partitioning and Galaxy Guide.
SYI$_RAD_MAX_RAD
On Alpha systems, returns the maximum number of RADs possible on this
platform. If there is no RAD support, 1 is returned.
Note: OpenVMS support for RADs is available only on the new AlphaServer GS series systems. For more information about using RADs, refer to the OpenVMS Alpha Partitioning and Galaxy Guide.
SYI$_RAD_SHMEMSIZE
On Alpha systems, returns a longword array of RAD/page count pairs. The
number of pages of shared memory is returned. If there is no RAD
support, all shared memory is reported in RAD 0. If the current
instance is not a member of a Galaxy, no shared memory is reported. The
array is terminated with a -1,-1 pair.
Note: OpenVMS support for RADs is available only on the new AlphaServer GS series systems. For more information about using RADs, refer to the OpenVMS Alpha Partitioning and Galaxy Guide.
SYI$_REAL_CPUTYPE
Returns the actual CPU type of the primary CPU of the system.
See the SYI$_CPUTYPE item code for a list of symbols and processors.
SYI$_SCSNODE
On Alpha systems, returns the ASCII string Galaxy instance name.
SYI$_SCS_EXISTS
Returns a longword value that is interpreted as Boolean. If the value
is 1, the System Communication Subsystem (SCS) is currently loaded on
the node; if the value is 0, the SCS is not currently loaded.
SYI$_SERIAL_NUMBER
Returns the system serial number from out of the Hardware Restart
Parameter Block (HWRPB).
SYI$_SHARED_VA_PTES
On Alpha systems, returns the 64-bit virtual address of the PTE that
marks the boundary between process-private PTEs and system-shared PTEs.
The value returned is the same for every process on the system.
Because this number is a quadword, the buffer length field in the item
descriptor should specify 8 (bytes).
SYI$_SID
Returns the contents of the system identification register of the node.
On Alpha systems, SYI$_SID returns a value in which all fields are 0
except the CPU-type field, which always contains the value 256.
Because the value of this register is a longword hexadecimal number,
the buffer length field in the item descriptor should specify 4 (bytes).
SYI$_SWAPFILE_FREE
Returns the number of free pages in the currently installed swapping
files.
Because this number is a longword, the buffer length field in the item
descriptor should specify 4 (bytes).
SYI$_SWAPFILE_PAGE
Returns the number of pages in the currently installed swapping files.
Because this number is a longword, the buffer length field in the item
descriptor should specify 4 (bytes).
SYI$_SYSTEM_RIGHTS
Returns the system rights list as an array of quadword identifiers.
Each entry consists of a longword identifier value and the following
longword identifier attributes:
Bit Position |
Meaning When Set |
KGB$V_DYNAMIC
|
Allows holders of the identifier to remove it from or add it to the
process rights list using the DCL command SET RIGHTS_LIST.
|
KGB$V_NOACCESS
|
Makes any access rights of the identifier null and void. This attribute
is intended as a modifier for a resource identifier or the Subsystem
attribute.
|
KGB$V_RESOURCE
|
Allows holders of an identifier to charge disk space to the identifier.
It is used only for file objects.
|
KGB$V_SUBSYSTEM
|
Allows holders of the identifier to create and maintain protected
subsystems by assigning the Subsystem ACE to the application images in
the subsystem.
|
Allocate a buffer that is sufficient to hold the system rights list,
because $GETSYI returns only as much of the list as will fit in the
buffer.
SYI$_SYSTYPE
On Alpha systems, returns the name of the family or system hardware
platform. For example, the integer 2 represents a DEC 4000 processor,
the integer 3 represents a DEC 7000 or DEC 10000 processor, and the
integer 4 represents a DEC 3000 processor.
SYI$_VERSION
Returns, as a character string, the software version number of the
OpenVMS operating system running on the node.
Because the version number is 8-byte blank-filled, the buffer length
field in the item descriptor should specify 8 (bytes).
SYI$_VECTOR_EMULATOR
Returns a byte, the low-order bit of which, when set, indicates the
presence of the Vector Instruction Emulator facility (VVIEF) in the
system.
SYI$_VP_MASK
Returns a longword mask, the bits of which, when set, indicate which
processors in the system have vector coprocessors.
SYI$_VP_NUMBER
Returns an unsigned longword containing the number of vector processors
in the system.
SYI$_XCPU
Returns the extended CPU processor type of the node.
You should obtain the general processor type value first by using the
SYI$_CPU item code. For some of the general processor types, extended
processor type information is provided by the item code, SYI$_XCPU. For
other general processor types, the value returned by the SYI$_XCPU item
code is currently undefined.
Because the processor type is a longword decimal number, the buffer
length field in the item descriptor should specify 4 (bytes).
On VAX systems, the $PRDEF macro defines the following symbols for the
extended processor types:
VAX Processor Type Symbol |
Extended Processor Type |
Extended Processor Symbol |
PR$_SID_TYPUV
|
MicroVAX II
VAXstation II
|
PR$_XSID_UV_UV2
|
|
MicroVAX 2000
VAXstation 2000
|
PR$_XSID_UV_410
|
PR$_SID_TYPCV
|
MicroVAX 3300, 3400, 3500, 3600, 3800, 3900 series
|
PR$_XSID_CV_650
|
|
VAX 6000-200, 6000-300 series
|
PR$_XSID_CV_9CC
|
|
VAXstation 3520, 3540
|
PR$_XSID_CV_60
|
|
VAXstation 3100 series
|
PR$_XSID_CV_420
|
|
VAXft 3000 Model 310
|
PR$_XSID_CV_520
|
PR$_SID_TYP8NN
|
VAX 8530
|
PRS$_XSID_N8500
|
|
VAX 8550
|
PRS$_XSID_N8550
|
|
VAX 8810 (8700)
|
PRS$_XSID_N8700
|
|
VAX 8820-N (8800)
|
PRS$_XSID_N8800
|
PR$_SID_TYPRV
|
VAX 4000-300
|
PR$_XSID_RV_670
|
|
VAX 6000-400 series
|
PR$_XSID_RV_9RR
|
SYI$_XSID
Returns processor-specific information. For the MicroVAX II system,
this information is the contents of the system type register of the
node. The system type register contains the full extended information
used in determining the extended system type codes. For other
processors, the data returned by SYI$_XSID is currently undefined.
Because the value of this register is a longword hexadecimal number,
the buffer length field in the item descriptor should specify 4 (bytes).
SYI$_xxxx
Returns the current value of the system parameter named xxxx
for the node.
The buffer must specify a longword into which $GETSYI writes the value
of the specified system parameter. For a list and description of all
system parameters, refer to the OpenVMS System Manager's Manual.
Description
The Get Systemwide Information service returns information about the
local system or about other systems in an OpenVMS Cluster configuration.
Required Access or Privileges
None
Required Quota
This service uses the process's AST limit quota (ASTLM).
Related Services
$ALLOC, $ASSIGN, $BRKTHRU, $BRKTHRUW, $CANCEL, $CREMBX, $DALLOC,
$DASSGN, $DELMBX, $DEVICE_SCAN, $DISMOU, $GETDVI, $GETDVIW, $GETMSG,
$GETQUI, $GETQUIW, $INIT_VOL, $MOUNT, $PUTMSG, $QIO, $QIOW, $SNDERR,
$SNDJBC, $SNDJBCW, $SNDOPR
Condition Values Returned
SS$_NORMAL
|
The service completed successfully.
|
SS$_ACCVIO
|
The caller cannot read the item list, cannot write to the buffer
specified by the buffer address field in an item descriptor, or cannot
write to the return length address field in an item descriptor.
|
SS$_BADPARAM
|
The item list contains an invalid item code.
|
SS$_EXASTLM
|
The process has exceeded its AST limit quota.
|
SS$_NOMORENODE
|
You requested a wildcard operation, and $GETSYI has returned
information about all available nodes.
|
SS$_NOSUCHNODE
|
The specified node does not exist or is not currently a member of the
OpenVMS Cluster system.
|
Condition Values Returned in the I/O Status Block1
Same as those returned in R0.
Example
|
/* Defining __NEW_STARLET enables the program to benefit from better type
checking for prototypes and structures provided by OpenVMS. */
#define __NEW_STARLET 1
#include <efndef> /* No Event Flag Event Flag */
#include <iledef> /* Item List Entry Definitions */
#include <iosbdef> /* I/O Status Block Structure Definition */
#include <starlet> /* Function Prototypes for System Services */
#include <stdio> /* C Standard I/O Functions */
#include <string> /* memset Prototype */
#include <syidef> /* $GETSYI Item Code Definitions */
#define NUM_ILE 3
#define BUFFER_SIZE 20
/* Macro to initialize a 32-bit item_list_3. */
#define init_ile32(ile, length, code, bufaddr, retlen_addr) \
{ (ile)->ile3$w_length = (length); \
(ile)->ile3$w_code = (code); \
(ile)->ile3$ps_bufaddr = (bufaddr); \
(ile)->ile3$ps_retlen_addr = (retlen_addr); }
/* Simple status checking macro. */
#define bad_status(status) (((status) & 1) != 1)
main ()
{
char
node_name [BUFFER_SIZE],
version_string [BUFFER_SIZE];
int
status;
unsigned short
node_name_length,
version_string_length;
ILE3
syi_ile [NUM_ILE];
IOSB
iosb;
/* Zeroing the item list has the effect of creating the terminating entry. */
memset (syi_ile, 0, ILE3$K_LENGTH*NUM_ILE);
/* Initialize the item list entries to fetch the operating system version
and the node name. */
init_ile32 (
&syi_ile [0],
BUFFER_SIZE,
SYI$_VERSION,
version_string,
&version_string_length);
init_ile32 (
&syi_ile [1],
BUFFER_SIZE,
SYI$_NODENAME,
node_name,
&node_name_length);
status = sys$getsyiw (
EFN$C_ENF,
NULL,
NULL,
&syi_ile,
&iosb,
NULL,
0);
if (bad_status (status)) return status;
if (bad_status (iosb.iosb$w_status)) return iosb.iosb$w_status;
/* Zero terminate the strings before displaying them. */
version_string [version_string_length] = '\0';
node_name [node_name_length] = '\0';
printf ("Version: %s Node Name: %s\n",
version_string,
node_name);
}
|
This example C program demonstrates how to use $GETSYIW to obtain the
operating system version number string and the node name.
$GETSYIW
Returns information about the local system or about other systems in a
cluster.
The $GETSYIW service completes synchronously; that is, it returns to
the caller with the requested information. For asynchronous completion,
use the Get Systemwide Information ($GETSYI) service; $GETSYI returns
to the caller after queuing the information request, without waiting
for the information to be returned. In all other respects, these
services are identical; refer to the documentation about $GETSYI for
information about the $GETSYIW service.
For additional information about system service completion, refer to
the Synchronize ($SYNCH) service.
On Alpha systems, this service accepts 64-bit addresses.
Format
SYS$GETSYIW [efn] ,[csidadr] ,[nodename] ,itmlst [,iosb] [,astadr]
[,astprm]
C Prototype
int sys$getsyiw (unsigned int efn, unsigned int *csidadr, void
*nodename, void *itmlst, struct _iosb *iosb, void
(*astadr)(__unknown_params), int astprm);
You must specify either the csidadr or the
nodename argument, but not both. For wildcard
operations, however, you must use the csidadr argument.
$GETTIM
Returns the current system time in a 64-bit format.
On Alpha systems, this service accepts 64-bit addresses.
Format
SYS$GETTIM timadr
C Prototype
int sys$gettim (struct _generic_64 *timadr);
Argument
timadr
OpenVMS usage: |
date_time |
type: |
quadword (unsigned) |
access: |
write only |
mechanism: |
by 32- or 64-bit reference (Alpha) |
mechanism: |
by 32-bit reference (VAX) |
The 32- or 64-bit address (on Alpha systems) or the 32-bit address (on
VAX systems) of a quadword to receive the current time in 64-bit format.
Description
The Get Time service returns the current system time in 64-bit format.
The time is returned in 100-nanosecond units from the system base time.
On Alpha systems, the frequency at which system time is updated varies,
depending on the clock frequency of the Alpha processor.
On VAX systems, system time is updated every 10 milliseconds.
Required Access or Privileges
None
Required Quota
None
Related Services
$ASCTIM, $BINTIM, $CANTIM, $CANWAK, $NUMTIM, $SCHDWK, $SETIME, $SETIMR
For additional information about the system time, see the OpenVMS System Manager's Manual.
Condition Values Returned
SS$_NORMAL
|
The service completed successfully.
|
SS$_ACCVIO
|
The quadword to receive the time cannot be written by the caller.
|
$GETUAI
Returns authorization information about a specified user.
Format
SYS$GETUAI [nullarg] ,[contxt] ,usrnam ,itmlst ,[nullarg] ,[nullarg]
,[nullarg]
C Prototype
int sys$getuai (unsigned int efn, unsigned int *contxt, void *usrnam,
void *itmlst, struct _iosb *iosb, void (*astadr)(__unknown_params), int
astprm);
Arguments
nullarg
OpenVMS usage: |
null_arg |
type: |
longword (unsigned) |
access: |
read only |
mechanism: |
by value |
Placeholding argument reserved to Compaq.
usrnam
OpenVMS usage: |
char_string |
type: |
character-coded text string |
access: |
read only |
mechanism: |
by descriptor--fixed-length string descriptor |
Name of the user about whom $GETUAI returns authorization information.
The usrnam argument is the address of a descriptor
pointing to a character text string containing the user name. The user
name string can contain a maximum of 12 alphanumeric characters.
itmlst
OpenVMS usage: |
item_list_3 |
type: |
longword (unsigned) |
access: |
read only |
mechanism: |
by reference |
Item list specifying which information from the specified user's user
authorization file (UAF) record is to be returned. The
itmlst argument is the address of a list of one or
more item descriptors, each of which specifies an item code. The item
list is terminated by an item code value of 0 or by a longword value of
0.
The following diagram depicts the structure of a single item descriptor:
The following table defines the item descriptor fields:
Descriptor Field |
Definition |
Buffer length
|
A word specifying the length (in bytes) of the buffer in which $GETUAI
is to write the information. The length of the buffer varies, depending
on the item code specified in the item code field of the item
descriptor, and is given in the description of each item code. If the
value of the buffer length field is too small, $GETUAI truncates the
data.
|
Item code
|
A word containing a user-supplied symbolic code specifying the item of
information that $GETUAI is to return. The $UAIDEF macro defines these
codes.
|
Buffer address
|
A longword containing the user-supplied address of the buffer in which
$GETUAI is to write the information.
|
Return length address
|
A longword containing the user-supplied address of a word in which
$GETUAI writes the length in bytes of the information it actually
returned.
|
The symbolic codes have the following format:
See the Item Codes section for descriptions of the various $GETUAI item
codes.
contxt
OpenVMS usage: |
longword |
type: |
longword (unsigned) |
access: |
modify |
mechanism: |
by reference |
On VAX systems, an optional longword used to maintain an open channel
to the authorization file. The contxt argument is the
address of a longword to receive a $GETUAI context value. If the
contxt argument is specified on the initial call, this
longword should contain the value --1, and on subsequent calls, the
value of the contxt argument from the previous call
should be passed back in.
Item Codes
UAI$_ACCOUNT
Returns, as a blank-filled 32-character string, the account name of the
user.
An account name can include up to 8 characters. Because the account
name is a blank-filled string, however, the buffer length field of the
item descriptor should specify 32 (bytes).
UAI$_ASTLM
Returns the AST queue limit.
Because this decimal number is a word in length, the buffer length
field in the item descriptor should specify 2 (bytes).
UAI$_BATCH_ACCESS_P
Returns, as a 3-byte value, the range of times during which batch
access is permitted for primary days. Each bit set represents a 1-hour
period, from bit 0 as midnight to 1 a.m. to bit 23 as 11 p.m. to
midnight.
The buffer length field in the item descriptor should specify 3 (bytes).
UAI$_BATCH_ACCESS_S
Returns, as a 3-byte value, the range of times during which batch
access is permitted for secondary days. Each bit set represents a
1-hour period, from bit 0 as midnight to 1 a.m. to bit 23 as 11 p.m. to
midnight.
The buffer length field in the item descriptor should specify 3 (bytes).
UAI$_BIOLM
Returns the buffered I/O count.
Because this decimal number is a word in length, the buffer length
field in the item descriptor should specify 2 (bytes).
UAI$_BYTLM
Returns the buffered I/O byte limit.
Because the buffered I/O byte limit is a longword decimal number, the
buffer length field in the item descriptor should specify 4 (bytes).
UAI$_CLITABLES
Returns, as a character string, the name of the user-defined CLI table
for the account, if any.
Because the CLI table name can include up to 31 characters in addition
to a size-byte prefix, the buffer length field of the item descriptor
should specify 32 (bytes).
UAI$_CPUTIM
Returns the maximum CPU time limit (per session) for the process in
10-millisecond units.
Because the maximum CPU time limit is a longword decimal number, the
buffer length field in the item descriptor should specify 4 (bytes).
UAI$_DEFCLI
Returns, as an RMS file name component, the name of the command
language interpreter used to execute the specified batch job. The file
specification returned assumes the device name and directory SYS$SYSTEM
and the file type .EXE.
Because a file name can include up to 31 characters in addition to a
size-byte prefix, the buffer length field in the item descriptor should
specify 32 (bytes).
UAI$_DEFDEV
Returns, as a 1- to 31-character string, the name of the default device.
Because the device name string can include up to 31 characters in
addition to a size-byte prefix, the buffer length field in the item
descriptor should specify 32 (bytes).
UAI$_DEFDIR
Returns, as a 1- to 63-character string, the name of the default
directory.
Because the directory name string can include up to 63 characters in
addition to a size-byte prefix, the buffer length field in the item
descriptor should specify 64 (bytes).
UAI$_DEF_PRIV
Returns the default privileges for the user.
Because the default privileges are returned as a quadword value, the
buffer length field in the item descriptor should specify 8 (bytes).
UAI$_DFWSCNT
Returns the default working set size in pages (on VAX systems) or
pagelets (on Alpha systems).
Because the default working set size is a longword decimal number, the
buffer length field in the item descriptor should specify 4 (bytes).
UAI$_DIOLM
Returns the direct I/O count limit.
Because this decimal number is a word in length, the buffer length
field in the item descriptor should specify 2 (bytes).
UAI$_DIALUP_ACCESS_P
Returns, as a 3-byte value, the range of times during which dialup
access is permitted for primary days. Each bit set represents a 1-hour
period, from bit 0 as midnight to 1 a.m. to bit 23 as 11 p.m. to
midnight. For each hour the bit is set to 0, access is allowed. For
each hour the bit is set to 1, access is denied.
The buffer length field in the item descriptor should specify 3 (bytes).
UAI$_DIALUP_ACCESS_S
Returns, as a 3-byte value, the range of times during which dialup
access is permitted for secondary days. Each bit set represents a
1-hour period, from bit 0 as midnight to 1 a.m. to bit 23 as 11 p.m. to
midnight. For each hour the bit is set to 0, access is allowed. For
each hour the bit is set to 1, access is denied.
The buffer length field in the item descriptor should specify 3 (bytes).
UAI$_ENCRYPT
Returns one of the values shown in the following table, identifying the
encryption algorithm for the primary password.
|