|
HP OpenVMS System Services Reference Manual
Required Privileges
SYSPRV is required unless the caller is in executive or kernel mode.
Required Quotas
None.
Related Services
$ABORT_TRANS, $ABORT_TRANSW, $ACK_EVENT, $ADD_BRANCH, $ADD_BRANCHW,
$CREATE_UID, $DECLARE_RM, $DECLARE_RMW, $END_BRANCH, $END_BRANCHW,
$END_TRANS, $END_TRANSW, $FORGET_RM, $FORGET_RMW, $GETDTI, $GETDTIW,
$GET_DEFAULT_TRANS, $JOIN_RM, $JOIN_RMW, $SETDTI, $SETDTIW,
$SET_DEFAULT_TRANS, $SET_DEFAULT_TRANSW, $START_BRANCH, $START_BRANCHW,
$START_TRANS, $START_TRANSW, $TRANS_EVENTW
Condition Values Returned
SS$_NORMAL
|
The request was successfully queued. This value is only returned in R0.
|
SS$_ACCVIO
|
An argument was not accessible to the caller.
|
SS$_BADPARAM
|
Invalid value for
tx_event parameter.
|
SS$_EXASTLM
|
The process AST limit (ASTLM) was exceeded.
|
SS$_FORGET
|
No further $TRANS_EVENT calls are required for this transaction.
- If
tx_event = DDTM$K_TX_ABORT, then abort processing has
been initiated.
- If
tx_event = DDTM$K_TX_COMMIT, then sufficient
information has been hardened to commit the transaction.
- If
tx_event = DDTM$K_TX_PREPARE, then one of the
following has occurred:
- All participants voted read-only.
- The
tid was not known.
- The
rm_id was not known.
|
SS$_ILLEFC
|
The event flag number was invalid.
|
SS$_INSFARGS
|
A required argument was missing.
|
SS$_INSFMEM
|
There was insufficient system dynamic memory for the operation.
|
SS$_NOLOG
|
The local node did not have a transaction log.
|
SS$_NOPRIV
|
The specified
rm_id was not a coordinator of the specified
transaction.
|
SS$_NOSYSPRV
|
The caller is in user or supervisor mode but did not have SYSPRV set.
|
SS$_PREPARED
|
All participants are ready to commit the transaction. A further
operation (commit or abort) is necessary to complete the transaction.
|
SS$_TPDISABLED
|
The TP_SERVER process was not running on the local node.
|
SS$_VETO
|
The
tx_event parameter contains the value
DDTM$K_TX_PREPARE, and DECdtm or a participant was not in a position to
accept an order to commit. One reason why the transaction must abort is
supplied in the abort reason code field of the IOSB. No further call to
$TRANS_EVENT is needed for a transaction when this condition code is
returned.
|
SS$_WRONGACMODE
|
The access mode of the caller was less privileged than that of a branch
of the transaction in this process.
|
SS$_WRONGSTATE
|
The transaction was in the wrong state for the attempted operation:
- Commit operation when transaction is not prepared.
- Any operation while another call is in progress.
|
$TRANS_EVENTW
Forces a transaction state change for a transaction in which there is
at least one RM participant that has specified the DDTM$M_COORDINATOR
flag.
$TRANS_EVENTW always waits for the request to complete before returning
to the caller. Other than this, it is identical to $TRANS_EVENT.
Format
SYS$TRANS_EVENTW [efn] ,[flags] ,iosb ,[astadr] ,[astprm] ,tid ,rm_id
,tx_event
C Prototype
int sys$trans_eventw (unsigned int efn, unsigned int flags, struct
_iosb *iosb, void (*astadr)(__unknown_params), __int64 astprm, )
$TRNLNM
Returns information about a logical name.
On Alpha and Integrity server systems, this service accepts 64-bit
addresses.
Format
SYS$TRNLNM [attr] ,tabnam ,lognam ,[acmode] ,[itmlst]
C Prototype
int sys$trnlnm (unsigned int *attr, void *tabnam, void *lognam,
unsigned char *acmode, void *itmlst);
Arguments
attr
OpenVMS usage: |
mask_longword |
type: |
longword (unsigned) |
access: |
read only |
mechanism: |
by 32- or 64-bit reference (Alpha and Integrity
servers) |
Attributes controlling the search for the logical name. The
attr argument is the 32- or 64-bit address (on Alpha
and Integrity server systems) of a longword bit mask specifying these
attributes.
Each bit in the longword corresponds to an attribute and has a symbolic
name. The $LNMDEF macro defines these symbolic names. To specify an
attribute, use its symbolic name or set its corresponding bit. All
undefined bits in the longword have the value 0.
If you do not specify this argument or specify it as the value 0 (no
bits set), the following attributes are not used:
Attribute |
Description |
LNM$M_CASE_BLIND
|
If set, $TRNLNM does not distinguish between uppercase and lowercase
letters in the logical name to be translated.
|
LNM$M_INTERLOCKED
|
If set, $TRNLNM does not translate the current logical name until any
clusterwide logical name modifications in progress are completed. This
attribute is not set by default. If your application requires
translation using the most recent definition of a clusterwide logical
name, use this attribute to ensure that the translation is stalled
until all pending modifications have been made.
|
tabnam
OpenVMS usage: |
logical_name |
type: |
character-coded text string |
access: |
read only |
mechanism: |
by 32- or 64-bit descriptor--fixed-length string descriptor
(Alpha and Integrity servers) |
Name of the logical name table or the name of a searchlist logical name
that translates the name of one or more tables in which to search for
the specified logical name. The tabnam argument is the
32- or 64-bit address (on Alpha and Integrity server systems) of a
descriptor pointing to this name. This argument is required.
The name must be entered in uppercase letters. (This requirement
differs from the $CRELNT system service, which automatically changes
tabnam to uppercase.)
If the table name is not the name of a logical name table, it is
assumed to be a logical name and is translated iteratively until either
the name of a logical name table is found or the number of translations
allowed by the system have been performed. If the table name translates
to a list of logical name tables, the tables are searched in the
specified order.
lognam
OpenVMS usage: |
logical_name |
type: |
character-coded text string |
access: |
read only |
mechanism: |
by 32- or 64-bit descriptor--fixed-length string descriptor
(Alpha and Integrity servers) |
Logical name about which information is to be returned. The
lognam argument is the 32- or 64-bit address (on Alpha
and Integrity server systems) of a descriptor pointing to the logical
name string. This argument is required.
acmode
OpenVMS usage: |
access_mode |
type: |
byte (unsigned) |
access: |
read only |
mechanism: |
by 32- or 64-bit reference (Alpha and Integrity
servers) |
Access mode to be used in the translation. The acmode
argument is the 32- or 64-bit address (on Alpha and Integrity server
systems) of a byte specifying the access mode. The $PSLDEF macro
defines symbolic names for the four access modes.
When you specify the acmode argument, $TRNLNM ignores
all names (both logical names and table names) at access modes less
privileged than the specified access mode. The specified access mode is
not checked against that of the caller.
If you do not specify acmode, $TRNLNM performs the
translation without regard to access mode; however, the translation
process proceeds from the outermost to the innermost access modes.
Thus, if two logical names with the same name but at different access
modes exist in the same table, $TRNLNM translates the name with the
outermost access mode.
itmlst
OpenVMS usage: |
32-bit item_list_3 or 64-bit item_list_64b |
type: |
longword (unsigned) for 32-bit; quadword (unsigned) for
64-bit |
access: |
read only |
mechanism: |
by 32- or 64-bit reference (Alpha and Integrity
servers) |
Item list describing the information that $TRNLNM is to return. The
itmlst argument is the 32- or 64-bit address (on Alpha
and Integrity server systems) of a list of item descriptors, each of
which specifies or controls an item of information to be returned. An
item list in 32-bit format is terminated by a longword of 0; an item
list in 64-bit format is terminated by a quadword of 0. All items in an
item list must be of the same format---either 32-bit or 64-bit.
The following diagram depicts the 32-bit format of a single item
descriptor:
The following table defines the item descriptor fields for 32-bit item
list entries:
Descriptor Field |
Definition |
Buffer length
|
A word specifying the number of bytes in the buffer pointed to by the
buffer address field.
|
Item code
|
A word containing a symbolic code describing the nature of the
information currently in the buffer, to be returned in the buffer, or
to be returned by the buffer pointed to by the buffer address field.
|
Buffer address
|
A longword containing the 32-bit address of the buffer that specifies
or receives the information.
|
Return length address
|
A longword containing the 32-bit address of a word specifying the
actual length (in bytes) of the information returned by $TRNLNM in the
buffer pointed to by the buffer address field.
|
The following diagram depicts the 64-bit format of a single item
descriptor:
The following table defines the item descriptor fields for 64-bit item
list entries:
Descriptor Field |
Definition |
MBO
|
The field must contain a 1. The MBO and MBMO fields are used to
distinguish 32-bit and 64-bit item list entries.
|
Item code
|
A word containing a symbolic code describing the nature of the
information currently in the buffer, to be returned in the buffer, or
to be returned by the buffer pointed to by the buffer address field.
|
MBMO
|
The field must contain a --1. The MBMO and MBO fields are used to
distinguish 32-bit and 64-bit item list entries.
|
Buffer address
|
A quadword containing the 64-bit address of the buffer that specifies
or receives the information.
|
Return length address
|
A quadword containing the 64-bit address of a word specifying the
actual length (in bytes) of the information returned by $TRNLNM in the
buffer pointed to by the buffer address field.
|
Item Codes
LNM$_ACMODE
Returns the access mode that was associated with the logical name at
the time of its creation. The buffer address field in the item
descriptor is the address of a byte in which $TRNLNM writes the access
mode.
LNM$_ATTRIBUTES
Returns the attributes of the logical name and the equivalence name
associated with the current LNM$_INDEX value.
The buffer address field of the item descriptor points to a longword
bit mask wherein each bit corresponds to an attribute. The $TRNLNM
service sets the corresponding bit for each attribute possessed by
either the logical name or the equivalence name.
The $LNMDEF macro defines the following symbolic names for these
attributes:
Attribute |
Description |
LNM$M_CONCEALED
|
If $TRNLNM sets this bit, the equivalence name at the current index
value for the logical name is a concealed logical name, as interpreted
by OpenVMS RMS.
|
LNM$M_CONFINE
|
If $TRNLNM sets this bit, the logical name is not copied from a process
to any of its spawned subprocesses. The DCL command SPAWN creates
subprocesses.
|
LNM$M_CRELOG
|
If $TRNLNM sets this bit, the logical name was created using the
$CRELOG system service.
|
LNM$M_EXISTS
|
If $TRNLNM sets this bit, an equivalence name with the specified index
does exist.
|
LNM$M_NO_ALIAS
|
If $TRNLNM sets this bit, the name of the logical name cannot be given
to another logical name defined in the same table at an outer access
mode.
|
LNM$M_TABLE
|
If $TRNLNM sets this bit, the logical name is the name of a logical
name table.
|
LNM$M_CLUSTERWIDE
|
If $TRNLNM sets this bit, the logical name is in a clusterwide table.
|
LNM$M_TERMINAL
|
If $TRNLNM sets this bit, the equivalence name for the logical name
cannot be subjected to further (recursive) logical name translation.
|
LNM$_CHAIN
Processes another item list immediately following the current item
list. The LNM$_CHAIN item code must be the last one in the current item
list. The buffer address field of the item descriptor points to the
next item list.
You can chain together 32-bit and 64-bit item lists.
LNM$_INDEX
Searches for an equivalence name that has the specified index value.
The buffer address field of the item descriptor points to a longword
containing a user-specified integer in the range 0 to 127.
If you do not specify this item code, the implied value of LNM$_INDEX
is 0 and $TRNLNM returns information about the equivalence name at
index 0.
Because a logical name can have more than one equivalence name and each
equivalence name is identified by an index value, you should specify
the LNM$_INDEX item code first in the item list, before specifying
LNM$_STRING, LNM$_LENGTH, or LNM$_ATTRIBUTES. These item codes return
information about the equivalence name identified by the current index
value, LNM$_INDEX.
LNM$_LENGTH
Returns the length of the equivalence name string corresponding to the
current LNM$_INDEX value. The buffer address field in the item
descriptor is the address of the longword in which $TRNLNM writes this
length.
If an equivalence name does not exist at the current LNM$_INDEX value,
$TRNLNM returns the value 0 to the longword pointed to by the return
length field of the item descriptor.
LNM$_MAX_INDEX
Each equivalence name for the logical name has an index associated with
it. When you specify LNM$_MAX_INDEX, $TRNLNM returns a value equal to
the largest equivalence name index. The buffer address field in the
item descriptor is the address of a longword in which $TRNLNM writes
this value. If the logical name exists but has no equivalence name
(and, therefore, no index value), $TRNLNM returns a value of --1.
LNM$_STRING
Returns the equivalence name string corresponding to the current
LNM$_INDEX value. The buffer address field of the item descriptor
points to a buffer containing this string. The return length address
field of the item descriptor contains an address of a word that
contains the length of this string in bytes. The maximum length of the
equivalence name string is 255 characters.
If an equivalence name does not exist at the current LNM$_INDEX value,
$TRNLNM returns the value 0 in the return length address field of the
item descriptor.
LNM$_TABLE
Returns the name of the table containing the logical name being
translated. The buffer address field of the item descriptor points to
the buffer in which $TRNLNM returns this name. The return length
address field of the item descriptor specifies the address of a word in
which $TRNLNM writes the size of the table name. The maximum length of
the table name is 31 characters.
Description
The Translate Logical Name service returns information about a logical
name. You need read access to a shareable logical name table to
translate a logical name located in that shareable logical name table.
For conventions regarding logical names for process-permanent files,
see the chapter "Logical Name Services" in the HP OpenVMS Programming Concepts Manual.
Required Access or Privileges
Read access is required.
Required Quota
None
Related Services
$ADJSTK, $ADJWSL, $CRELNM, $CRELNT, $CRETVA, $CRMPSC, $DELLNM, $DELTVA,
$DGBLSC, $EXPREG, $LCKPAG, $LKWSET, $MGBLSC, $PURGWS, $SETPRT, $SETSTK,
$SETSWM, $ULWSET, $UPDSEC, $UPDSECW
Condition Values Returned
SS$_NORMAL
|
The service completed successfully. An equivalence name for the logical
name has been found.
|
SS$_ACCVIO
|
The service cannot access the location or locations specified by one or
more arguments.
|
SS$_BADPARAM
|
One or more arguments have an invalid value, or a logical name table
name or logical name was not specified. Or, an item list containing
both 32-bit and 64-bit item list entries was found.
|
SS$_BUFFEROVF
|
The service completed successfully. The buffer length field in an item
descriptor specified an insufficient value, so the buffer was not large
enough to hold the requested data.
|
SS$_IVLOGNAM
|
The
tabnam argument or
lognam argument specifies a string whose length is not
in the required range of 1 through 255 characters.
|
SS$_IVLOGTAB
|
The
tabnam argument does not specify a logical name table.
|
SS$_NOLOGNAM
|
The logical name was not found in the specified logical name table or
tables.
|
SS$_NOPRIV
|
The caller lacks the necessary privilege to access the specified name.
|
SS$_TOOMANYLNAM
|
Logical name translation of the table name exceeded the allowable depth
(10 translations).
|
$TRUNCATE
The Truncate service shortens a sequential file.
For additional information about this service, see the OpenVMS Record Management Services Reference Manual.
$TSTCLUEVT
Simulates the occurrence of a cluster configuration event to test the
functionality of the notification AST.
Format
SYS$TSTCLUEVT [handle] ,[acmode] ,[event]
C Prototype
int sys$tstcluevt (unsigned int *handle, unsigned int acmode, unsigned
int event);
Arguments
handle
OpenVMS usage: |
identifier |
type: |
quadword (unsigned) |
access: |
read only |
mechanism: |
by reference |
Identification of the asynchronous system trap (AST) to be tested. The
handle argument uniquely identifies the request and is
returned when the $SETCLUEVT service is called.
acmode
OpenVMS usage: |
access_mode |
type: |
longword (unsigned) |
access: |
read only |
mechanism: |
by value |
Access mode for which a configuration event AST is to be triggered. The
acmode argument is a longword containing the access
mode.
Each access mode has a symbolic name. The $PSLDEF macro defines the
following symbols for the four access modes:
Symbol |
Access Mode |
PSL$C_KERNEL
|
Kernel
|
PSL$C_EXEC
|
Executive
|
PSL$C_SUPER
|
Supervisor
|
PSL$C_USER
|
User
|
event
OpenVMS usage: |
event_code |
type: |
longword (unsigned) |
access: |
read only |
mechanism: |
by value |
Event code indicating the type of configuration for which an AST is to
be triggered.
Each event type has a symbolic name. The $CLUEVTDEF macro defines the
following symbolic names:
Symbolic Name |
Description |
CLUEVT$C_ADD
|
One or more OpenVMS nodes have been added to the OpenVMS Cluster system.
|
CLUEVT$C_REMOVE
|
One or more OpenVMS nodes have been removed from the OpenVMS Cluster
system.
|
Description
The Test Cluster Event service simulates the occurrence of a cluster
configuration event to test the functionality of the notification ASTs.
The service allows an application to test itself and must be issued
from within the same process as the application being tested.
$TSTCLUEVT does not affect other processes in the cluster.
The service will allow one specific AST to be fired via the
handle argument, or all ASTs for a specific
configuration event via the event argument. Specifying
both the event and the handle
arguments will return an error.
If the handle argument is specified, the value of the
acmode argument must not be greater than the access
mode of the caller and must match the mode specified when the
$SETCLUEVT service was called.
If the event argument is specified, those ASTs that
match the value specified in the acmode argument, or
that match the caller's mode, will be triggered.
Required Access or Privileges
None
Required Quota
None
Related Services
$CLRCLUEVT, $SETCLUEVT
Condition Values Returned
SS$_NORMAL
|
The service completed successfully.
|
SS$_BADPARAM
|
There is an unsatisfactory combination of event and handle parameters,
or the event was specified incorrectly.
|
SS$_NOSUCHOBJ
|
No request was found that matches the description supplied.
|
|