/**/ /***************************************************************************/ /** **/ /** © 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:26:32 by OpenVMS SDL EV3-3 */ /* Source: 18-SEP-2003 16:34:16 $1$DGA7274:[LIB_H.SRC]BTBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $BTBDEF ***/ #ifndef __BTBDEF_LOADED #define __BTBDEF_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 BTB$K_VAX_SECTOR 0 /* address of VAX bootblock LBN */ #define BTB$K_ALPHA_SECTOR 0 /* address of Alpha bootblock LBN */ #define BTB$K_LENGTH_PART1 480 /* Length of 1st part of boot block */ #define BTB$M_NOTCONTIG 0x1 #define BTB$K_LENGTH 512 /* Length of a boot block */ #define BTB$S_BTBDEF 512 /* Old size name, synonym */ typedef struct _btb { unsigned char btb$b_nop1; /* Contains NOP opcode */ unsigned char btb$b_brb; /* Contains BRB opcode */ unsigned char btb$b_brb_offset; /* Contains PC relative offset of branch */ unsigned char btb$b_nop2; /* Contains NOP opcode */ __union { int btb$l_lbn1; /* Starting LBN of 1st boot file */ __struct { unsigned short int btb$w_high_lbn; /* High 32-bits of LBN */ unsigned short int btb$w_low_lbn; /* Low 32-bits of LBN */ } btb$r_lbn1_fields; } btb$r_lbn1_overlay; int btb$l_fill1; /* Filler */ unsigned char btb$b_vax_brb; /* Contains BRB opcode (VAX) */ unsigned char btb$b_vax_offset; /* Contains PC relative offset of branch */ char btb$b_fill2; /* Filler */ unsigned char btb$b_pdp_brb; /* Contain BRB opcode (PDP) */ unsigned char btb$b_pdp_offset; /* Contains PC relative offset of branch */ char btb$b_fill3; /* Filler */ int btb$l_fill4; /* Filler */ short int btb$w_fill5; /* Filler */ unsigned char btb$b_inst_set; /* Instruction set code (%x18=VAX) */ unsigned char btb$b_ctrl_type; /* Controller type */ unsigned char btb$b_file_str; /* File structure (ODS-II =2) */ unsigned char btb$b_comp3; /* Complement of sum of previous 3 bytes */ char btb$b_fill6; /* Filler */ unsigned char btb$b_version; /* Boot block version=1 */ short int btb$w_fill7; /* Filler */ unsigned int btb$l_size; /* Size in LBNs of image */ unsigned int btb$l_load_offset; /* Load offset into good memory */ unsigned int btb$l_start_offset; /* Offset to begin execution */ unsigned int btb$l_checksum; /* Checksum of three previous longwords */ __union { char btb$b_vax_code [92]; /* VAX boot block code */ __struct { int btb$l_stuff; /* */ int btb$l_more_stuff; /* */ char btb$t_comment [20]; /* */ } btb$r_code_fields; } btb$r_code_overlay; char btb$b_fill8 [340]; /* Reserved for future use */ __union { __int64 btb$q_size2; /* Size of 2nd boot file */ __struct { int btb$l_low_size2; /* Low 32-bits of size */ int btb$l_high_size2; /* High 32-bits of size */ } btb$r_size2_fields; } btb$r_size2_overlay; __union { __int64 btb$q_lbn2; /* Starting LBN of 2nd boot file */ __struct { int btb$l_low_lbn2; /* Low 32-bits of LBN */ int btb$l_high_lbn2; /* High 32-bits of LBN */ } btb$r_lbn2_fields; } btb$r_lbn2_overlay; __union { unsigned __int64 btb$q_flags; /* Boot block flags */ __struct { unsigned int btb$l_low_flags; /* Low longword of flags */ unsigned int btb$l_high_flags; /* High longword of flags */ } btb$r_flag_fields1; __struct { unsigned btb$v_notcontig : 1; /* Bootstrap is not contiguous */ unsigned btb$v_fill_0_ : 7; } btb$r_flag_fields; } btb$r_flags_overlay; __union { __int64 btb$q_checksum2; /* Checksum of entire block */ __struct { int btb$l_low_check2; /* Low 32-bits of checksum */ int btb$l_high_check2; /* High 32-bits of checksum */ } btb$r_checksum2_fields; } btb$r_checksum2_overlay; } BTB; #if !defined(__VAXC) #define btb$l_lbn1 btb$r_lbn1_overlay.btb$l_lbn1 #define btb$w_high_lbn btb$r_lbn1_overlay.btb$r_lbn1_fields.btb$w_high_lbn #define btb$w_low_lbn btb$r_lbn1_overlay.btb$r_lbn1_fields.btb$w_low_lbn #define btb$b_vax_code btb$r_code_overlay.btb$b_vax_code #define btb$l_stuff btb$r_code_overlay.btb$r_code_fields.btb$l_stuff #define btb$l_more_stuff btb$r_code_overlay.btb$r_code_fields.btb$l_more_stuff #define btb$t_comment btb$r_code_overlay.btb$r_code_fields.btb$t_comment #define btb$q_size2 btb$r_size2_overlay.btb$q_size2 #define btb$l_low_size2 btb$r_size2_overlay.btb$r_size2_fields.btb$l_low_size2 #define btb$l_high_size2 btb$r_size2_overlay.btb$r_size2_fields.btb$l_high_size2 #define btb$q_lbn2 btb$r_lbn2_overlay.btb$q_lbn2 #define btb$l_low_lbn2 btb$r_lbn2_overlay.btb$r_lbn2_fields.btb$l_low_lbn2 #define btb$l_high_lbn2 btb$r_lbn2_overlay.btb$r_lbn2_fields.btb$l_high_lbn2 #define btb$q_flags btb$r_flags_overlay.btb$q_flags #define btb$l_low_flags btb$r_flags_overlay.btb$r_flag_fields1.btb$l_low_flags #define btb$l_high_flags btb$r_flags_overlay.btb$r_flag_fields1.btb$l_high_flags #define btb$v_notcontig btb$r_flags_overlay.btb$r_flag_fields.btb$v_notcontig #define btb$q_checksum2 btb$r_checksum2_overlay.btb$q_checksum2 #define btb$l_low_check2 btb$r_checksum2_overlay.btb$r_checksum2_fields.btb$l_low_check2 #define btb$l_high_check2 btb$r_checksum2_overlay.btb$r_checksum2_fields.btb$l_high_check2 #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 /* __BTBDEF_LOADED */