HP OpenVMS Systems Documentation
HP OpenVMS Utility Routines Manual
Order Number: BA554-90011
This manual describes the OpenVMS utility routines, a set of routines that provide a programming interface to various OpenVMS utilities.
Revision/Update Information: This manual supersedes the HP OpenVMS Utility Routines Manual, OpenVMS Alpha Version 7.3.
OpenVMS I64 Version 8.3
© Copyright 2006 Hewlett-Packard Development Company, L.P.
Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license.
The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein.
Intel and Itanium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
The HP OpenVMS documentation set is available on CD.
This manual is intended for programmers who want to invoke and use the functions provided by OpenVMS utilities.
Chapter 1 introduces the utility routines and lists the documentation format used to describe each set of utility routines, as well as the individual routines in each set. Each subsequent chapter contains an introduction to a set of utility routines, a programming example to illustrate the use of the routines in the set, and a detailed description of each routine.
This manual presents the following utility routine sets:
For information about HP OpenVMS products and services, visit the following World Wide Web address:
HP welcomes your comments on this manual. Please send comments to either of the following addresses:
How To Order Additional Documentation
For information about how to order additional documentation, visit the following World Wide Web address:
The following conventions may be used in this manual:
|Utility or Editor||Utility Routines|
|Access control list editor||ACL editor routine|
|Backup application programming interface||Backup API routine|
|Command Definition Utility||CLI routines|
|Common File Qualifier routines||UTIL$CQUAL routines|
|Convert and Convert/Reclaim utilities||CONVERT routines|
|Data Compression/Expansion (DCX) facility||DCX routines|
|DEC Text Processing Utility||DECTPU routines|
|Digital Distributed Time Service (DECdts) portable applications programming interface||DECdts API routines|
|EDT editor||EDT routines|
|Encryption routines||ENCRYPT routines|
|File Definition Language facility||FDL routines|
|Librarian utility||LBR routines|
|Lightweight Directory Access Protocol (LDAP) application programming interface||LDAP API routines|
|LOGINOUT callout routines||LGI routines|
|Mail utility||MAIL routines|
|National Character Set utility||NCS routines|
|Print Symbiont Modification (PSM) facility||PSM routines|
|Symbiont/Job Controller Interface facility||SMB routines|
|Sort/Merge utility||SOR routines|
|Traceback facility||TBK routines|
When a set of utility routines performs functions that you cannot perform by invoking a utility, the functions provided by that set of routines is termed a facility. The following facilities have no other user interface except the programming interface provided by the utility routines described in this manual:
|Data Compression/Expansion facility||DCX routines|
|Print Symbiont Modification facility||PSM routines|
|Symbiont/Job Controller Interface facility||SMB routines|
|Traceback faciltiy||TBK routines|
Like all other system routines in the OpenVMS environment, the utility routines described in this manual conform to the HP OpenVMS Calling Standard. Note that for stylistic purposes, the calling syntax illustrated for routines documented in this manual is consistent. However, you should consult your programming language documentation to determine the appropriate syntax for calling these routines.
Each chapter of this book documents one set of utility routines. Each chapter has the following major components, documented as a major heading:
This chapter describes the access control list editor (ACL editor)
routine, ACLEDIT$EDIT. User-written applications can use this callable
interface of the ACL editor to manipulate access control lists (ACLs).
2.1 Introduction to the ACL Editor Routine
The ACL editor is a utility that lets you create and maintain access control lists. Using ACLs, you can limit access to the following protected objects available to system users:
Note that the application program should declare referenced constants and return status symbols as external symbols; these symbols will be resolved upon linking with the utility shareable image.
See the HP OpenVMS Programming Concepts Manual for fundamental conceptual information on the
creation, translation, and maintenance of access control entries (ACEs).
2.2 Using the ACL Editor Routine: An Example
Example 2-1 shows a VAX BLISS program that calls the ACL editor routine.
|Example 2-1 Calling the ACL Editor with a VAX BLISS Program|
MODULE MAIN (LANGUAGE (BLISS32), MAIN = STARTUP) = BEGIN LIBRARY 'SYS$LIBRARY:LIB'; ROUTINE STARTUP = BEGIN LOCAL STATUS, ! Routine return status ITMLST : BLOCKVECTOR [6, ITM$S_ITEM, BYTE]; ! ACL editor item list EXTERNAL LITERAL ACLEDIT$V_JOURNAL, ACLEDIT$V_PROMPT_MODE, ACLEDIT$C_OBJNAM, ACLEDIT$C_OBJTYP, ACLEDIT$C_OPTIONS; EXTERNAL ROUTINE ACLEDIT$EDIT : ADDRESSING_MODE (GENERAL), ! Main routine CLI$GET_VALUE, ! Get qualifier value CLI$PRESENT, ! See if qualifier present LIB$PUT_OUTPUT, ! General output routine STR$COPY_DX; ! Copy string by descriptor ! Set up the item list to pass back to TPU so it can figure out what to do. CH$FILL (0, 6*ITM$S_ITEM, ITMLST); ITMLST[0, ITM$W_ITMCOD] = ACLEDIT$C_OBJNAM; ITMLST[0, ITM$W_BUFSIZ] = %CHARCOUNT ('YOUR_OBJECT_NAME'); ITMLST[0, ITM$L_BUFADR] = $DESCRIPTOR ('YOUR_OBJECT_NAME'); ITMLST[1, ITM$W_ITMCOD] = ACLEDIT$C_OBJTYP; ITMLST[1, ITM$W_BUFSIZ] = 4; ITMLST[1, ITM$L_BUFADR] = UPLIT (ACL$C_FILE); ITMLST[2, ITM$W_ITMCOD] = ACLEDIT$C_OPTIONS; ITMLST[2, ITM$W_BUFSIZ] = 4; ITMLST[2, ITM$L_BUFADR] = UPLIT (1 ^ ACLEDIT$V_PROMPT_MODE OR 1 ^ ACLEDIT$V_JOURNAL); RETURN ACLEDIT$EDIT (ITMLST); END; ! End of routine STARTUP END ELUDOM
This section describes the ACL editor routine.
The ACLEDIT$EDIT routine creates and modifies an access control list (ACL) associated with any protected object.
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
Longword condition value. Most utility routines return a condition value in R0. Condition values that this routine can return are listed under Condition Values Returned.
OpenVMS usage: item_list_3 type: longword (unsigned) access: read only mechanism: by descriptor
Item list used by the callable ACL editor. The item_list argument is the address of one or more descriptors of arrays, routines, or longword bit masks that control various aspects of the editing session.
|ACLEDIT$C_OBJNAM||Specifies the name of the object whose ACL is being edited.|
|ACLEDIT$C_OBJTYP||A longword value that specifies the object type code for the type or class of the object whose ACL is being edited. These type codes are defined in $ACLDEF. The default object type is FILE (ACL$C_FILE).|
Represents a longword bit mask of the various options available to
control the editing session.
|ACLEDIT$C_BIT_TABLE||Specifies a vector of 32 quadword string descriptors of strings that define the names of the bits present in the access mask. (The first descriptor defines the name of bit 0; the last descriptor defines the name of bit 31.) These descriptors are used in parsing or formatting an ACE. The buffer address field of the item descriptor contains the address of this vector.|
A string descriptor that points to the class name of the object whose
ACL is being modified. The following are valid class names:
If both OBJTYP and CLSNAM are omitted, the object is assumed to belong to the FILE class.
Use the ACLEDIT$EDIT routine to create and modify an ACL associated with any security object.
Under normal circumstances, the application calls the ACL editor to modify an object's ACL, and control is returned to the application when you finish or abort the editing session.
If you also want to use a customized version of the ACL editor section file, the logical name ACLEDT$SECTION should be defined. See the HP OpenVMS System Management Utilities Reference Manual for more information.
SS$_NORMAL Normal successful completion. RMS$_xxx See the OpenVMS Record Management Services Reference Manual for a description of OpenVMS RMS status codes. TPU$_xxx See Chapter 8 for a description of the TPU-specific condition values that may be returned by ACLEDIT$EDIT.