VMS Help
System Services, $REGISTRY (Alpha and Integrity servers)
*Conan The Librarian
|
On Alpha and Integrity server systems, interface to the OpenVMS
Registry database server.
The $REGISTRY service allows you to query, update, and set keys,
subkeys, and values in the OpenVMS Registry database.
The $REGISTRY service supports both asynchronous and synchronous
operations. For asynchronous completion, use the Registry
($REGISTRY) system service.
For synchronous completion, use the Registry and Wait
($REGISTRYW) system service. The $REGISTRYW system service is
identical to the $REGISTRY system service, except that $REGISTRYW
returns to the caller after the system completes the requested
operation. For additional information about system service
completion, see the Synchronize ($SYNCH) system service.
This system service is 64-bit compatible.
Format
SYS$REGISTRY [efn] ,func ,0 ,itmlst ,[iosb or iosa_64]
[,astadr or astadr_64] [,astprm or astprm_64]
[,timeout]
C Prototype
int sys$registry (unsigned int efn, unsigned int func, void *,
void *itmlst, struct _iosb *iosb, ...);
efn
OpenVMS usage:ef_number
type: longword (unsigned)
access: read only
mechanism: by value
Number of the event flag to be used by $REGISTRY. If you do not
specify the event flag, the system defaults to event flag 0. The
event flag is initially cleared by $REGISTRY and then set when
the operation completes.
func
OpenVMS usage:function_code
type: longword (unsigned)
access: read only
mechanism: by value
Function code specifying the action that $REGISTRY is to perform.
The func argument is a longword containing this function code.
The function code can contain function modifiers. For more
information on function modifiers, see the Function Modifiers
section.
A single call to $REGISTRY can specify only one function code.
All function codes require additional information to be passed in
the call with the itmlst argument.
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
Item list supplying information that the system will use to
perform the function specified by the func argument.
The itmlst argument is the address of the item list. The item
list consists of one or more sets of item descriptors. Each
descriptor is either an item_list_3 or item_list_64b format.
Some function codes allow you to specify multiple operations in
a single call. In this case, you must place the REG$_SEPARATOR
item code between each set of item codes. Each request, separated
by a REG$_SEPARATOR item code, can contain the item codes in any
order.
You can specify item codes as either input or output parameters.
Input parameters modify functions, set context, or describe
the information to be returned. Output parameters return the
requested information.
For item_list_3 lists, you must terminate the list with a
longword of 0. For item_list_64b lists, you must terminate the
list with a quadword of 0.
To view the item code diagrams and descriptor fields tables, see
the HP OpenVMS System Services Reference Manual.
iosb or iosa_64
OpenVMS usage:status_block
type: buffer
access: write only
mechanism: by reference
Status block to receive the final completion status and
information of the $REGISTRY operation.
If multiple operations are requested for a function code, the
value returned in iosb is either SS$_NORMAL or SS$_REGERROR.
A more specific return status for each operation is returned in
the REG$_RETURNSTATUS item code (if specified).
The iosb argument is the address of the $REGISTRY status block.
To view the diagram, see the HP OpenVMS System Services Reference
Manual.
When $REGISTRY begins execution, it clears the quadword I/O
status block if you specify the iosb argument.
Although the iosb argument is optional, HP strongly recommends
that you specify it for the following reasons:
o If you are using an event flag to signal the completion of
the service, you can test the I/O status block for a condition
value to be sure that the event flag was not set by an event
other than service completion.
o If you are using the $SYNCH system service to synchronize
completion of the service, the I/O status block is a required
argument for $SYNCH.
The condition value returned in R0 and the condition value
returned in the I/O status block provide information about
different aspects of the call to the $REGISTRY service. The
condition value returned in R0 provides information about the
success or failure of the service call itself; the condition
value returned in the I/O status block provides information about
the success or failure of the service operation.
To assess the success or failure of the call to $REGISTRY
accurately, you must first check the condition value returned
in R0. If R0 contains a successful value, you must check the
condition value in the I/O status block.
The following table defines the item descriptor fields:
Descriptor
Field Definition
Status A longword specifying the final status of the
$REGISTRY service. If you request multiple
operations for a function code, the system returns
either SS$_NORMAL or SS$_REGERROR to iosb. This
field is set to 0 (zero) when the operation
begins.
Reserved A reserved longword.
astadr or astadr_64
OpenVMS usage:ast_procedure
type: procedure value
access: call without stack unwinding
mechanism: by reference
AST service routine to be executed when $REGISTRY completes. The
astadr argument is the address of this routine. If you specify
astadr, the AST routine executes at the same access mode as the
caller of the $REGISTRY service.
If the $REGISTRY service is not called successfully (that is,
if it returns an error immediately), the AST routine is not
executed.
astprm or astprm_64
OpenVMS usage:user_arg
type: longword (unsigned)
access: read only
mechanism: by value
AST parameter to be passed to the AST service routine specified
by the astadr argument. The astprm argument specifies this
longword parameter.
timeout
OpenVMS usage:longword_unsigned
type: longword (unsigned)
access: read only
mechanism: by value
Timeout value specifies the number of seconds allotted to
$REGISTRY to perform the request. If the Registry server does
not complete the request within the time you allot, $REGISTRY
returns REG$_NORESPONSE.