MODULE XROOT ( IDENT = 'V1.0-10' %TITLE 'XPORT Root Module' %BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) ) %BLISS36( ,ENTRY( XST$MESSAGE, XST$NULL_STRING, XST$NO_MEMORY, XPO$COUNT_TEMP, XPO$ELEMENT0, XPO$ERROR_IOB ),OTS='' ) ) = BEGIN ! ! COPYRIGHT (c) 1981 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: BLISS Library ! ! ABSTRACT: ! ! This module contains XPORT variables which must be in the root ! segment of an overlay structure. ! ! ENVIRONMENT: User mode - multiple host operating/file systems ! ! AUTHOR: Ward Clark, CREATION DATE: 25 July 1980 ! !-- ! ! TABLE OF CONTENTS: ! ! ! INCLUDE FILES: ! LIBRARY 'XPORT' ; ! Public XPORT control block and macro definitions LIBRARY 'XPOSYS' ; ! Internal XPORT macro definitions $XPO_SYS_TEST( $TOPS10, $TOPS20, $VMS, $11M, $RSTS, $RT11 ) %IF $11M %THEN REQUIRE 'XRSX' ; ! XPORT-specific RSX-11 and FCS-11 interface definitions %FI ! ! MACROS: ! ! ! EQUATED SYMBOLS: ! LITERAL yes = 1, ! Used to set an indicator on no = 0, ! Used to set an indicator off max_msg_length = ! Maximum length of failure message %BLISS16( 80 ) %BLISS32( 255 ) %BLISS36( 255 ); %IF $TOPS20 %THEN GLOBAL LITERAL xpo$k_max_chan = 96; ! Maximum I/O JFN number %FI %IF $11M %THEN GLOBAL LITERAL xrsx$k_max_lun = 15; ! Maximum FCS Logical Unit Number (LUN) LITERAL max_rsx_files = 4; ! Default number of concurrently opened files %FI %IF $RT11 %THEN GLOBAL LITERAL xpo$k_max_chan = 14; ! Maximum I/O channel number %FI ! ! PSECT DECLARATIONS: ! $XPO_PSECTS ! Declare XPORT PSECT names and attributes ! ! OWN STORAGE: ! OWN message_buffer : ! Failure action routine message buffer VECTOR[ CH$ALLOCATION( max_msg_length ) ]; GLOBAL xst$message : $STR_DESCRIPTOR( CLASS = BOUNDED, ! Failure message buffer descriptor STRING = ( max_msg_length, CH$PTR( message_buffer ) ) ), xst$null_string : $STR_DESCRIPTOR( STRING = '' ), ! FIXED null string xst$no_memory : $STR_DESCRIPTOR( CLASS = FIXED ) ! Fixed erroneous temporary string descriptor PRESET( [STR$B_DTYPE] = STR$K_DTYPE_XXX, [STR$B_CLASS] = STR$K_CLASS_F, [STR$A_POINTER] = XPO$_NO_MEMORY ); %IF $TOPS10 OR $TOPS20 OR $RT11 OR $RSTS %THEN GLOBAL xpo$count_temp : INITIAL( 0 ); ! Count of temporary files created %FI %IF NOT $VMS %THEN GLOBAL xpo$element0 : $XPO_FREE_ELEMENT ! Dummy free element descriptor to head free storage chain PRESET( [XPO$H_FREE_SIZE] = 0, [XPO$A_FREE_LINK] = 0 ); %FI %IF $11M OR $RSTS OR $RT11 %THEN GLOBAL xpo$pool_alloc : INITIAL( no ); ! yes = dynamic memory pool has been allocated %FI %IF $TOPS20 %THEN GLOBAL x20$buffer_cb : ! Buffer control block for each channel BLOCKVECTOR[ xpo$k_max_chan+1, 3 ] INITIAL( REP 3 * (xpo$k_max_chan+1) OF (0) ); %FI %IF $RT11 %THEN GLOBAL xpo$channels : BITVECTOR[ xpo$k_max_chan + 1 ] ! I/O channel assignment vector PRESET( [xpo$k_max_chan] = 0 ), xrt$buffer_cb : ! Buffer control block for each channel BLOCKVECTOR[ xpo$k_max_chan+1, 4 ] INITIAL( REP 4 * (xpo$k_max_chan+1) OF (0) ); %FI %IF $TOPS10 OR $TOPS20 %THEN GLOBAL xpo$error_iob : $XPO_IOB() ! IOB for standard error message output PRESET( [IOB$V_OPEN] = no ); %FI %IF $11M %THEN GLOBAL xrsx$ti0_lun : INITIAL( 1 ), ! LUN for user's terminal xrsx$event_flag : INITIAL( 32 ), ! XPORT QIO/FCS event flag number xrsx$ok_fsr : INITIAL( no ), ! FCS File Storage Region (FSR) initialization indicator xrsx$lun_vector : BITVECTOR[ xrsx$k_max_lun + 1 ]; ! FCS Logical Unit Number (LUN) assignment vector %FI ! ! EXTERNAL REFERENCES: ! %IF $11M %THEN ROUTINE dummy : NOVALUE = BEGIN FSRSZ$( max_rsx_files ); ! FCS File Storage Region - declared here rather than at ! module level since the FSRSZ$ macro must appear in ! executable code. RETURN END; %FI END ELUDOM