Google
 

Trailing-Edge - PDP-10 Archives - DEC_CMS-20_V1.0_SRC - cms/sources/zonusr.req
There are no other files named zonusr.req in the archive.
! ZONUSR.REQ  --  Declarations for the user of the zone facility.

!
!			  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 declares items needed to use the zone mechanism defined in
!	module STOAGE.  It also declares items internal to the zone facility.
!
! Environment:  Transportable
!
! Author:  Earl Van Horn	Creation Date:  January 8, 1980
!
!--
! This file assumes that the declarations
!
!	LIBRARY 'XPORT:' ;
!	REQUIRE 'BLISSX:' ;
!
! or equivalent have already appeared in the program.




! The only declaration of interest to the user of the zone facility is
! the NEW_ZONE macro, which is used to declare a new zone header block
! in global or own storage.
!
macro
    new_zone =
	zone_block preset([zon_recognition] = k_zon_recognition,
			  [zon_a_extent] = k_null)
			  ! Remainder of block is zeroed.
	% ;
! The remainder of the declarations in this file are internal to the
! zone facility.



! The ZONE_BLOCK macro declares an uninitialized zone definition block.
!
macro
    zone_block =
	block[k_zon_fullwords] field(zon_fields)
	% ;

! Internal macro for defining ZON_FIELDS.
macro
    $units_unsigned =
	%if %bliss(bliss36)
	%then $bytes(2)
	%else $bytes(%upval)
	%fi
	% ;

$field
    zon_fields =
	set
	zon_recognition = [$bytes(2)],		! Constant 'ZO' for verifying
						! that a block is a zone.
	%if %bliss(bliss32)
	%then $align(fullword)
	%fi
	zon_a_extent = [$address],		! To the first extent in a list
						! of them.
	zon_total_units = [$units_unsigned],	! The total number of usable
						! addressable units currently
						! allocated in the zone.
	zon_first_units = [$units_unsigned],	! Number of addressable units
						! to be allocated in the first
						! extent to be allocated, which
						! is not necessarily the one
						! pointed to by ZON_A_EXTENT.
						! Zero means allocate only
						! enough for the first request.
	zon_other_units = [$units_unsigned],	! Number of addressable units
						! to be allocated in extents
						! allocated after the first.
						! Zero means allocate only
						! enough for the current
						! request.
	zon_max_units = [$units_unsigned]	! Maximum for ZON_TOTAL_UNITS.
						! Zero means no maximum.
	tes ;

literal
    k_zon_fullwords = $field_set_size,	! Fullwords in a zone block.
    k_zon_units = $field_set_units,	! Addressable units in a zone block.
    k_zon_recognition = %c'Z' ;		! Value that is always in the
						! ZON_RECOGNITION field.



! ZONUSR.REQ  --  LAST LINE