-- --**************************************************************************** --* * --* Copyright (c) 2001 * --* 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. * --* * --**************************************************************************** --******************************************************************************************************************** -- Created: 15-MAR-2001 22:51:31 by OpenVMS SDL EV1-33 -- Source: 10-MAR-1994 11:43:45 $11$DUA933:[LIB_ADA.LIS]EMBHDDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package EMBHDDEF is -- module $EMBHDDEF -- -- ERROR MESSAGE BUFFER HEADER -- -- ****** CAUTION ****** -- -- ALL OF THE EMBxxDEF STRUCTURES ASSUME THAT THE HEADER IS -- EXACTLY ONE LONGWORD IN LENGTH. IF THIS FIELD CHANGES, -- IF EFFECTS ALL OF THE OTHER STRUCTURES. -- ALL MESSAGES HAVE TYPE, TIME, SYSTEM ID, AND ERROR SEQUENCE IN THE -- SAME RELATIVE LOCATIONS. -- -- HDR REVISIONS EMB_K_HD_REV_V50 : constant := 2; EMB_K_HD_REV_V51 : constant := 3; EMB_K_HD_REV_HICKORY : constant := 4; -- HDR REVISIONS EMB_C_HD_REV_V50 : constant := 2; EMB_C_HD_REV_V51 : constant := 3; EMB_C_HD_REV_HICKORY : constant := 4; -- OS ID's EMB_C_OS_RESERVED : constant := 0; EMB_C_OS_VAXVMS : constant := 1; EMB_C_OS_VAXELN : constant := 2; -- OS ID's EMB_K_OS_RESERVED : constant := 0; EMB_K_OS_VAXVMS : constant := 1; EMB_K_OS_VAXELN : constant := 2; -- This determines the SCS node name buffer size EMB_C_SCS_NAME_LENGTH : constant := 16; -- Buffer size for SCS name EMB_K_SCS_NAME_LENGTH : constant := 16; -- Buffer size for SCS name EMB_K_LENGTH : constant := 12; -- LENGTH OF FIXED PART OF MESSAGE HEADER EMB_K_HD_LENGTH : constant := 64; -- LENGTH OF PART COMMON TO ALL MESSAGES EMB_C_HD_LENGTH : constant := 64; -- LENGTH OF PART COMMON TO ALL MESSAGES type EMB_HD_SYSTYPE_TYPE is -- SYSTEM TYPE REGISTER record HD_XSID_RSV : UNSIGNED_WORD; -- RESERVED FOR TYPE-DEPENDENT INFO HD_XSID_REV : UNSIGNED_BYTE; -- REVISION LEVEL OF CPU HD_XSID_TYP : UNSIGNED_BYTE; -- SYS_TYPE, CPU TYPE end record; for EMB_HD_SYSTYPE_TYPE use record HD_XSID_RSV at 0 range 0 .. 15; HD_XSID_REV at 2 range 0 .. 7; HD_XSID_TYP at 3 range 0 .. 7; end record; for EMB_HD_SYSTYPE_TYPE'SIZE use 32; EMB_HD_SYSTYPE_TYPE_INIT : constant EMB_HD_SYSTYPE_TYPE := (HD_XSID_RSV => 0, HD_XSID_REV => 0, HD_XSID_TYP => 0); type EMB_HD_ENTRY_TYPE is -- ERROR MESSAGE ENTRY TYPE record DEVTYP : UNSIGNED_BYTE; -- DEVICE TYPE DEVCLS : UNSIGNED_BYTE; -- DEVICE CLASS end record; for EMB_HD_ENTRY_TYPE use record DEVTYP at 0 range 0 .. 7; DEVCLS at 1 range 0 .. 7; end record; for EMB_HD_ENTRY_TYPE'SIZE use 16; EMB_HD_ENTRY_TYPE_INIT : constant EMB_HD_ENTRY_TYPE := (DEVTYP => 0, DEVCLS => 0); type EMBHD_TYPE is record SIZE : UNSIGNED_WORD; -- SIZE OF ERROR MESSAGE IN BYTES BUFIND : UNSIGNED_WORD; -- ALLOCATION BUFFER INDICATOR CHKSUM : UNSIGNED_LONGWORD; -- HEADER CHECKSUM VALID : UNSIGNED_BYTE; -- ERROR MESSAGE VALID INDICATOR SPARE1 : UNSIGNED_BYTE; -- SPARE SPARE2 : UNSIGNED_BYTE; -- SPARE SPARE3 : UNSIGNED_BYTE; -- SPARE -- -- Changes to offsets starting with HD_SID, the origin of this aggregate, -- require the Header Revision to be increased. Each error message is -- logged to the error log file in an RMS record that contains the -- error packet, starting from offset HD_SID. The remainder of the packet -- format is known to ERF and must be kept in synch with ERF via the -- revision level. -- HD_SID : UNSIGNED_LONGWORD; -- SYSTEM ID HD_HDR_REV : UNSIGNED_WORD; -- HEADER REVISION (IN 1's COMPLEMENT) HD_SYSTYPE : EMB_HD_SYSTYPE_TYPE; -- SYSTEM TYPE REGISTER CPUID : UNSIGNED_LONGWORD; -- UNIQUE CPU ID DEV_CLASS : UNSIGNED_BYTE; -- DEVICE CLASS DEV_TYPE : UNSIGNED_BYTE; -- DEVICE TYPE SCS_NAME : STRING(1 .. 16); -- SCS Node name ASCIC FLAGS : UNSIGNED_WORD; -- MISC. FLAGS OS_ID : UNSIGNED_BYTE; -- LOGGING OP SYS ID HDRSZ : UNSIGNED_BYTE; -- SIZE OF HEADER HD_ENTRY : EMB_HD_ENTRY_TYPE; -- ERROR MESSAGE ENTRY TYPE HD_TIME : UNSIGNED_QUADWORD; -- TIME OF MESSAGE ENTRY HD_ERRSEQ : UNSIGNED_WORD; -- ERROR SEQUENCE FOR MESSAGE HD_SWVERS : UNSIGNED_QUADWORD; -- SOFTWARE VERSION HD_ERRMSK : UNSIGNED_LONGWORD; -- ERROR MASK HD_ABSTIM : UNSIGNED_LONGWORD; -- LOGGED CONTENTS OF EXE$GL_ABSTIM end record; for EMBHD_TYPE use record SIZE at 0 range 0 .. 15; BUFIND at 2 range 0 .. 15; CHKSUM at 4 range 0 .. 31; VALID at 8 range 0 .. 7; SPARE1 at 9 range 0 .. 7; SPARE2 at 10 range 0 .. 7; SPARE3 at 11 range 0 .. 7; HD_SID at 12 range 0 .. 31; HD_HDR_REV at 16 range 0 .. 15; HD_SYSTYPE at 18 range 0 .. 31; CPUID at 22 range 0 .. 31; DEV_CLASS at 26 range 0 .. 7; DEV_TYPE at 27 range 0 .. 7; SCS_NAME at 28 range 0 .. 127; FLAGS at 44 range 0 .. 15; OS_ID at 46 range 0 .. 7; HDRSZ at 47 range 0 .. 7; HD_ENTRY at 48 range 0 .. 15; HD_TIME at 50 range 0 .. 63; HD_ERRSEQ at 58 range 0 .. 15; HD_SWVERS at 60 range 0 .. 63; HD_ERRMSK at 68 range 0 .. 31; HD_ABSTIM at 72 range 0 .. 31; end record; for EMBHD_TYPE'SIZE use 608; EMBHD_TYPE_INIT : constant EMBHD_TYPE := (SIZE => 0, BUFIND => 0, CHKSUM => 0, VALID => 0, SPARE1 => 0, SPARE2 => 0, SPARE3 => 0, HD_SID => 0, HD_HDR_REV => 0, HD_SYSTYPE => EMB_HD_SYSTYPE_TYPE_INIT, CPUID => 0, DEV_CLASS => 0, DEV_TYPE => 0, SCS_NAME => (others => ASCII.NUL), FLAGS => 0, OS_ID => 0, HDRSZ => 0, HD_ENTRY => EMB_HD_ENTRY_TYPE_INIT, HD_TIME => (0, 0), HD_ERRSEQ => 0, HD_SWVERS => (0, 0), HD_ERRMSK => 0, HD_ABSTIM => 0); EMB_M_EM_BUS : constant := 16#00000001#; EMB_M_EM_CPU : constant := 16#00000002#; EMB_M_EM_MEMORY : constant := 16#00000004#; EMB_M_EM_ADAPTER : constant := 16#00000008#; EMB_M_EM_CACHE : constant := 16#00000010#; EMB_M_EM_VECTOR : constant := 16#00000020#; EMB_M_RSRVD1 : constant := 16#00000040#; type EMB_ERRMSK_FIELDS_TYPE is record EM_BUS : BOOLEAN; -- bus error EM_CPU : BOOLEAN; -- cpu error EM_MEMORY : BOOLEAN; -- memory error EM_ADAPTER : BOOLEAN; -- adapter error EM_CACHE : BOOLEAN; -- cache error EM_VECTOR : BOOLEAN; -- VECTOR error RSRVD1 : BOOLEAN; -- Reserved FILLER_1 : UNSIGNED_25; end record; for EMB_ERRMSK_FIELDS_TYPE use record EM_BUS at 0 range 0 .. 0; EM_CPU at 0 range 1 .. 1; EM_MEMORY at 0 range 2 .. 2; EM_ADAPTER at 0 range 3 .. 3; EM_CACHE at 0 range 4 .. 4; EM_VECTOR at 0 range 5 .. 5; RSRVD1 at 0 range 6 .. 6; FILLER_1 at 0 range 7 .. 31; end record; for EMB_ERRMSK_FIELDS_TYPE'SIZE use 32; EMB_ERRMSK_FIELDS_TYPE_INIT : constant EMB_ERRMSK_FIELDS_TYPE := (EM_BUS => FALSE, EM_CPU => FALSE, EM_MEMORY => FALSE, EM_ADAPTER => FALSE, EM_CACHE => FALSE, EM_VECTOR => FALSE, RSRVD1 => FALSE, FILLER_1 => 0); EMB_M_FL_DDR : constant := 16#00000001#; type EMB_FLAGS_FIELDS_TYPE is record FL_DDR : BOOLEAN; -- DDR device flag FILLER_1 : UNSIGNED_31; end record; for EMB_FLAGS_FIELDS_TYPE use record FL_DDR at 0 range 0 .. 0; FILLER_1 at 0 range 1 .. 31; end record; for EMB_FLAGS_FIELDS_TYPE'SIZE use 32; EMB_FLAGS_FIELDS_TYPE_INIT : constant EMB_FLAGS_FIELDS_TYPE := (FL_DDR => FALSE, FILLER_1 => 0); end EMBHDDEF;