/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos720 src/bos/usr/include/linenum.h 1.8.1.1 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 1988,1993 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ /* @(#)65 1.8.1.1 src/bos/usr/include/linenum.h, cmdld, bos720 3/26/12 11:15:08 */ #ifndef _H_LNUM #define _H_LNUM /* * COMPONENT_NAME: cmdld * * STRUCTURES: lineno, lineno_64 * * ORIGINS: 3, 27 * */ /* There is one line number entry for every * source file line that has associated code. * Line numbers are grouped by function. * The first entry in a function grouping * will have l_lnno == 0 and in place of physical * address will be the symbol table index of * the symbol for the function. In hybrid mode, the following names should be used: ============================================================================ | Basic field or macro name | 32-bit name | 64-bit name | ============================================================================ | l_addr.l_symndx | l_addr32.l_symndx | l_addr64.l_symndx | | l_addr.l_paddr | l_addr32.l_paddr | l_addr64.l_paddr | | l_lnno | l_lnno32 | l_lnno64 | | LINESZ | LINESZ_32 | LINESZ_64 | ============================================================================ */ #include #ifdef __cplusplus extern "C" { #endif #ifndef __XCOFF_HYBRID__ #ifdef __XCOFF32__ typedef struct lineno { union { _LONG32 l_symndx; /* symbol table index of function if l_lnno == 0 */ _OFFSET32 l_paddr; /* address of instruction corresponding to line number */ } l_addr; unsigned short l_lnno; /* line number */ } LINENO; #define LINESZ (6) /* Do not use sizeof(LINENO) */ #endif /* __XCOFF32__ */ #ifdef __XCOFF64__ typedef struct _S_(lineno) { union { _INT32 l_symndx; /* symbol table index of function if l_lnno == 0 */ _OFFSET64 l_paddr; /* address of instruction corresponding to line number */ } l_addr; unsigned int l_lnno; /* line number */ } _S_(LINENO); #ifdef __XCOFF_32_64__ #define LINESZ_64 (12) /* Do not use sizeof(LINENO_64) */ #else #define LINESZ (12) /* Do not use sizeof(LINENO) */ #endif #endif /* __XCOFF64__ */ #else /* __XCOFF_HYBRID__ */ typedef struct lineno { union { struct { union { _LONG32 l_symndx; /* symbol table index of function if l_lnno == 0 */ _OFFSET32 l_paddr; /* address of instruction corresponding to line */ } _addr32; unsigned short _lnno32; /* line number */ } _s32; struct { union { _INT32 l_symndx; /* symbol table index of function if l_lnno == 0 */ _OFFSET64 l_paddr; /* address of instruction corresponding to line */ } _addr64; unsigned int _lnno64; /* line number */ } _s64; } _u; } LINENO; #define l_addr32 _u._s32._addr32 #define l_lnno32 _u._s32._lnno32 #define l_addr64 _u._s64._addr64 #define l_lnno64 _u._s64._lnno64 #define LINESZ_32 (6) #define LINESZ_64 (12) #endif /* __XCOFF_HYBRID__ */ #ifdef __cplusplus } #endif #endif /* _H_LNUM */