-- with starlet, system, GLOBAL_CONSTANTS, DYNAMIC_STRING, PASTEBOARD; use starlet, GLOBAL_CONSTANTS, DYNAMIC_STRING, PASTEBOARD; -- package ENVIRONMENT_CONTROL is --+---------------------------------------------------------------------- -- -- Unit Type : PACKAGE -- Unit Name : ENVIRONMENT_CONTROL -- Version : V01.0F -- -- Author : Stephen R. Rainier Date : 10/31/85 -- -- Purpose : To control a virtual display of environment information -- -- -- Parameters : -- -- Name Mode(I,O,IO) Type/Subtype Description -- ---- ------------ ------------ ------------ -- ENV_BLK IO ENVIRONMENT_BLOCK current defaults -- LEVEL I ENV_LEVEL subdirectory -- PROCESS_ID IO PRIVILEDGE_ID process priv. -- DISPLAY IO DISPLAY_BLOCK 3 level Virt Dsp -- ORIGIN_DIR IO DYN_STRING original DIR -- MANAGERS IO DYN_STRING config manager/s -- CONTROL_FLAG IO boolean signal ctrl char -- -- Modifications : -- -- Name Date Description of Change -- ---- ---- --------------------- -- -- -- Packages "WITH"ed : DYNAMIC_STRING, system, starlet, PASTEBOARD, -- GLOBAL_CONSTANTS -- -- Procedure/Function "CALL"s : INIT_ENV_REPORT, STOP_ENV_REPORT,ENV_REPORT -- NEW_ENV_BLK, GET_ENVIRON, GET_INPUT -- INIT_ENVIRONMENT, ERROR_MSG, SET_POS, -- RESET_SCREEN -- -- Exceptions : -- -- Name Handled/Raised Description -- ---- -------------- ----------- -- VD_ERROR R virtual display error -- USER_ERROR R error reading user priv -- name_error H non-existent file -- -- Side Effects : -- -- -- Comments : -- --%---------------------------------------------------------------------- -- -- Declarations -- INIT_ERROR, VD_ERROR, USER_ERROR : exception; type ENV_LEVEL is (VERSION, TEST_BED, ENVIRONMENT, FACILITY, MODULE); type PRIVILEDGE_ID is (CONFIG_MANAGER, VERSION_CONTROLLER, TEST_DIRECTOR, USER, NOACCESS); type ENVIRONMENT_BLOCK is record PROCESS_NAME : DYN_STRING := D_STRING(""); PROCESS_UIC : DYN_STRING := D_STRING(""); PRIVILEDGE : PRIVILEDGE_ID := USER; MODULE : DYN_STRING := D_STRING(""); VERSION : DYN_STRING := D_STRING(""); TEST_BED : DYN_STRING := D_STRING(""); ENVIRONMENT : DYN_STRING := D_STRING(""); FACILITY : DYN_STRING := D_STRING(""); LIBRARY : DYN_STRING := D_STRING(""); end record; procedure INIT_ENVIRONMENT(DATA : in out ENVIRONMENT_BLOCK); procedure INIT_ENV_REPORT; procedure STOP_ENV_REPORT; procedure EXIT_ENVIRONMENT; procedure QUIT_ENVIRONMENT; procedure NEW_ENV_BLK(DATA : in out ENVIRONMENT_BLOCK; LEVEL : in ENV_LEVEL; NAME : in LOGICAL_NAME_TYPE); function GET_ENVIRON(DATA : in ENVIRONMENT_BLOCK; LEVEL : in ENV_LEVEL := ENVIRONMENT) return string; procedure GET_INPUT(LINE : out DYN_STRING; TCODE : out system.unsigned_word; INFILE : in out DYN_STRING); procedure ERROR_MSG(MSG_NUM : in integer := 0); procedure SET_POS(START : in integer := 9); procedure RESET_POS; procedure RESTORE_POS; procedure RESET_SCREEN; task ENV_REPORT is entry START; entry STOP; entry UPDATE(ARG : ENVIRONMENT_BLOCK); entry CLOCK; end ENV_REPORT; DISPLAY : DISPLAY_BLOCK(3); -- virtual display block -- IND_KEYBOARD_ID : system.unsigned_longword := 0; -- indirect file id -- USERS, MANAGERS : DYN_STRING; -- users and managers name list -- ORIGIN_DIR : DYN_STRING; -- directory from whence came -- DISK_ID : DYN_STRING; -- project disk parameter -- ROOT : DYN_STRING := D_STRING(""); -- project root directory parameter -- ERR_CNT : integer := 0; -- global error counter -- OLD_PRIORITY : system.unsigned_longword; -- process' priority on entrance -- OLD_MASK : system.unsigned_longword; -- process'control mask on entrance -- end ENVIRONMENT_CONTROL;