/***************************************************************************/ /** **/ /** 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:06:39 by OpenVMS SDL V3.7 */ /* Source: 12-OCT-2021 13:20:46 $1$DGA8345:[LIB_H.SRC]MDBOOTDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $MDBOOTDEF ***/ #ifndef __MDBOOTDEF_LOADED #define __MDBOOTDEF_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 #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _mdboot_extent { #pragma __nomember_alignment unsigned int mdboot$l_blocks; /* Size (blocks) of an extent of memory disk container file */ unsigned __int64 mdboot$q_start; /* Start LBN of an extent of memory disk container file */ } MDBOOT_EXTENT; #define MDBOOT$K_VMS_SIGNATURE 609439062 /* The string "VMS$" */ #define MDBOOT$K_MAJOR_ID 2 /* One or both of these need to be updated ... */ #define MDBOOT$K_MINOR_ID 0 /* ... if the layout of this structure changes */ #define MDBOOT$K_MAX_EXTENTS 24 /* The maximum number of extents allowed in SYS$MD.DSK */ #define MDBOOT$K_BLOCK_LENGTH 512 /* If this isn't 512, we're in trouble! */ #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 _mdboot { #pragma __nomember_alignment unsigned char mdboot$x_fat16_fat32_bpb [90]; /* See [EFI]MSFATDEF.SDL: size of FATBPB before MSFAT$X_JUNQUE */ short int mdboot$x_filler1; /* To make our data longword aligned */ __union { unsigned char mdboot$t_mdboot_data [400]; /* This is the space we can use for the memory disk data */ __struct { unsigned int mdboot$l_signature; /* The identifying signature "VMS$" */ unsigned int mdboot$l_length; /* Length of MDBOOT data from SIGNATURE to CHECKSUM inclusive */ __union { unsigned int mdboot$l_version; /* Version of structure (Major & Minor IDs) */ __struct { unsigned short int mdboot$w_minor_id; /* Minor ID in low 16 bits */ unsigned short int mdboot$w_major_id; /* Major ID in high 16 bits */ } mdboot$r_majmin_id; } mdboot$r_version_union; char mdboot$t_sysdisk_label [12]; /* Volume label of system disk */ char mdboot$t_memdisk_label [12]; /* Volume label of memory disk */ unsigned int mdboot$l_memdisk_blocks; /* Size (in 512-byte blocks) of memory disk container file */ unsigned int mdboot$l_bootfile_blocks; /* Size (blocks) of SYSBOOT.EXE in memory disk container file */ unsigned int mdboot$l_bootfile_start; /* Start LBN of SYSBOOT.EXE in memory disk container file */ MDBOOT_EXTENT mdboot$t_extents [24]; /* 24 sets of blocks+start */ unsigned int mdboot$l_checksum; /* Negative of sum of all longwords from SIGNATURE to here */ unsigned char mdboot$t_spare [60]; /* For future use */ } mdboot$r_mdboot_info; } mdboot$r_mdboot_union; short int mdboot$x_filler2; /* To align to the end of MSFAT$X_JUNQUE */ unsigned char mdboot$x_eficp_markers [18]; /* See [EFI]MSFATDEF.SDL: size of markers after MSFAT$X_JUNQUE */ } MDBOOT; #if !defined(__VAXC) #define mdboot$t_mdboot_data mdboot$r_mdboot_union.mdboot$t_mdboot_data #define mdboot$r_mdboot_info mdboot$r_mdboot_union.mdboot$r_mdboot_info #define mdboot$l_signature mdboot$r_mdboot_info.mdboot$l_signature #define mdboot$l_length mdboot$r_mdboot_info.mdboot$l_length #define mdboot$r_version_union mdboot$r_mdboot_info.mdboot$r_version_union #define mdboot$l_version mdboot$r_version_union.mdboot$l_version #define mdboot$r_majmin_id mdboot$r_version_union.mdboot$r_majmin_id #define mdboot$w_minor_id mdboot$r_majmin_id.mdboot$w_minor_id #define mdboot$w_major_id mdboot$r_majmin_id.mdboot$w_major_id #define mdboot$t_sysdisk_label mdboot$r_mdboot_info.mdboot$t_sysdisk_label #define mdboot$t_memdisk_label mdboot$r_mdboot_info.mdboot$t_memdisk_label #define mdboot$l_memdisk_blocks mdboot$r_mdboot_info.mdboot$l_memdisk_blocks #define mdboot$l_bootfile_blocks mdboot$r_mdboot_info.mdboot$l_bootfile_blocks #define mdboot$l_bootfile_start mdboot$r_mdboot_info.mdboot$l_bootfile_start #define mdboot$t_extents mdboot$r_mdboot_info.mdboot$t_extents #define mdboot$l_checksum mdboot$r_mdboot_info.mdboot$l_checksum #define mdboot$t_spare mdboot$r_mdboot_info.mdboot$t_spare #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 /* __MDBOOTDEF_LOADED */