{------------------------------------------------------------------------------ { { D D D 0 0 { D D 0 { D 0 D 0 { D 0 D 0 { D 0 D 0 { D 0 0 { D D D 0 0 ------- D0 Online Software { { { ITC Global Environment -- GLOBAL.EPAS { { Purpose and Methods : Declares data types and variables used by all other { modules of the ITC system. { { Arguments : None { { Created on October 23, 1989 by John Featherly { {------------------------------------------------------------------------------ } Module Global; CONST %Include 'D0$ITC$Inc:ITC_CondCodes.Inc' %Include 'D0$ITC$Inc:ITC_Config.Inc' Max_Message_Size = Def_Max_Message_Size; TYPE $deftyp = INTEGER; $defptr = ^$DEFTYP; generic_ptr = ^INTEGER; $uword = [WORD] 0..65535; $ubyte = [BYTE] 0..255; dsc$descriptor = RECORD dsc$w_length : $UWORD; { length of data item in bytes, or if dsc$b_dtype is DSC$K_DTYPE_V, bits, or if dsc$b_dtype is DSC$K_DTYPE_P, digits (4 bits each) } dsc$b_dtype : $UBYTE; { data type code } dsc$b_class : $UBYTE; { descriptor class code = DSC$K_CLASS_S } dsc$a_pointer : ^STRING(7); { address of first byte of data storage } END; MessBlk = RECORD Links : QUEUE_ENTRY; Mess : MESSAGE; Info : ^STRING(Max_Message_Size); Length : INTEGER; Trunc : BOOLEAN; END; Chan_Control_Block = RECORD MLQH : QUEUE_ENTRY; Since : LARGE_INTEGER; { Connect Time } IO_Port : PORT; Partner : INTEGER; { PID } DN_Numb : $UWORD; { DECnet number } MQ_Empty : BOOLEAN; Net_Chan : BOOLEAN; {network or local} In_Use : BOOLEAN; Connected : BOOLEAN; In_Disco : BOOLEAN; {In disconnection} Channel_read_Stopped : BOOLEAN; To_Target : VARYING_STRING(MaxLen_TargNam); To_Node : VARYING_STRING(7); END; Activity = PACKED RECORD Chan : $UWORD ; Class : $UWORD ; END; Opt_Data_Type = RECORD CASE INTEGER OF 1: (OD_Block : Varying_String(16)); { 19 bytes total } 2: (Comp : Record ODBLEN : $UWord; { OD_Block.Length } ID : INTEGER; Node_Name : STRING(6); Node_Numb : $UWord; Pad : INTEGER End); End; Channel_Range = 0..Max_Number_of_Channels; { 0 is not a valid channel } Ring_Buff_Range = 1..Max_Ring_Buff_Size; CCB_tab = ARRAY [1..Def_Number_of_Channels] OF Chan_Control_Block; Ring_Buff_tab = ARRAY [0..Def_ring_Buff_Size-1] OF ACTIVITY; VAR CCB : CCB_tab := ZERO; Number_of_Channels : INTEGER; Ring_Buff : Ring_Buff_tab; Ring_Buff_Size : INTEGER; Ring_Buff_Length : INTEGER := 0; Head, Tail : INTEGER := 0; { Ring_Buff_Full : BOOLEAN := FALSE;} Target_Name_String : VARYING_STRING(MaxLen_TargNam); Target_Port : PORT; Init : BOOLEAN := False; { Reject_Port : PORT;} Con_Data : Opt_Data_Type; End { ITC Global Environment module }.