/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:37:53 by OpenVMS SDL EV3-3 */ /* Source: 10-OCT-2006 06:42:03 $1$DGA7274:[LIB_H.SRC]LMBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $LMBDEF ***/ #ifndef __LMBDEF_LOADED #define __LMBDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /*+ */ /* LMB - Logical Memory Block */ /* */ /* Logical Memory Block definitions (for subsetted crash dumps) */ /* Layout of each Logical Memory Block and accompanying hole descriptor. */ /* Logical Memory Blocks are portions of selective memory dumps. "Holes" */ /* refer to areas of invalid or inaccessible virtual address space at the */ /* time of the dump. */ /*- */ #define LMB$C_SHARED_MEMORY -2 /* Galaxy shared memory (complete) */ #define LMB$C_SHARED_REGION -1 /* Galaxy shared memory region (single) */ #define LMB$C_PT 0 /* PT Space */ #define LMB$C_S0S1 1 /* S0/S1 Space (excluding SPT window) */ #define LMB$C_S2 2 /* S2 Space (includes PFN database, GPT) */ #define LMB$C_REPLICATED_SYS 3 /* Replicated system space (Wildfires etc) */ #define LMB$C_MMAPS 4 /* Galaxy memory map pages */ #define LMB$C_KEY_PROCESS_PT 5 /* Process page tables ... */ #define LMB$C_KEY_PROCESS_MEM 6 /* ... and memory (current, swapper, other current, site-specific, HP-defined) */ #define LMB$C_KEY_GBL 7 /* Global Pages (associated with key processes) */ #define LMB$C_OTHER_PROCESS_PT 8 /* Process page tables ... */ #define LMB$C_OTHER_PROCESS_MEM 9 /* ... and memory (all other processes) */ #define LMB$C_OTHER_GBL 10 /* Global Pages (not associated with key processes) */ /* Make changes and additions before this line */ #define LMB$C_NUMTYPES 11 /* The number of LMB types */ /* LMB flavors for process dumps */ #define LMB$C_PROCESS_SPACE 256 /* Entire process space from zero to the L1PT page */ #define LMB$C_SYSTEM_SPACE 257 /* Process-pertinent data in system space */ #define LMB$M_INCOMPLETE 0x1 #define LMB$K_LENGTH 136 /* Logical mem block length */ #define LMB$C_LENGTH 136 /* Logical mem block length */ #define LMB$S_LMBDEF 136 /* Old size name - synonym */ #ifdef __cplusplus /* Define structure prototypes */ struct _pcb; #endif /* #ifdef __cplusplus */ typedef struct _lmb { short int lmb$w_type; /* Type of LMB */ /* LMB flavors */ __union { __struct { unsigned short int lmb$w_flags; /* Flags for this LMB */ } lmb$r_lmb_fields; __struct { unsigned lmb$v_incomplete : 1; /* LMB not completely written */ unsigned lmb$v_fill_0_ : 7; } lmb$r_lmb_bits; } lmb$r_lmb_overlay; int lmb$l_act_length; /* LMB data actual length (blocks) */ int lmb$l_nocomp_length; /* as ACT_LENGTH without compression */ __union { unsigned short int lmb$w_hole_tbl; /* relative VBN in dump of start of the table */ /* describing the holes in the */ /* virtual address space. */ unsigned short int lmb$w_pmap_tbl; /* just another name for the same with */ /* shared memory dumps */ } lmb$r_lmb_1; unsigned short int lmb$w_badmem_ptrs; /* Offset of bad memory descriptor */ /* list. List terminates with -1 or */ /* at end of LMB block 1. */ /* Offset is from start of LMB block 1. */ __union { unsigned int lmb$l_total_holes; /* Count of holes in LMB */ unsigned int lmb$l_total_pmaps; /* count of PMAPs (fragments) in shared */ /* memory LMB */ } lmb$r_lmb_2; __union { struct _pcb *lmb$l_pcbadr; /* SVA of this process's PCB */ unsigned int lmb$l_rad; /* RAD for this LMB of replicated system space */ } lmb$r_lmb_3; unsigned __int64 lmb$q_time_check; /* Ones-complement of EMB$Q_CR_TIME */ char lmb$t_process_name [16]; /* Process name (only for TYPE=PROCESS) */ __union { __struct { #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *lmb$pq_start_va; /* Start of range of addresses searched */ #else unsigned __int64 lmb$pq_start_va; #endif /* for holes by BUGCHECK */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *lmb$pq_end_va; /* End of range of addresses searched */ #else unsigned __int64 lmb$pq_end_va; #endif /* for holes by BUGCHECK */ } lmb$r_lmb_5; __struct { unsigned __int64 lmb$q_start_offset; /* Start of range of addresses dumped */ /* by DUMP_SHARED_MEMORY */ unsigned __int64 lmb$q_end_offset; /* End of range of addresses dumped */ /* by DUMP_SHARED_MEMORY */ } lmb$r_lmb_6; } lmb$r_lmb_4; char lmb$t_region_tag [64]; /* Region name for shared memory LMBs */ unsigned int lmb$l_cmap_start; /* Offset into compression map of first entry for this LMB */ unsigned int lmb$l_cmap_count; /* Count of compression map entries for this LMB */ __int64 lmb$q_badmem_descriptors [47]; /* Bad memory descriptors */ } LMB; #if !defined(__VAXC) #define lmb$w_flags lmb$r_lmb_overlay.lmb$r_lmb_fields.lmb$w_flags #define lmb$v_incomplete lmb$r_lmb_overlay.lmb$r_lmb_bits.lmb$v_incomplete #define lmb$w_hole_tbl lmb$r_lmb_1.lmb$w_hole_tbl #define lmb$w_pmap_tbl lmb$r_lmb_1.lmb$w_pmap_tbl #define lmb$l_total_holes lmb$r_lmb_2.lmb$l_total_holes #define lmb$l_total_pmaps lmb$r_lmb_2.lmb$l_total_pmaps #define lmb$l_pcbadr lmb$r_lmb_3.lmb$l_pcbadr #define lmb$l_rad lmb$r_lmb_3.lmb$l_rad #define lmb$pq_start_va lmb$r_lmb_4.lmb$r_lmb_5.lmb$pq_start_va #define lmb$pq_end_va lmb$r_lmb_4.lmb$r_lmb_5.lmb$pq_end_va #define lmb$q_start_offset lmb$r_lmb_4.lmb$r_lmb_6.lmb$q_start_offset #define lmb$q_end_offset lmb$r_lmb_4.lmb$r_lmb_6.lmb$q_end_offset #endif /* #if !defined(__VAXC) */ #define LMB$K_HOLE_LENGTH 16 #define LMB$C_HOLE_LENGTH 16 /* Size of each hole table entry. */ typedef struct _lmb_hole { #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *lmb$pq_hole_start_va; /* Starting VA for this hole */ #else unsigned __int64 lmb$pq_hole_start_va; #endif unsigned __int64 lmb$q_hole_total_pages; /* Running total of pages of holes */ /* up to the starting VA of this hole */ /* Offset to get to the next hole */ /* table entry. */ } LMB_HOLE; typedef struct _lmb_badmem { #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *lmb$pq_badmem_start; /* Starting VA of bad memory section */ #else unsigned __int64 lmb$pq_badmem_start; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *lmb$pq_badmem_end; /* Ending VA of bad memory section */ #else unsigned __int64 lmb$pq_badmem_end; #endif unsigned int lmb$l_badmem_next; /* Size of one entry in bad memory table */ } LMB_BADMEM; #ifdef __INITIAL_POINTER_SIZE #pragma __required_pointer_size __save /* Save current pointer size */ #pragma __required_pointer_size __long /* Pointers are 64-bit */ typedef struct _lmb_hole * LMB_HOLE_PQ; /* Pointer to an LMB hole structure */ #pragma __required_pointer_size __restore /* Return to previous pointer size */ #else typedef unsigned __int64 LMB_HOLE_PQ; #endif /* __INITIAL_POINTER_SIZE */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __LMBDEF_LOADED */