/********************************************************************************************************************************/ /* Created: 15-MAR-2001 23:37:31 by OpenVMS SDL EV1-33 */ /* Source: 15-MAR-2001 23:34:34 _$11$DUA933:[BUILD.SDL]OBJFMT.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $OBJRECDEF ***/ #ifndef __OBJRECDEF_LOADED #define __OBJRECDEF_LOADED 1 #pragma nostandard #ifdef __cplusplus extern "C" { #define __unknown_params ... #else #define __unknown_params #endif #if !defined(__VAXC) && !defined(VAXC) #define __struct struct #define __union union #else #define __struct variant_struct #define __union variant_union #endif #define OBJ$M_PSC_PIC 0x1 #define OBJ$M_PSC_LIB 0x2 #define OBJ$M_PSC_OVL 0x4 #define OBJ$M_PSC_REL 0x8 #define OBJ$M_PSC_GBL 0x10 #define OBJ$M_PSC_SHR 0x20 #define OBJ$M_PSC_EXE 0x40 #define OBJ$M_PSC_RD 0x80 #define OBJ$M_PSC_WRT 0x100 #define OBJ$M_SYM_WEAK 0x1 #define OBJ$M_SYM_DEF 0x2 #define OBJ$M_SYM_UNI 0x4 #define OBJ$M_SYM_REL 0x8 #define OBJ$M_SYMV_WEAK 0x1 #define OBJ$M_SYMV_DEF 0x2 #define OBJ$M_SYMV_UNI 0x4 #define OBJ$M_SYMV_REL 0x8 #define OBJ$M_SYMM_WEAK 0x1 #define OBJ$M_SYMM_DEF 0x2 #define OBJ$M_SYMM_UNI 0x4 #define OBJ$M_SYMM_REL 0x8 struct sdadefs { __union { unsigned char obj$b_type; /* Type of record */ unsigned char obj$b_gsd_type; /* Type of GSD record */ } obj$r_type_overlay; __union { __struct { unsigned char obj$b_psc_ali; /* PSECT alignment (2**n) */ __union { unsigned short int obj$w_psc_flag; /* PSECT flags: */ __struct { unsigned obj$v_psc_pic : 1; /* Position independent */ unsigned obj$v_psc_lib : 1; /* Defined from sharable image */ unsigned obj$v_psc_ovl : 1; /* Overlaid psect */ unsigned obj$v_psc_rel : 1; /* Requires relocation */ unsigned obj$v_psc_gbl : 1; /* PSECT is global */ unsigned obj$v_psc_shr : 1; /* Potentially sharable */ unsigned obj$v_psc_exe : 1; /* Executable */ unsigned obj$v_psc_rd : 1; /* Can be read */ unsigned obj$v_psc_wrt : 1; /* Can be written */ unsigned obj$v_fill_2 : 7; } obj$r_fill_1; } obj$r_fill_0; unsigned int obj$l_psc_len; /* Length of PSECT */ char obj$t_psc_name; /* PSECT name (counted string) */ } obj$r_psect_record; __struct { unsigned char obj$b_sym_dtype; /* Data type (see Arch. Handbook, Ap. C) */ __union { unsigned short int obj$w_sym_flags; /* Symbol flags: */ __struct { unsigned obj$v_sym_weak : 1; /* Weak resolution (0 = strong) */ unsigned obj$v_sym_def : 1; /* Definition (0 = reference) */ unsigned obj$v_sym_uni : 1; /* Universal definition (0 = local) */ unsigned obj$v_sym_rel : 1; /* Relative symbol (0 = absolute) */ unsigned obj$v_fill_5 : 4; } obj$r_fill_4; } obj$r_fill_3; unsigned char obj$b_sym_psind; /* PSECT index (only if def) */ unsigned int obj$l_sym_value; /* Value of symbol (only if def) */ char obj$t_sym_name; /* Symbol name (counted string) */ } obj$r_global_sym_record; __struct { unsigned char obj$b_epm_dtype; /* Data type (see Arch. Handbook, Ap. C) */ unsigned short int obj$w_epm_flags; /* Flags (same as SYM_FLAGS) */ unsigned char obj$b_epm_psind; /* PSECT index (only if def) */ unsigned int obj$l_epm_value; /* Value of symbol (only if def) */ unsigned short int obj$w_epm_mask; /* Entry mask */ char obj$t_epm_name; /* Symbol name (counted string) */ } obj$r_entry_point_record; __struct { unsigned char obj$b_symv_dtype; /* Data type (see Arch. Handbook, Ap. C) */ __union { unsigned short int obj$w_symv_flags; /* Symbol flags: */ __struct { unsigned obj$v_symv_weak : 1; /* Weak resolution (0 = strong) */ unsigned obj$v_symv_def : 1; /* Definition (0 = reference) */ unsigned obj$v_symv_uni : 1; /* Universal definition (0 = local) */ unsigned obj$v_symv_rel : 1; /* Relative symbol (0 = absolute) */ unsigned obj$v_fill_8 : 4; } obj$r_fill_7; } obj$r_fill_6; unsigned char obj$b_symv_psind; /* PSECT index (only if def) */ unsigned int obj$l_symv_value; /* Value of symbol (only if def) */ unsigned int obj$l_symv_vector; /* Vectored value of symbol (only if def) */ char obj$t_symv_name; /* Symbol name (counted string) */ } obj$r_global_symv_record; __struct { unsigned char obj$b_epmv_dtype; /* Data type (see Arch. Handbook, Ap. C) */ unsigned short int obj$w_epmv_flags; /* Flags (same as SYM_FLAGS) */ unsigned char obj$b_epmv_psind; /* PSECT index (only if def) */ unsigned int obj$l_epmv_value; /* Value of symbol (only if def) */ unsigned int obj$l_epmv_vector; /* Vectored value of symbol (only if def) */ unsigned short int obj$w_epmv_mask; /* Entry mask */ char obj$t_epmv_name; /* Symbol name (counted string) */ } obj$r_global_epmv_record; __struct { unsigned char obj$b_symm_dtype; /* Data type (see Arch. Handbook, Ap. C) */ __union { unsigned short int obj$w_symm_flags; /* Symbol flags: */ __struct { unsigned obj$v_symm_weak : 1; /* Weak resolution (0 = strong) */ unsigned obj$v_symm_def : 1; /* Definition (0 = reference) */ unsigned obj$v_symm_uni : 1; /* Universal definition (0 = local) */ unsigned obj$v_symm_rel : 1; /* Relative symbol (0 = absolute) */ unsigned obj$v_fill_11 : 4; } obj$r_fill_10; } obj$r_fill_9; unsigned char obj$b_symm_psind; /* PSECT index (only if def) */ unsigned int obj$l_symm_value; /* Value of symbol (only if def) */ unsigned int obj$l_symm_version_mask; /* Version mask of symbol (only if def) */ char obj$t_symm_name; /* Symbol name (counted string) */ } obj$r_global_symm_record; __struct { unsigned char obj$b_epmm_dtype; /* Data type (see Arch. Handbook, Ap. C) */ unsigned short int obj$w_epmm_flags; /* Flags (same as SYM_FLAGS) */ unsigned char obj$b_epmm_psind; /* PSECT index (only if def) */ unsigned int obj$l_epmm_value; /* Value of symbol (only if def) */ unsigned int obj$l_epmm_version_mask; /* Version mask of symbol (only if def) */ unsigned short int obj$w_epmm_mask; /* Entry mask */ char obj$t_epmm_name; /* Symbol name (counted string) */ } obj$r_global_epmm_record; __struct { unsigned char obj$b_eom_sev; /* Error severity for module */ unsigned char obj$b_eom_psind; /* PSECT index of transfer address */ unsigned int obj$l_eom_trans; /* Transfer address */ } obj$r_eom_record; } obj$r_records_overlay; } ; #if !defined(__VAXC) && !defined(VAXC) #define obj$b_type obj$r_type_overlay.obj$b_type #define obj$b_gsd_type obj$r_type_overlay.obj$b_gsd_type #define obj$b_psc_ali obj$r_records_overlay.obj$r_psect_record.obj$b_psc_ali #define obj$w_psc_flag obj$r_records_overlay.obj$r_psect_record.obj$r_fill_0.obj$w_psc_flag #define obj$v_psc_pic obj$r_records_overlay.obj$r_psect_record.obj$r_fill_0.obj$r_fill_1.obj$v_psc_pic #define obj$v_psc_lib obj$r_records_overlay.obj$r_psect_record.obj$r_fill_0.obj$r_fill_1.obj$v_psc_lib #define obj$v_psc_ovl obj$r_records_overlay.obj$r_psect_record.obj$r_fill_0.obj$r_fill_1.obj$v_psc_ovl #define obj$v_psc_rel obj$r_records_overlay.obj$r_psect_record.obj$r_fill_0.obj$r_fill_1.obj$v_psc_rel #define obj$v_psc_gbl obj$r_records_overlay.obj$r_psect_record.obj$r_fill_0.obj$r_fill_1.obj$v_psc_gbl #define obj$v_psc_shr obj$r_records_overlay.obj$r_psect_record.obj$r_fill_0.obj$r_fill_1.obj$v_psc_shr #define obj$v_psc_exe obj$r_records_overlay.obj$r_psect_record.obj$r_fill_0.obj$r_fill_1.obj$v_psc_exe #define obj$v_psc_rd obj$r_records_overlay.obj$r_psect_record.obj$r_fill_0.obj$r_fill_1.obj$v_psc_rd #define obj$v_psc_wrt obj$r_records_overlay.obj$r_psect_record.obj$r_fill_0.obj$r_fill_1.obj$v_psc_wrt #define obj$l_psc_len obj$r_records_overlay.obj$r_psect_record.obj$l_psc_len #define obj$t_psc_name obj$r_records_overlay.obj$r_psect_record.obj$t_psc_name #define obj$b_sym_dtype obj$r_records_overlay.obj$r_global_sym_record.obj$b_sym_dtype #define obj$w_sym_flags obj$r_records_overlay.obj$r_global_sym_record.obj$r_fill_3.obj$w_sym_flags #define obj$v_sym_weak obj$r_records_overlay.obj$r_global_sym_record.obj$r_fill_3.obj$r_fill_4.obj$v_sym_weak #define obj$v_sym_def obj$r_records_overlay.obj$r_global_sym_record.obj$r_fill_3.obj$r_fill_4.obj$v_sym_def #define obj$v_sym_uni obj$r_records_overlay.obj$r_global_sym_record.obj$r_fill_3.obj$r_fill_4.obj$v_sym_uni #define obj$v_sym_rel obj$r_records_overlay.obj$r_global_sym_record.obj$r_fill_3.obj$r_fill_4.obj$v_sym_rel #define obj$b_sym_psind obj$r_records_overlay.obj$r_global_sym_record.obj$b_sym_psind #define obj$l_sym_value obj$r_records_overlay.obj$r_global_sym_record.obj$l_sym_value #define obj$t_sym_name obj$r_records_overlay.obj$r_global_sym_record.obj$t_sym_name #define obj$b_epm_dtype obj$r_records_overlay.obj$r_entry_point_record.obj$b_epm_dtype #define obj$w_epm_flags obj$r_records_overlay.obj$r_entry_point_record.obj$w_epm_flags #define obj$b_epm_psind obj$r_records_overlay.obj$r_entry_point_record.obj$b_epm_psind #define obj$l_epm_value obj$r_records_overlay.obj$r_entry_point_record.obj$l_epm_value #define obj$w_epm_mask obj$r_records_overlay.obj$r_entry_point_record.obj$w_epm_mask #define obj$t_epm_name obj$r_records_overlay.obj$r_entry_point_record.obj$t_epm_name #define obj$b_symv_dtype obj$r_records_overlay.obj$r_global_symv_record.obj$b_symv_dtype #define obj$w_symv_flags obj$r_records_overlay.obj$r_global_symv_record.obj$r_fill_6.obj$w_symv_flags #define obj$v_symv_weak obj$r_records_overlay.obj$r_global_symv_record.obj$r_fill_6.obj$r_fill_7.obj$v_symv_weak #define obj$v_symv_def obj$r_records_overlay.obj$r_global_symv_record.obj$r_fill_6.obj$r_fill_7.obj$v_symv_def #define obj$v_symv_uni obj$r_records_overlay.obj$r_global_symv_record.obj$r_fill_6.obj$r_fill_7.obj$v_symv_uni #define obj$v_symv_rel obj$r_records_overlay.obj$r_global_symv_record.obj$r_fill_6.obj$r_fill_7.obj$v_symv_rel #define obj$b_symv_psind obj$r_records_overlay.obj$r_global_symv_record.obj$b_symv_psind #define obj$l_symv_value obj$r_records_overlay.obj$r_global_symv_record.obj$l_symv_value #define obj$l_symv_vector obj$r_records_overlay.obj$r_global_symv_record.obj$l_symv_vector #define obj$t_symv_name obj$r_records_overlay.obj$r_global_symv_record.obj$t_symv_name #define obj$b_epmv_dtype obj$r_records_overlay.obj$r_global_epmv_record.obj$b_epmv_dtype #define obj$w_epmv_flags obj$r_records_overlay.obj$r_global_epmv_record.obj$w_epmv_flags #define obj$b_epmv_psind obj$r_records_overlay.obj$r_global_epmv_record.obj$b_epmv_psind #define obj$l_epmv_value obj$r_records_overlay.obj$r_global_epmv_record.obj$l_epmv_value #define obj$l_epmv_vector obj$r_records_overlay.obj$r_global_epmv_record.obj$l_epmv_vector #define obj$w_epmv_mask obj$r_records_overlay.obj$r_global_epmv_record.obj$w_epmv_mask #define obj$t_epmv_name obj$r_records_overlay.obj$r_global_epmv_record.obj$t_epmv_name #define obj$b_symm_dtype obj$r_records_overlay.obj$r_global_symm_record.obj$b_symm_dtype #define obj$w_symm_flags obj$r_records_overlay.obj$r_global_symm_record.obj$r_fill_9.obj$w_symm_flags #define obj$v_symm_weak obj$r_records_overlay.obj$r_global_symm_record.obj$r_fill_9.obj$r_fill_10.obj$v_symm_weak #define obj$v_symm_def obj$r_records_overlay.obj$r_global_symm_record.obj$r_fill_9.obj$r_fill_10.obj$v_symm_def #define obj$v_symm_uni obj$r_records_overlay.obj$r_global_symm_record.obj$r_fill_9.obj$r_fill_10.obj$v_symm_uni #define obj$v_symm_rel obj$r_records_overlay.obj$r_global_symm_record.obj$r_fill_9.obj$r_fill_10.obj$v_symm_rel #define obj$b_symm_psind obj$r_records_overlay.obj$r_global_symm_record.obj$b_symm_psind #define obj$l_symm_value obj$r_records_overlay.obj$r_global_symm_record.obj$l_symm_value #define obj$l_symm_version_mask obj$r_records_overlay.obj$r_global_symm_record.obj$l_symm_version_mask #define obj$t_symm_name obj$r_records_overlay.obj$r_global_symm_record.obj$t_symm_name #define obj$b_epmm_dtype obj$r_records_overlay.obj$r_global_epmm_record.obj$b_epmm_dtype #define obj$w_epmm_flags obj$r_records_overlay.obj$r_global_epmm_record.obj$w_epmm_flags #define obj$b_epmm_psind obj$r_records_overlay.obj$r_global_epmm_record.obj$b_epmm_psind #define obj$l_epmm_value obj$r_records_overlay.obj$r_global_epmm_record.obj$l_epmm_value #define obj$l_epmm_version_mask obj$r_records_overlay.obj$r_global_epmm_record.obj$l_epmm_version_mask #define obj$w_epmm_mask obj$r_records_overlay.obj$r_global_epmm_record.obj$w_epmm_mask #define obj$t_epmm_name obj$r_records_overlay.obj$r_global_epmm_record.obj$t_epmm_name #define obj$b_eom_sev obj$r_records_overlay.obj$r_eom_record.obj$b_eom_sev #define obj$b_eom_psind obj$r_records_overlay.obj$r_eom_record.obj$b_eom_psind #define obj$l_eom_trans obj$r_records_overlay.obj$r_eom_record.obj$l_eom_trans #endif /* #if !defined(__VAXC) && !defined(VAXC) */ #define OBJ$C_HDR 0 /*Module header record */ #define OBJ$C_HDR_MHD 0 /* Main header record */ #define OBJ$C_HDR_LNM 1 /* Language processor record */ #define OBJ$C_HDR_SRC 2 /* Source files description */ #define OBJ$C_HDR_TTL 3 /* Title text */ #define OBJ$C_HDR_CPR 4 /* Copyright text */ #define OBJ$C_HDR_MTC 5 /* Maintenance text */ #define OBJ$C_HDR_GTX 6 /* General text */ #define OBJ$C_GSD 1 /*Global symbol definition record */ #define OBJ$C_GSD_PSC 0 /* P-sect definition */ #define OBJ$C_GSD_SYM 1 /* Symbol (simple) definition */ #define OBJ$C_GSD_EPM 2 /* Entry point definition */ #define OBJ$C_GSD_PRO 3 /* Procedure definition */ #define OBJ$C_GSD_SYMW 4 /* Symbol definition with word psect */ #define OBJ$C_GSD_EPMW 5 /* Entry point definition with word psect */ #define OBJ$C_GSD_PROW 6 /* Procedure definition with word psect */ #define OBJ$C_GSD_IDC 7 /* Random entity check */ #define OBJ$C_GSD_ENV 8 /* Environment definition */ #define OBJ$C_GSD_LSY 9 /* Local symbol definition/reference */ #define OBJ$C_GSD_LEPM 10 /* Local symbol entry point def. */ #define OBJ$C_GSD_LPRO 11 /* Local symbol procedure def. */ #define OBJ$C_GSD_SPSC 12 /* Shareable image psect definition */ #define OBJ$C_GSD_SYMV 13 /* Global symbol definition (vectored) */ #define OBJ$C_GSD_EPMV 14 /* Entry point definition (vectored) */ #define OBJ$C_GSD_PROV 15 /* Procedure definition (vectored) */ #define OBJ$C_GSD_SYMM 16 /* Global symbol definition (special double valued) */ #define OBJ$C_GSD_EPMM 17 /* Entry point definition (special double valued) */ #define OBJ$C_GSD_PROM 18 /* Procedure definition (special double valued) */ #define OBJ$C_TIR 2 /*Text information record */ #define OBJ$C_EOM 3 /*End of module record */ #define OBJ$C_DBG 4 /*Debugger information record */ #define OBJ$C_TBT 5 /*Traceback information record */ #define OBJ$C_LNK 6 /*Linker options record */ #define OBJ$C_EOMW 7 /*End of module record with word psect */ #define OBJ$C_MAXRECTYP 7 /*Last assigned record type */ #define OBJ$K_SUBTYP 1 #define OBJ$C_SUBTYP 1 #define OBJ$C_MAXRECSIZ 2048 /*Maximum legal record size */ #define OBJ$C_STRLVL 0 /*Structure level */ #define OBJ$C_SYMSIZ 31 /*Maximum symbol length */ #define OBJ$C_STOREPLIM -1 /*Maximum repeat count on store commands */ #define OBJ$C_PSCALILIM 9 /*Maximum p-sect alignment */ struct objrecdef { unsigned char obj$b_rectyp; /*First byte always record type */ /*Permissable record types */ unsigned char obj$b_subtyp; /*Record sub-type byte */ unsigned char obj$b_mhd_strlv; /*Structure level */ __union { unsigned short int obj$w_mhd_recsz; /*Maximum record size */ __struct { char objrecdef$$_fill_1 [2]; #if defined(__VAXC) || defined(VAXC) char obj$t_mhd_name[]; #else /* Warning: empty char[] member for obj$t_mhd_name at end of structure not created */ #endif /* #if defined(__VAXC) || defined(VAXC) */ /*Misc. constants */ } obj$r_mhd_recsz_fields; } obj$r_mhd_recsz_overlay; } ; #if !defined(__VAXC) && !defined(VAXC) #define obj$w_mhd_recsz obj$r_mhd_recsz_overlay.obj$w_mhd_recsz #define obj$t_mhd_name obj$r_mhd_recsz_overlay.obj$r_mhd_recsz_fields.obj$t_mhd_name #endif /* #if !defined(__VAXC) && !defined(VAXC) */ #ifdef __cplusplus } #endif #pragma standard #endif /* __OBJRECDEF_LOADED */