23 - get information about file.

Usage:

mme    gefsye
zero   CC,ARGLIST
zero   23,BUFFER

Where:

CC
is either zero or a courtesy call address.
ARGLIST
points to a list of arguments for this call. The format of this list is described below.
BUFFER
points to a buffer that can be used in this operation. This buffer should be 355 words long.

Description:

This version of MME GEFSYE obtains information about a particular file. The argument list indicated by ARGLIST has the form

zero    RETURN_WORD,USERID
zero    FILE_NAME,INFO_PTR
where
RETURN_WORD
points to two words where MME GEFSYE can return a status. MME GEFSYE will initialize these words to zeroes. When MME GEFSYE returns, the first word will contain
Bit 0      -- 1 to indicate completion
    1-11   -- error code, or 0 for success
    18-35  -- pointer to additional error info
              (if any)
See "expl mme gefsye" for a list of common error codes.

When MME GEFSYE returns, the second word will contain

Bit 0     -- 0 if the file has not been written
             to, 1 otherwise
    1-35  -- user-supplied info for the file
USERID
points to two words containing the userid under which the program is operating (in BCD characters).
FILE_NAME
points to an area of memory containing the name of the file for which information is to be obtained. This consists of four word chunks: the first two words of each chunk gives a component of a pathname (first chunk the userid, next chunk the name of the first catalog, and so on); the last two words of each chunk gives a password. Each component name and password is given as 1-12 BCD characters, left-justified and padded on the right with blanks. If a component has no password, the password part of the chunk is all blanks.

After the last pathname chunk comes a word containing the value -1.

INFO_PTR
should be zero when MME GEFSYE is called. When MME GEFSYE returns, it will point to a block of information about the given file. This block will be inside the 355-word buffer indicated by BUFFER. Below we list the contents of the information block.
Word 0:
  Bits 0-5:  device class code
      6-35:  serial number of last save of file
 
Word 1:
      0-35:  file creation date, BCD MMDDYY
 
Word 2:
      0-35:  date of last allocation to file,
             BCD MMDDYY
 
Word 3:
      0-35:  date of last change, BCD MMDDYY
 
Word 4:
      0-17:  time of last change (in units of
             0.512 seconds since midnight)
     18-35:  number of allocations to file
             (modulo 262144)
 
Word 5:
      0-17:  low-order 18 bits of current file
             size (in links)
     18-35:  max file size (zero => unlimited)
 
Word 6:
       0-8:  number of writers allocated
      9-17:  number of readers allocated
     18-27:  general permissions
        28:  specific permissions present, if on
        29:  timed passwords present, if on
        30:  file definition catalog continuation
             if on
        31:  one or more space descriptors marked
             defective, if on
     32-35:  high-order four bits of current file
             size
 
Word 7:
         0:  reserved
         1:  if on, file is random
         2:  if on, file is ASCII
         3:  if on, IDS/I file
         4:  if on, max file size is in llinks;
             if off, size is given in links
         5:  if on, file on non-structured device
             (reel or pack)
         6:  reserved
         7:  if on, attributes present
         8:  if on, user-specified info present
         9:  if on, user-specified class of
             device for original file
     10-11:  access mode
                 0, normal
                 1, read while write
                 2, reserved
                 3, concurrent
        12:  if on, abort lock set by MME
        13:  if on, abort lock on
        14:  if on, security lock on
        15:  if on, restore lock on
        16:  if on, file in recovery allocation
        17:  if on, file was saved while write busy
        18:  if on, RDERR/DUP
        19:  if on, ABORT/ARCHIVE/
        20:  if on, RDERR/JOURNAL/
        21:  reserved
        22:  if on, INCRSAVE/NO
        23:  if on, ABORT/LOCK/
        24:  if on, ACCESS/MONITOR/
        25:  if on, VERIFY/YES/
        26:  if on, ABORT/ROLLBACK/
        27:  if on, file changed since last save
        28:  if on, AUDIT/DENIED/
        29:  if on, AUDIT/ALL/
     30-35:  number of sectors in page
             (zero => not defined)
Words 8-33 show mounting information. If the device is non-structured, these words have the following format.
Words 8-9:    volume name
Word 10:
   Bits 0-5:  volume type
       6-35:  volume serial number
Word 11:
        0-5:  density code (if volume is tape)
       6-35:  reserved
If the device is structured, words 8-33 show mapping information. The first descriptor describes the device, the remainder may be space or device; the first 26 descriptors are given. A device descriptor has the form
Bits 0-3:  0101 binary to indicate device descriptor
     4-5:  reserved
    6-35:  pack serial number
                or
           reserved (6-17), device name (18-35)
A space descriptor has the form
Bits 0-1:  10 normally; last is 00
       2:  1 if defective
    3-17:  number of llinks
   18-35:  starting llink number

Notes:

If the USERID given is not the same as the file's creator, the program will be given a "permission denied" error.

See Also:

expl mme gefsye 9

Copyright © 2000, Thinkage Ltd.