  | 
		
HP OpenVMS System Services Reference Manual
 
 
If you do not specify MNT$_RECORDSIZ, the record size is assumed to be 
equal to the block size.
 MNT$_SHAMEM
Specifies the name of a physical device to be mounted into a shadow 
set. The MNT$_SHAMEM descriptor is a 1- to 64-character string 
containing the device name. The string can be a physical device name or 
a logical name; if it is a logical name, it must translate to a 
physical device name. An item list must contain at least one item 
descriptor specifying a member; this item descriptor must appear after 
the MNT$_SHANAM item descriptor.
Volume Shadowing for OpenVMS automatically performs a copy or a merge 
operation, if necessary, when it mounts the disk into the shadow set.
 MNT$_SHANAM
Specifies the name of the virtual unit to be mounted. The buffer is a 
1- to 64-character string containing the device name. The virtual unit 
name can be a logical name; if it is a logical name, it must translate 
to a virtual unit name.
Because every shadow set is represented by a virtual unit, you must 
include at least one MNT$_SHANAM item descriptor in the item list that 
you pass to $MOUNT to create and mount the shadow set. If you are 
mounting a volume set containing more than one shadow set, you must 
include one MNT$_SHANAM item descriptor for each virtual unit included 
in the volume set.
 
The relative position of the item descriptors in the item list 
determines the membership of the shadow set. That is, it indicates 
which members should be bound to a specific virtual unit to form the 
shadow set. You must first specify the virtual unit by using the 
MNT$_SHANAM item code. Then, you can specify any number of members that 
are to be represented by that virtual unit by using one of the 
following item codes: MNT$_SHAMEM, MNT$_SHAMEM_COPY, or 
MNT$_SHAMEM_MGCOPY. If you specify one shadow set and want to specify a 
second, specify a second virtual unit item descriptor. The members you 
specify subsequently are bound to the shadow set represented by the 
virtual unit specified in the second virtual unit item descriptor.
 MNT$_UCS
Specifies a descriptor containing a Universal Character Sequence (UCS) 
defined by ISO 2022 and used when mounting an ISO 9660 CD-ROM. For more 
information, see the HP OpenVMS System Manager's Manual.
MNT$_UNDEFINED_FAT
Specifies the default file attributes to be used for the records on ISO 
9660 media for which no record format has been specified.
The buffer contains a 32-bit structure that defines a file's record 
format, record attributes, and maximum record size.
 
The following diagram depicts the structure of the Undefined File 
Attributes buffer:
  
 
The following table defines the buffer fields:
 
  
    | Buffer Field  | 
    Definition  | 
   
  
    | 
      UNFAT$W_MRS
     | 
    
      Maximum record size; specifies the maximum record size for all records 
      in a file: 0 to 32767. Applies only to FIXED or STREAM formats.
     | 
   
  
    | 
      UNFAT$B_RAT
     | 
    
      Record attributes; specifies the attributes for all records in a file: 
      NONE, CR, FTN, PRN, NOBKS. Applies only to non-STREAM record formats.
     | 
   
  
    | 
      UNFAT$B_RFM
     | 
    
      Record format; specifies the format for all records in a file: FIXED, 
      VARIABLE, STREAM, STREAM_LF, STREAM_CR, LSB_VARIABLE, or MST_VARIABLE.
     | 
   
 
MNT$_VOLNAM
Specifies the name of the volume to be mounted on the device. The 
number of characters allowed in a volume name depends on the type of 
device, as follows:
  
    | Device Type  | 
    Number of Characters in Label  | 
   
  
    | 
      Magnetic tape
     | 
    
      0--6
     | 
   
  
    | 
      Files-11 disk
     | 
    
      1--12
     | 
   
  
    | 
      ISO 9660 disk
     | 
    
      1--32
     | 
   
 
The operating system requires disk volume labels to be unique in the 
first 12 characters within a given domain.
 
The MNT$_VOLNAM item code can appear more than once in an item list; it 
appears more than once when a volume set is being mounted because, in 
this case, one volume name is given to each volume in the volume set.
 
When a disk volume set is being mounted, you must specify MNT$_DEVNAM 
and MNT$_VOLNAM once for each volume of the volume set. The $MOUNT 
service mounts the volume specified by the first MNT$_VOLNAM item code 
on the device specified by the first MNT$_DEVNAM item code in the item 
list; it mounts the volume specified by the second MNT$_VOLNAM code on 
the device specified by the second MNT$_DEVNAM code, and so on for all 
specified volumes and devices. Thus, there must be an equal number of 
these two item codes in the item list.
 
When a tape volume set is being mounted, the number of MNT$_DEVNAM item 
codes specified need not be equal to the number of MNT$_VOLNAM item 
codes specified, because more than one volume can be mounted on the 
same device.
 MNT$_VOLSET
Specifies the name of a volume set. The buffer must contain a character 
string from 1 to 12 alphanumeric characters, which is the volume set 
name.
An ISO 9660 volume set name can be from 1 to 128 characters in length.
 
Volume set names must be unique in the first 12 characters. In 
addition, if the first 12 characters of the volume set name are the 
same as the first 12 characters of any volume label, a lock manager 
deadlock will occur. To avoid this problem, you must override either 
the volume label (by using the MNT$_VOLNAM item code) or the volume set 
name (by using the MNT$_VOLSET item code).
 
When you specify MNT$_VOLSET, volumes specified by the MNT$_VOLNAM item 
code are bound into a new volume set or added to an existing volume 
set, depending on whether the name specified by MNT$_VOLSET is a new or 
already existing name.
 
When you specify MNT$_VOLSET to add volumes to an existing volume set, 
the root volume (RVN1) must either (1) already be mounted or (2) be 
specified first (by the MNT$_DEVNAM and MNT$_VOLNAM item codes) in the 
item list.
 
When you specify MNT$_VOLSET to create a new volume set, the first 
volume specified (by the MNT$_DEVNAM and MNT$_VOLNAM item codes) in the 
item list becomes the root volume.
 MNT$_VPROT
Specifies the protection to be assigned to the volume. The buffer must 
contain a longword protection mask, which specifies the four types of 
access allowed to the four categories of user.
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.
 MNT$_WINDOW
Specifies the number of mapping pointers to be allocated for file 
windows. The buffer must contain a longword value in the range 7 to 80. 
This value overrides the default value that was applied when the volume 
was initialized. The MNT$_WINDOW item code applies only to disks.
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.
  
Description
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:
 
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.
 
Required Access or Privileges
 
 
To mount a volume on a device, you must have read 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.
 
Required Quota
 
 
None
 
Related Services
 
 
$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
  
 
Condition Values Returned
  
    | 
      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.
  
$MTACCESS
 
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.
 
 
Format
SYS$MTACCESS lblnam ,[uic] ,[std_version] ,[access_char] ,[access_spec] 
,type
  
 
C Prototype
int sys$mtaccess (unsigned int *lblnam, unsigned int uic, unsigned int 
std_version, unsigned int access_char, unsigned int access_spec, 
unsigned int type);
  
 
Arguments
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
     | 
   
 
 
 
Description
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.
 
Required Access or Privileges
 
 
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.
 
Required Quota
 
 
None
 
Related Services
 
 
$ADD_HOLDER, $ADD_IDENT, $ASCTOID, $CHECK_ACCESS, $CHKPRO, $CREATE_RDB, 
$ERAPAT, $FIND_HELD, $FIND_HOLDER, $FINISH_RDB, $FORMAT_ACL, 
$FORMAT_AUDIT, $GET_SECURITY, $GRANTID, $HASH_PASSWORD, $IDTOASC, 
$MOD_HOLDER, $MOD_IDENT, $PARSE_ACL, $REM_HOLDER, $REM_IDENT, $REVOKID, 
$SET_SECURITY
  
 
Condition Values Returned
  
    | 
      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.
     | 
   
 
 
 
$NUMTIM
 
Converts an absolute or delta time from 64-bit system time format to 
binary integer date and time values.
On Alpha and Integrity server systems, this service accepts 64-bit 
addresses.
  
 
Format
SYS$NUMTIM timbuf ,[timadr]
  
 
C Prototype
int sys$numtim (unsigned short int timbuf [7], struct _generic_64 
*timadr);
  
 
Arguments
timbuf
 
  
    | OpenVMS usage: | 
    vector_word_unsigned | 
   
  
    | type: | 
    word (unsigned) | 
   
  
    | access: | 
    write only | 
   
  
    | mechanism:  | 
    by 32- or 64-bit reference (Alpha and Integrity 
    servers) | 
   
 
 
Buffer into which $NUMTIM writes the converted date and time. The 
timbuf argument is the 32- or 64-bit address (on Alpha 
and Integrity server 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.
 timadr
 
  
    | OpenVMS usage: | 
    date_time | 
   
  
    | type: | 
    quadword  | 
   
  
    | access: | 
    read only | 
   
  
    | mechanism:  | 
    by 32- or 64-bit reference (Alpha and Integrity 
    servers) | 
   
 
 
The 64-bit time value to be converted. The timadr 
argument is the 32- or 64-bit address (on Alpha and Integrity server 
systems) of a quadword containing this time. A positive-time value 
represents an absolute time, while a negative time value indicates a 
delta time.
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).
  
Condition Values Returned
  
    | 
      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.
     | 
   
 
 
 
$NUMUTC
 
Converts an absolute 128-bit binary time into its numeric components. 
The numeric components are returned in local time.
On Alpha and Integrity server systems, this service accepts 64-bit 
addresses.
  
 
Format
SYS$NUMUTC timbuf ,[utcadr]
  
 
C Prototype
int sys$numutc (unsigned short int timbuf [13], unsigned int *utcadr 
[4]);
  
 
Arguments
timbuf
 
  
    | OpenVMS usage: | 
    vector_word_unsigned | 
   
  
    | type: | 
    word | 
   
  
    | access: | 
    write only | 
   
  
    | mechanism:  | 
    by 32- or 64-bit reference (Alpha and Integrity 
    servers) | 
   
 
 
Buffer into which $NUMUTC writes the converted date and time. The 
timbuf argument is the 32- or 64-bit address (on Alpha 
and Integrity server 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:
  
 
 
utcadr
 
  
    | OpenVMS usage: | 
    coordinated universal time  | 
   
  
    | type: | 
    utc_date_time | 
   
  
    | access: | 
    read only | 
   
  
    | mechanism:  | 
    by 32- or 64-bit reference (Alpha and Integrity 
    servers) | 
   
 
 
The 128-bit UTC time value to be converted.
The utcadr argument is optional; if it is not used, 
$NUMUTC will use the current time.
  
Condition Values Returned
  
    | 
      SS$_NORMAL
     | 
    
      The service completed successfully.
     | 
   
  
    | 
      SS$_INVTIME
     | 
    
      The 128-bit UTC time is not valid.
     | 
   
 
 
  
 |