- Copyright 1993, 1998, 1999, 2000, 2001, 2002, 2005, 2007
- Free Software Foundation, Inc.
+ Copyright (C) 1993-2020 Free Software Foundation, Inc.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
sys/debug.h), which occurs, usually, one per procedure (routine). The table is marked by
a multiple of 4 32-bit word of zeroes in the instruction space. The traceback table is
also referred to as "procedure-end table".
sys/debug.h), which occurs, usually, one per procedure (routine). The table is marked by
a multiple of 4 32-bit word of zeroes in the instruction space. The traceback table is
also referred to as "procedure-end table".
The AIX traceback table representation on which this header is based is defined as a
series of bit field struct specifications. Bit fields are compiler dependent! Thus,
the definitions presented here follow the original header and the existing documentation
(such as it is), but define the fields as BIT MASKS and other macros. The mask names,
The AIX traceback table representation on which this header is based is defined as a
series of bit field struct specifications. Bit fields are compiler dependent! Thus,
the definitions presented here follow the original header and the existing documentation
(such as it is), but define the fields as BIT MASKS and other macros. The mask names,
#define TB_RPG 10U /* RPG */
#define TB_PL8 11U /* PL8 */
#define TB_ASM 12U /* Asm */
#define TB_RPG 10U /* RPG */
#define TB_PL8 11U /* PL8 */
#define TB_ASM 12U /* Asm */
#define TB_INT_PROC 0x10U /* Internal leaf routine. */
#define TB_HAS_CTL 0x08U /* Has controlled automatic storage. */
#define TB_TOCLESS 0X04U /* Routine has no TOC. */
#define TB_INT_PROC 0x10U /* Internal leaf routine. */
#define TB_HAS_CTL 0x08U /* Has controlled automatic storage. */
#define TB_TOCLESS 0X04U /* Routine has no TOC. */
#define TB_CL_DIS_inv 0x1CU /* On-condition directives (see below). */
#define TB_SAVES_CR 0x02U /* Routine saves the CR. */
#define TB_SAVES_LR 0x01U /* Routine saves the LR. */
#define TB_CL_DIS_inv 0x1CU /* On-condition directives (see below). */
#define TB_SAVES_CR 0x02U /* Routine saves the CR. */
#define TB_SAVES_LR 0x01U /* Routine saves the LR. */
#define TB_CL_DIS_INV(x) (((x) & cl_dis_inv) >> 2U)
#define TB_WALK_ONCOND 0U /* Walk stack without restoring state. */
#define TB_DISCARD_ONCOND 1U /* Walk stack and discard. */
#define TB_INVOKE_ONCOND 2U /* Invoke a specific system routine. */
#define TB_CL_DIS_INV(x) (((x) & cl_dis_inv) >> 2U)
#define TB_WALK_ONCOND 0U /* Walk stack without restoring state. */
#define TB_DISCARD_ONCOND 1U /* Walk stack and discard. */
#define TB_INVOKE_ONCOND 2U /* Invoke a specific system routine. */
/* Flags 5. */
#define TB_FLOATPARAMS 0xfeU /* Number of floating point parameters. */
#define TB_PARAMSONSTK 0X01U /* All parameters are on the stack. */
/* Flags 5. */
#define TB_FLOATPARAMS 0xfeU /* Number of floating point parameters. */
#define TB_PARAMSONSTK 0X01U /* All parameters are on the stack. */
long ctl_info_disp[1]; /* Array of stack displacements where each. */
}; /* Anchor is located (array STARTS here). */
long ctl_info_disp[1]; /* Array of stack displacements where each. */
}; /* Anchor is located (array STARTS here). */
#define TB_HAS_VARARGS 0x01U /* Routine has a variable argument list. */
#define TB_NUM_VR_SAVED(x) (((x) & TB_VR_SAVED) >> 2U)
#define TB_HAS_VARARGS 0x01U /* Routine has a variable argument list. */
#define TB_NUM_VR_SAVED(x) (((x) & TB_VR_SAVED) >> 2U)
unsigned char vec_flags2; /* Vec info bits #2: */
#define TB_VECTORPARAMS 0xfeU /* Number of vector parameters. */
#define TB_VEC_PRESENT 0x01U /* Routine uses at least one vec instr. */
unsigned char vec_flags2; /* Vec info bits #2: */
#define TB_VECTORPARAMS 0xfeU /* Number of vector parameters. */
#define TB_VEC_PRESENT 0x01U /* Routine uses at least one vec instr. */