/***************************************************************************/ /** **/ /** HPE CONFIDENTIAL. This software is confidential proprietary software **/ /** licensed by Hewlett-Packard Enterprise Development, LP, and is not **/ /** authorized to be used, duplicated OR disclosed to anyone without the **/ /** prior written permission of HPE. **/ /** © 2023 Copyright Hewlett-Packard Enterprise Development, LP **/ /** **/ /** VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential **/ /** proprietary software licensed by VMS Software, Inc., and is not **/ /** authorized to be used, duplicated or disclosed to anyone without **/ /** the prior written permission of VMS Software, Inc. **/ /** © 2023 Copyright VMS Software, Inc. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 9-Nov-2023 12:07:57 by OpenVMS SDL V3.7 */ /* Source: 31-MAY-2022 17:00:19 $1$DGA8345:[LIB_H.SRC]BUGCHECKDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $BUGCHECKDEF ***/ #ifndef __BUGCHECKDEF_LOADED #define __BUGCHECKDEF_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 #define BUGDATA$M_NEW_DIAGS 0x1 #define BUGDATA$M_NEW_DUMPDEV 0x2 #define BUGDATA$M_NEW_DUMPFLAGS 0x4 #define BUGDATA$M_NEW_MAXCPUS 0x8 #define BUGDATA$M_PAC_ENABLE 0x1 #define BUGDATA$C_LENGTH 408 /* Length of structure */ /* Allocate a 4K HW page (must be second half of the 8K used by the Kernel Base) */ #define BUGDATA$C_TOP_OF_STACK 24576 /* Offset to top of stack */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _bugcheck_data { #pragma __nomember_alignment unsigned __int64 bugdata$q_uefi_ptbr; unsigned __int64 bugdata$q_uefi_idt; unsigned __int64 bugdata$q_pa_dk_initial_stack; unsigned __int64 bugdata$q_pa_dk_xfer_address; unsigned int bugdata$l_pk_bap_offset; /* Offset from base of this structure (multiple of 8KB) */ unsigned int bugdata$l_pk_bap_size; /* Size in bytes of Primary Kernel BAP (multiple of 8KB) */ unsigned int bugdata$l_dk_bap_offset; /* Offset from base of this structure (multiple of 8KB) */ unsigned int bugdata$l_dk_bap_size; /* Size in bytes of Dump Kernel BAP (multiple of 8KB) */ char bugdata$t_fill_area [80]; unsigned __int64 bugdata$q_base_image_linktime; unsigned __int64 bugdata$q_crash_time; unsigned __int64 bugdata$q_system_ptbr; unsigned __int64 bugdata$q_process_ptbr [4]; #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ struct _intstk *bugdata$q_exception_frame; #else unsigned __int64 bugdata$q_exception_frame; #endif int bugdata$l_bugcheck_code; int bugdata$l_dump_style; int bugdata$l_primary_cpudb; int bugdata$l_pte_levels; int bugdata$l_sys_symvec; int bugdata$l_sys_symvec_end; __union { unsigned short int bugdata$w_new_config_data; __struct { unsigned bugdata$v_new_diags : 1; unsigned bugdata$v_new_dumpdev : 1; unsigned bugdata$v_new_dumpflags : 1; unsigned bugdata$v_new_maxcpus : 1; unsigned bugdata$v_config_fill : 12 /** WARNING: bitfield array has been reduced to a string **/ ; } bugdata$r_config_struc; } bugdata$r_config_union; __union { unsigned short int bugdata$w_flags; __struct { unsigned bugdata$v_pac_enable : 1; unsigned bugdata$v_flags_fill : 15 /** WARNING: bitfield array has been reduced to a string **/ ; } bugdata$r_flags_struc; } bugdata$r_flags_union; unsigned int bugdata$l_dump_mask; unsigned int bugdata$l_exec_flags; unsigned int bugdata$l_dumpflags; /* Updated Dump Kernel boot flags (if NEW_DUMPFLAGS != 0) */ unsigned __int64 bugdata$q_max_pfn; unsigned __int64 bugdata$q_diags; /* Updated Dump Kernel diagnostics (if NEW_DIAGS != 0) */ unsigned int bugdata$l_dumpdev_offset; /* Offset within this page of updated dump device string */ unsigned int bugdata$l_dumpdev_length; /* and length of string (both zero if NEW_DUMPDEV == 0) */ /* (Filled in by SET DUMP). */ unsigned int bugdata$l_paclist_offset; /* Offset within this page of PACLIST_B data from SYSBOOT */ unsigned int bugdata$l_paclist_length; /* and length of list (both zero if no SYSBOOT> SET/CLASS) */ /* (Filled in by BUGCHECK's INIT code). */ char bugdata$t_nodename [8]; unsigned int bugdata$l_alloclass; /* Allows Dump Kernel to use same alloclass as Primary Kernel */ unsigned int bugdata$l_maxcpus; /* Updated Dump Kernel Maximum CPU Count (if NEW_MAXCPUS != 0) */ /* If necessary, add a spare cell here so we always have pairs of longwords */ /* and allow quadwords to align. Uncomment the next line if needed: */ /* SPARE longword fill; */ /* 64 bytes chosen for these two fields to match the code in SR$UNIT_INIT ([OPDRIVER]SRDRIVER.C), */ /* in EXE$FILL_HWNAME ([SYS]C_UTILS.C), and in routines EXE$GET_MANUFACTURER_FRM_SMBIOS and */ /* EXE$GET_PRODUCT_NAME_FRM_SMBIOS ([SYS]SYSGETSYI_SMBIOS.C). */ char bugdata$t_manufacturer [64]; /* SMBIOS manufacturer string */ char bugdata$t_product_name [64]; /* SMBIOS product name string */ /* for the trampoline code that is copied there by the BUGCHECK_X86 init code. */ /* Allocate 4 x 4K pages for stack space for the trampoline. */ /* (All this fits well inside the megabyte reserved by the boot manager). */ char bugdata$t_data_page_fill [3688]; char bugdata$t_embedded_code_page [4096]; char bugdata$t_embedded_stack [16384]; } BUGCHECK_DATA; #if !defined(__VAXC) #define bugdata$w_new_config_data bugdata$r_config_union.bugdata$w_new_config_data #define bugdata$v_new_diags bugdata$r_config_union.bugdata$r_config_struc.bugdata$v_new_diags #define bugdata$v_new_dumpdev bugdata$r_config_union.bugdata$r_config_struc.bugdata$v_new_dumpdev #define bugdata$v_new_dumpflags bugdata$r_config_union.bugdata$r_config_struc.bugdata$v_new_dumpflags #define bugdata$v_new_maxcpus bugdata$r_config_union.bugdata$r_config_struc.bugdata$v_new_maxcpus #define bugdata$w_flags bugdata$r_flags_union.bugdata$w_flags #define bugdata$v_pac_enable bugdata$r_flags_union.bugdata$r_flags_struc.bugdata$v_pac_enable #endif /* #if !defined(__VAXC) */ #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 /* __BUGCHECKDEF_LOADED */