00001 /* 00002 ################################################################## 00003 File Name Auxiliary Entry Format 00004 0 14 0 0 x_fname Source file string 00005 0 4 0 0 x_zeroes Zero, indicating file string in string table (overlays first 4 bytes of x_fname) 00006 4 4 0 0 x_offset Offset of file string in string table (overlays 5th-8th bytes of x_fname) 00007 14 1 0 0 x_ftype File string type 00008 15 2 0 0 Reserved Must contain 0. 00009 17 1 0 0 x_auxtype Auxiliary symbol type(XCOFF64 only) 00010 ################################################################## 00011 csect Auxiliary Entry Format 00012 0 4 0 0 x_scnlen (See field definition section) 00013 0 0 0 4 x_scnlen_lo (See field definition section) Low 4 bytes of section length 00014 4 4 4 4 x_parmhash Offset of parameter type-check hash in .typchk section 00015 8 2 8 2 x_snhash .typchk section number 00016 10 1 10 1 x_smtyp Symbol alignment and type 3-bit symbol alignment (log 2) 3-bit symbol type 00017 11 1 11 1 x_smclas Storage mapping class 00018 12 4 0 0 x_stab Reserved 00019 16 2 0 0 x_snstab Reserved 00020 0 0 12 4 x_scnlen_hi (See field definition section) High 4 bytes of section length 00021 0 0 16 1 (pad) Reserved 00022 0 0 17 1 x_auxtype Contains _AUX_CSECT; indicates type of auxiliary entry 00023 ################################################################## 00024 Function Auxiliary Entry Format XCOFF32 XCOFF64 Name Description 00025 0 4 0 0 x_exptr File offset to exception table entry. 00026 4 4 8 4 x_fsize Size of function in bytes 00027 8 4 0 8 x_lnnoptr File pointer to line number 00028 12 4 12 4 x_endndx Symbol table index of next entry beyond this function 00029 16 1 16 1 (pad) Unused 00030 0 0 17 1 x_auxtype Contains _AUX_FCN; Type of auxiliary entry 00031 ################################################################## 00032 Block Auxiliary Entry Format (XCOFF64 only) 00033 0 4 0 0 (no name) Reserved 00034 4 2 0 4 x_lnno Source line number 00035 6 12 4 13 (no name) Reserved 00036 0 0 17 1 x_auxtype Contains _AUX_SYM; Type of auxiliary entry 00037 ################################################################## 00038 Section Auxiliary Entry Format (XCOFF32 Only) Offset Length in Bytes Name Description 00039 0 4 0 0 x_scnlen Section length 00040 4 2 0 0 x_nreloc Number of relocation entries 00041 6 2 0 0 x_nlinno Number of line numbers 00042 8 10 0 0 (no name) Reserved 00043 ################################################################## 00044 Exception Auxiliary Entry Format (XCOFF64 only) 00045 0 8 0 0 x_exptr File offset to exception table entry. 00046 8 4 0 0 x_fsize Size of function in bytes 00047 12 4 0 0 x_endndx Symbol table index of next entry beyond this function 00048 16 1 0 0 (pad) Unused 00049 17 1 0 0 x_auxtype Contains _AUX_EXCEPT; Type of auxiliary entry 00050 ################################################################## 00051 */ 00052 00053 #define AUXILARY_MACROS_BASIS(__str) \ 00054 GET_FIELD_BASIS_A(char*,x_fname,x_file); \ 00055 GET_FIELD_BASIS_A(uint32_t,x_zeroes,x_file); \ 00056 GET_FIELD_BASIS_A(uint32_t,x_offset,x_file); \ 00057 GET_FIELD_BASIS_A(uint8_t,x_ftype,x_file); \ 00058 \ 00059 GET_FIELD_BASIS_A(uint32_t,x_scnlen,x_csect); \ 00060 GET_FIELD_BASIS_A(uint32_t,x_scnlen_lo,x_csect); \ 00061 GET_FIELD_BASIS_A(uint32_t,x_parmhash,x_csect); \ 00062 GET_FIELD_BASIS_A(uint16_t,x_snhash,x_csect); \ 00063 GET_FIELD_BASIS_A(uint8_t,x_smtyp,x_csect); \ 00064 GET_FIELD_BASIS_A(uint8_t,x_smclas,x_csect); \ 00065 GET_FIELD_BASIS_A(uint32_t,x_stab,x_csect); \ 00066 GET_FIELD_BASIS_A(uint16_t,x_snstab,x_csect); \ 00067 GET_FIELD_BASIS_A(uint32_t,x_scnlen_hi,x_csect); \ 00068 \ 00069 GET_FIELD_BASIS_A(uint32_t,x_exptr,x_fcn); \ 00070 GET_FIELD_BASIS_A(uint32_t,x_fsize,x_fcn); \ 00071 GET_FIELD_BASIS_A(uint64_t,x_lnnoptr,x_fcn); \ 00072 GET_FIELD_BASIS_A(uint32_t,x_endndx,x_fcn); \ 00073 \ 00074 GET_FIELD_BASIS_A(uint32_t,x_lnno,x_misc); \ 00075 \ 00076 GET_FIELD_BASIS_A(uint32_t,x_scnlen,x_scn); \ 00077 GET_FIELD_BASIS_A(uint16_t,x_nreloc,x_scn); \ 00078 GET_FIELD_BASIS_A(uint16_t,x_nlinno,x_scn); \ 00079 \ 00080 GET_FIELD_BASIS_A(uint64_t,x_exptr,x_except); \ 00081 GET_FIELD_BASIS_A(uint32_t,x_fsize,x_except); \ 00082 GET_FIELD_BASIS_A(uint32_t,x_endndx,x_except); \ 00083