Updated: 11 December 1998 |
OpenVMS System Services Reference Manual
Previous | Contents | Index |
The protection mask consists of four 4-bit fields. Each field grants or denies read, write, logical, and physical access to a category of users. Cleared bits grant access; set bits deny access. The following diagram depicts the structure of the protection mask.
If you do not specify MNT$_VPROT or specify it as the value 0, the volume receives the protection that it was assigned when it was initialized. To specify MNT$_VPROT for a Files-11 structured volume, the caller must either own the volume or have VOLPRO privilege.
When a file is opened, the file system uses the mapping pointers to access the data in the file. To specify MNT$_WINDOW, you need OPER privilege.
The Mount Volume service mounts a tape, disk volume, or volume set and specifies options for the mount operation.When a subprocess mounts a private volume without explicitly allocating the device, the master process of the job becomes the owner of this device. This provision is necessary because the subprocess can be deleted and the volume should remain privately mounted for this job.
When a subprocess explicitly allocates a device and then mounts a private volume on this device, this subprocess retains the device ownership. In this case, only subprocesses of the device owner, and processes with SHARE privilege, have access to the device.
The $MOUNT service uses the following system resources to mount volumes with group or systemwide access allowed:
- Nonpaged pool
- Paged pool
When $MOUNT mounts a disk volume, the logical name DISK$volume-label is always created. If you specify a logical name in the mount request that is different from DISK$volume-label, there will be two logical names associated with the device.
If the logical name of a volume is in a process-private table, then the name is not deleted when the volume is dismounted.
To mount a volume on a device, you must have read, write, or control access to that device.
To mount a particular volume, the caller must either own or have privilege to access the specified volume or volumes. The privileges required depend on the operation and are listed with the item codes that specify the operation.
The calling process must have TMPMBX or PRMMBX privilege to perform an operator-assisted mount.
SECURITY privilege is required to enable protected subsystems.
None
$ALLOC, $ASSIGN, $BRKTHRU, $BRKTHRUW, $CANCEL, $CREMBX, $DALLOC, $DASSGN, $DELMBX, $DEVICE_SCAN, $DISMOU, $GETDVI, $GETDVIW, $GETMSG, $GETQUI, $GETQUIW, $INIT_VOL, $PUTMSG, $QIO, $QIOW, $SNDERR, $SNDJBC, $SNDJBCW, $SNDOPR
SS$_NORMAL The service completed successfully. SS$_ACCVIO The item list or an address specified in the item list cannot be accessed. SS$_BADPARAM A buffer length of 0 was specified with a nonzero item code; an illegal item code was specified; or no device was specified. SS$_NOGRPNAM The caller does not have GRPNAM privilege. SS$_NOHOMEBLK Files-11 home block not found on volume. SS$_NOOPER The caller does not have the required OPER privilege. SS$_NOPRIV The caller does not have sufficient privilege to access a specified volume. SS$_NOSUCHDEV The specified device does not exist on the host system. SS$_NOSYSNAM The caller does not have SYSNAM privilege.
The $MOUNT service can also return a condition value that is specific to the Mount utility. The symbolic definition macro $MOUNDEF defines these condition values.
Allows installations to provide their own routine to interpret and output the accessibility field in the VOL1 and HDR1 labels of an ANSI labeled magnetic tape.
SYS$MTACCESS lblnam ,[uic] ,[std_version] ,[access_char] ,[access_spec] ,type
int sys$mtaccess ( unsigned int *lblnam, unsigned int uic, unsigned int std_version, unsigned int access_char, unsigned int access_spec, unsigned int type);
lblnam
OpenVMS usage: address type: longword (unsigned) access: read only mechanism: by reference
ANSI label to be processed. The lblnam argument is the address of a longword containing the label. On input, the label passed is either the VOL1 or HDR1 label read from the magnetic tape; on output of labels, the value of this field is 0. The type of label passed is determined by type.uic
OpenVMS usage: uic type: longword (unsigned) access: read only mechanism: by value
UIC of the user performing the operation. The uic argument is a longword containing the UIC.std_version
OpenVMS usage: longword_unsigned type: longword (unsigned) access: read only mechanism: by value
Decimal equivalent of the ANSI standard version read from the VOL1 label. The std_version argument is a longword containing the standard version number.access_char
OpenVMS usage: longword_unsigned type: longword (unsigned) access: read only mechanism: by value
Accessibility character specified by the user. The access_char argument is a byte containing the accessibility character used for the output of labels.access_spec
OpenVMS usage: longword_unsigned type: longword (unsigned) access: read only mechanism: by value
Value specifying whether the accessibility character passed in access_char was specified by the user. The access_spec argument is a byte containing one of the following values.
Value Meaning MTA$K_CHARVALID Yes MTA$K_NOCHAR No This argument is used only for the output of labels.
type
OpenVMS usage: longword_unsigned type: longword (unsigned) access: read only mechanism: by value
Type of accessibility field to process. The type argument is a byte containing one of the following values.
Value Meaning MTA$K_INVOL1 Input a VOL1 label MTA$K_INHDR1 Input a HDR1 label MTA$K_OUTVOL1 Output a VOL1 label MTA$K_OUTHDR1 Output a HDR1 label
The Magnetic Tape Accessibility service allows installations to provide their own routine to interpret and output the accessibility field in the VOL1 and HDR1 labels of ANSI labeled magnetic tapes. The installation can override the default routine by providing an MTACCESS.EXE executive loaded image.The default installation routine first checks the ANSI standard version of the label. For magnetic tapes with a version number of 3 or less, the routine outputs either a blank or the character you specified. On input of these magnetic tapes, the routine checks for a blank and returns the value SS$_FILACCERR if the field is not blank.
For magnetic tapes with a version number greater than 3, the routine outputs either the character specified by the access_char argument or an ASCII 1 if no character was specified. On input of these magnetic tapes, the routine checks for a blank. If the field is blank, R0 is set to 0. In that case, you are given full access and protection is not checked. If the field contains an ASCII 1, and the VOL1 Implementation Identifier field contains the system code, R0 is set to SS$_NORMAL. In that case, the protection is checked.
If the field is not blank and does not contain an ASCII 1, R0 is set to SS$_FILACCERR, which forces you to override accessibility checking and allows the magnetic tape file system to check protection.
The following table summarizes the results of label input check.
Contents of R0 Result SS$_NORMAL Check the protection on the magnetic tape. 0 Give the user full access. Protection is not checked. SS$_FILACCERR Check for explicit override, then check protection. Note that the default accessibility routine does not output SS$_NOVOLACC or SS$_NOFILACC. These statuses are included for the installation's use, and the magnetic tape file system handles these cases.
The magnetic tape file system calls $MTACCESS to process the accessibility field in the VOL1 and HDR1 labels. After a call to the system service, the magnetic tape file system checks that the installation did not move the magnetic tape. If the magnetic tape was moved, the magnetic tape file system completes the current operation with an SS$_TAPEPOSLOST error. Finally, it processes the remainder of the label according to the status returned by $MTACCESS.
Because accessibility is an installation-provided routine, the operating system cannot determine which users have the authority to override the processing of this field. However, the magnetic tape file system allows only operator class users to deal with blank magnetic tapes so that a user must have both OPER and VOLPRO privileges to initialize or mount blank magnetic tapes.
None
$ADD_HOLDER, $ADD_IDENT, $ASCTOID, $CHANGE_ACL, $CHECK_ACCESS, $CHKPRO, $CREATE_RDB, $ERAPAT, $FIND_HELD, $FIND_HOLDER, $FINISH_RDB, $FORMAT_ACL, $FORMAT_AUDIT, $GRANTID, $HASH_PASSWORD, $IDTOASC, $MOD_HOLDER, $MOD_IDENT, $PARSE_ACL, $REM_HOLDER, $REM_IDENT, $REVOKID
SS$_NORMAL The service completed successfully. SS$_FILACCERR The accessibility characteristic in the HDR1 label is not blank and you cannot access the file without overriding the field. SS$_NOFILACC The user has no access to the file. SS$_NOVOLACC The user has no access to the volume.
Converts an absolute or delta time from 64-bit system time format to binary integer date and time values.On Alpha systems, this service accepts 64-bit addresses.
SYS$NUMTIM timbuf ,[timadr]
int sys$numtim (unsigned short int timbuf [7], struct _generic_64 *timadr);
timbuf
OpenVMS usage: vector_word_unsigned type: word (unsigned) access: write only mechanism: by 32- or 64-bit reference (Alpha) mechanism: by 32-bit reference (VAX)
Buffer into which $NUMTIM writes the converted date and time. The numtim argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a 7-word structure. The following diagram depicts the fields in this structure.
If the timadr argument specifies a delta time, $NUMTIM returns the value 0 in the year since 0 and month of year fields. It returns in the day of month field the number of days specified by the delta time.
OpenVMS usage: | date_time |
type: | quadword |
access: | read only |
mechanism: | by 32- or 64-bit reference (Alpha) |
mechanism: | by 32-bit reference (VAX) |
If you do not specify timadr, $NUMTIM returns the current system time.
If timadr specifies the value 0, $NUMTIM returns the base date (November 17, 1858).
SS$_NORMAL The service completed successfully. SS$_ACCVIO The 64-bit time value cannot be read by the caller, or the buffer cannot be written by the caller. SS$_IVTIME The specified delta time is equal to or greater than 10,000 days.
Converts an absolute 128-bit binary time into its numeric components. The numeric components are returned in local time.On Alpha systems, this service accepts 64-bit addresses.
SYS$NUMUTC timbuf ,[utcadr]
int sys$numutc (unsigned short int timbuf [13], unsigned int *utcadr [4]);
timbuf
OpenVMS usage: vector_word_unsigned type: word access: write only mechanism: by 32- or 64-bit reference (Alpha) mechanism: by 32-bit reference (VAX)
Buffer into which $NUMUTC writes the converted date and time. The timbuf argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a 13-word structure containing time, inaccuracy of time, and time differential factor. The time differential factor encoded in the 128-bit buffer is used to convert the UTC to its numerical components. Negative values in the inaccuracy field indicate an infinite inaccuracy.The following diagram depicts the fields in this structure.
OpenVMS usage: | coordinated universal time |
type: | utc_date_time |
access: | read only |
mechanism: | by 32- or 64-bit reference (Alpha) |
mechanism: | by 32-bit reference (VAX) |
The utcadr argument is optional; if it is not used, $NUMUTC will use the current time.
SS$_NORMAL The service completed successfully. SS$_INVTIME The 128-bit UTC time is not valid.
Parses the specified text string and converts it to the binary representation for an access control entry (ACE).
SYS$PARSE_ACL aclstr ,aclent ,[errpos] ,[accnam] ,[nullarg]
int sys$parse_acl void *aclstr, void *aclent, unsigned short int *errpos, void *accnam, int (*routin)(void)
;)
aclstr
OpenVMS usage: char_string type: character-coded text string access: read only mechanism: by descriptor--fixed-length string descriptor
Formatted ACE that is parsed when $PARSE_ACL completes execution. The aclstr argument is the address of a string descriptor pointing to the text string to be parsed.aclent
OpenVMS usage: char_string type: character-coded text string access: write only mechanism: by descriptor--fixed-length string descriptor
Description of the ACE that is parsed when $PARSE_ACL completes execution. The aclent argument is the address of a descriptor pointing to the buffer in which the ACE is written. The first byte of the buffer contains the length of the ACE; the second byte contains a value that identifies the type of ACE, which in turn defines the format of the ACE. For information about the ACE types and their associated formats, see $FORMAT_ACL.errpos
OpenVMS usage: word_unsigned type: word (unsigned) access: write only mechanism: by reference
Number of characters from aclstr processed by $PARSE_ACL. The errpos argument is the address of a word that receives the number of characters actually processed by the service. If the service fails, this count points to the failing point in the string.accnam
OpenVMS usage: access_bit_names type: longword (unsigned) access: read only mechanism: by reference
Names of the bits in the access mask when $PARSE_ACL is executing. The accnam argument is the address of an array of 32 quadword descriptors that define the names of the bits in the access mask. Each element points to the name of a bit. The first element names bit 0, the second element names bit 1, and so on.You can call LIB$GET_ACCNAM to retrieve the access name table for the class of object whose ACL is to be formatted. If you omit accnam, the following names are used.
Bit Name Bit 0 READ Bit 1 WRITE Bit 2 EXECUTE Bit 3 DELETE Bit 4 CONTROL Bit 5 BIT_5 Bit 6 BIT_6 .
.
.Bit 31 BIT_31 nullarg
OpenVMS usage: null_arg type: longword (unsigned) access: read only mechanism: by value
Placeholding argument reserved to Compaq.
The Parse Access Control List Entry service parses the specified text string and converts it to the binary representation for an access control entry (ACE).None
None
$ADD_HOLDER, $ADD_IDENT, $ASCTOID, $CHANGE_ACL, $CHECK_ACCESS, $CHKPRO, $CREATE_RDB, $ERAPAT, $FIND_HELD, $FIND_HOLDER, $FINISH_RDB, $FORMAT_ACL, $FORMAT_AUDIT, $GRANTID, $HASH_PASSWORD, $IDTOASC, $MOD_HOLDER, $MOD_IDENT, $MTACCESS, $REM_HOLDER, $REM_IDENT, $REVOKID
SS$_NORMAL The service completed successfully. SS$_ACCVIO The string or its descriptor cannot be read by the caller; the buffer descriptor cannot be read by the caller; the buffer cannot be written by the caller; or the buffer is too small to hold the ACL entry. SS$_IVACL The format of the access control list entry is not valid. SS$_NOSUCHID The specified identifier does not exist in the rights database.
Previous | Next | Contents | Index |
Copyright © Compaq Computer Corporation 1998. All rights reserved. Legal |
4527PRO_068.HTML
|