--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:33 by OpenVMS SDL EV3-3 -- Source: 31-JUL-1998 10:44:45 $1$DGA8085:[LIB_ADA.LIS]POOLCHECKDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package POOLCHECKDEF is -- module $POOLCHECKDEF --+ -- POOLCHECK - Poolcheck SYSGEN parameter layout --- PCHECK_M_POISON : constant := 16#00000001#; PCHECK_M_CHECK : constant := 16#00000002#; PCHECK_M_SRP_FREE : constant := 16#00000004#; PCHECK_M_IRP_FREE : constant := 16#00000008#; PCHECK_M_LRP_FREE : constant := 16#00000010#; PCHECK_M_XRP_ALIGN : constant := 16#00000020#; PCHECK_M_DEALLO_SIZE : constant := 16#00000040#; PCHECK_M_P1 : constant := 16#00000080#; PCHECK_S_POOLCHECKDEF : constant := 4; type PCHECK_FLAGS_TYPE is -- Flag bits record POISON : BOOLEAN; -- Poison on deallocation -- Enable other features CHECK : BOOLEAN; -- Check poisoning on allocation -- and poison with allo pattern SRP_FREE : BOOLEAN; -- Poison SRPs on deallocation (obsolete) IRP_FREE : BOOLEAN; -- Poison IRPs on deallocation (obsolete) LRP_FREE : BOOLEAN; -- Poison LRPs on deallocation (obsolete) XRP_ALIGN : BOOLEAN; -- Check xRP alignment on deallocation (obs) DEALLO_SIZE : BOOLEAN; -- Check deallocation length against allocation length P1 : BOOLEAN; -- Do poisoning/checking on P1 space end record; for PCHECK_FLAGS_TYPE use record POISON at 0 range 0 .. 0; CHECK at 0 range 1 .. 1; SRP_FREE at 0 range 2 .. 2; IRP_FREE at 0 range 3 .. 3; LRP_FREE at 0 range 4 .. 4; XRP_ALIGN at 0 range 5 .. 5; DEALLO_SIZE at 0 range 6 .. 6; P1 at 0 range 7 .. 7; end record; for PCHECK_FLAGS_TYPE'SIZE use 8; PCHECK_FLAGS_TYPE_INIT : constant PCHECK_FLAGS_TYPE := (POISON => FALSE, CHECK => FALSE, SRP_FREE => FALSE, IRP_FREE => FALSE, LRP_FREE => FALSE, XRP_ALIGN => FALSE, DEALLO_SIZE => FALSE, P1 => FALSE); type PCHECK_POOLCHECK_TYPE is record FLAGS : PCHECK_FLAGS_TYPE; -- Flag bits SIZE_TO_CHECK : UNSIGNED_BYTE; -- What deallo size to check if DEALO_LENGTH is set FREE : UNSIGNED_BYTE; -- Free pattern ALLO : UNSIGNED_BYTE; -- Allocated pattern end record; for PCHECK_POOLCHECK_TYPE use record FLAGS at 0 range 0 .. 7; SIZE_TO_CHECK at 1 range 0 .. 7; FREE at 2 range 0 .. 7; ALLO at 3 range 0 .. 7; end record; for PCHECK_POOLCHECK_TYPE'SIZE use 32; PCHECK_POOLCHECK_TYPE_INIT : constant PCHECK_POOLCHECK_TYPE := ( FLAGS => PCHECK_FLAGS_TYPE_INIT, SIZE_TO_CHECK => 0, FREE => 0, ALLO => 0); type PCHECK_POOLCHECK_TYPE is record POOLCHECK : PCHECK_POOLCHECK_TYPE; end record; for PCHECK_POOLCHECK_TYPE use record POOLCHECK at 0 range 0 .. 31; end record; for PCHECK_POOLCHECK_TYPE'SIZE use 32; PCHECK_POOLCHECK_TYPE_INIT : constant PCHECK_POOLCHECK_TYPE := ( POOLCHECK => PCHECK_POOLCHECK_TYPE_INIT ); --+ -- PCHK_REASON - Poolcheck bugcheck reason codes -- -- This defines the poolcheck bugcheck codes pushed on the stack when a -- poolcheck bugcheck is declared. -- --- PCHK_REASON_CORRUPT : constant := 0; -- Corrupted packet PCHK_REASON_ALIGN : constant := 1; -- Bad alignment (obsolete) PCHK_REASON_XRP_ALIGN : constant := 2; -- Bad alignment of xRP packet (obsolete) PCHK_REASON_PAGED : constant := 3; -- Paged block is partially outside PCHK_REASON_NPAGED : constant := 4; -- Npaged block is partially outside PCHK_REASON_IPL : constant := 5; -- Called P1 routines with IPL too high PCHK_REASON_AGGLOM : constant := 6; -- Agglomeration not done PCHK_REASON_UNBALANCED : constant := 7; -- Deallocation and allocation were not the same size end POOLCHECKDEF;