Trailing-Edge
-
PDP-10 Archives
-
DEC_CMS-20_V1.0_SRC
-
cms/sources/filusr.req
There are no other files named filusr.req in the archive.
! FILUSR.REQ -- Declarations for the user of the FILOPS module.
!
! COPYRIGHT (C) 1982 BY
! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
!
! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
! TRANSFERRED.
!
! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
! CORPORATION.
!
! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
!
!++
! Facility: CMS Library Processor
!
! Abstract:
!
! This file contains declarations needed by the user of the routines
! declared in FILOPS. For example, there are declarations defining
! the ACCESS_FULLWORD type of block, in which file protection codes are
! represented.
!
! Environment: Transportable
!
! Author: Earl Van Horn Creation Date: December 27, 1979
!
!--
! This file assumes that the declaration
!
! LIBRARY 'XPORT' ;
!
! or equivalent has already appeared in the program.
! The file protection codes for owner, group, or world are given to the PROTEC
! routine as a set of bits in a block called an access fullword. An access
! fullword always fits in a BLISS fullword, so its value can be computed by
! an expression that ORs the desired one bits.
!
! On VAX/VMS, both write and append access are granted if either is
! requested, and the directory listing bits have no effect.
!
! On TOPS-20, both write and delete access are granted if either is
! requested.
!
! On TOPS-10, access is done very differently. See the PROTEC
! routine for details.
! These literals may be used to compose any desired access fullword value.
!
literal
k_r_access = 1 ^ 0, ! Grant read access.
k_w_access = 1 ^ 1, ! Grant write access.
k_e_access = 1 ^ 2, ! Grant execute access.
k_d_access = 1 ^ 3, ! Grant delete access.
k_a_access = 1 ^ 4, ! Grant append access.
k_l_access = 1 ^ 5, ! Grant directory listing access.
! The following bits are allowed on only if the K_SAME_ACCESS bit is on.
k_no_r_access = 1 ^ 8, ! Deny read access.
k_no_w_access = 1 ^ 9, ! Deny write access.
k_no_e_access = 1 ^ 10, ! Deny execute access.
k_no_d_access = 1 ^ 11, ! Deny delete access.
k_no_a_access = 1 ^ 12, ! Deny append access.
k_no_l_access = 1 ^ 13, ! Deny directory listing access.
! The following bit means that the access fullword tells how to change the
! protection from what it otherwise would be. If this bit is off, the
! "grant" bits define the protection completely.
k_same_access = 1 ^ 15 ;
! The ACCESS_FULLWORD macro defines the bits in the access codes that are
! passed to the PROTEC routine.
!
macro
access_fullword =
block[k_acc_fullwords] field(acc_fields)
% ;
! These are the declarations used in the access_fullword macro.
!
$field
acc_fields =
set ! ACC_FIELDS
acc_set_bits = [$bits(6)], ! A one bit means grant the access.
$overlay(acc_set_bits)
acc_r_bit = [$bit], ! Grant read access.
acc_w_bit = [$bit], ! Grant write access.
acc_e_bit = [$bit], ! Grant execute access.
acc_d_bit = [$bit], ! Grant delete access.
acc_a_bit = [$bit], ! Grant append access.
acc_l_bit = [$bit], ! Grant directory listing access.
$continue
acc_mustbezeroa = [$bits(2)], ! Two spare bits to align on a byte.
acc_reset_bits = [$bits(6)], ! A one bit means deny the access, but
! only if the ACC_SAME bit is one. If
! ACC_SAME is zero, the ACC_RESET_BITS
! field must be zero.
$overlay(acc_reset_bits)
acc_no_r_bit = [$bit], ! Deny read access.
acc_no_w_bit = [$bit], ! Deny write access.
acc_no_e_bit = [$bit], ! Deny execute access.
acc_no_d_bit = [$bit], ! Deny delete access.
acc_no_a_bit = [$bit], ! Deny append access.
acc_no_l_bit = [$bit], ! Deny directory listing access.
$continue
acc_mustbezerob = [$bit], ! One spare bit to align to the
! PDP-11 sign bit.
acc_same = [$bit] ! Means that the access block tells how
! the protection code is to be changed
! from what it otherwise would be, and
! that ACC_RESET_BITS may be non-zero.
! Otherwise, ACC_SET_BITS completely
! defines the protection.
tes ; ! ACC_FIELDS
literal
k_acc_fullwords = $field_set_size, ! Fullwords in an access fullword block
k_acc_units = $field_set_units ; ! Addressable units in same.
! The ACCESS_FULLWORD block must be a single fullword.
%if k_acc_fullwords neq 1
%then %error('Bad size for ACCESS_FULLWORDS.')
%fi
!
! The follow definition specifies an entry in the file ver stack.
! this is used primary by the wilds routine to force the search
! sequencing of the a file with multiple version number in descending
! sequence
$field
fil_stk_ent =
set
sub_descriptor(name=filtxt)
tes;
literal
k_fil_stk_full = $field_set_size ; ! size of entry in fullword
! the following definition is for memory chain block used by wilds to
! remember the address of filename text blocks.
$field
chn_blk =
set
txt_ptr = [$pointer], ! pointer to filename text block
bw_lnk = [$address] ! address of previous block
tes ;
literal
k_chn_blk_full = $field_set_size ;
! FILUSR.REQ -- LAST LINE