runtime/unwind/ppc64.h - systemtap
Functions defined
Macros defined
Source code
#ifndef _STP_PPC64_UNWIND_H
#define _STP_PPC64_UNWIND_H
#include <linux/sched.h>
#include <asm/ptrace.h>
#define _stp_get_unaligned(ptr) (*(ptr))
#define UNW_PC(frame) (frame)->regs.nip
#define UNW_SP(frame) (frame)->regs.gpr[1]
#define STACK_LIMIT(ptr) (((ptr) - 1) & ~(THREAD_SIZE - 1))
#define UNW_REGISTER_INFO \
PTREGS_INFO(gpr[0]), \
PTREGS_INFO(gpr[1]), \
PTREGS_INFO(gpr[2]), \
PTREGS_INFO(gpr[3]), \
PTREGS_INFO(gpr[4]), \
PTREGS_INFO(gpr[5]), \
PTREGS_INFO(gpr[6]), \
PTREGS_INFO(gpr[7]), \
PTREGS_INFO(gpr[8]), \
PTREGS_INFO(gpr[9]), \
PTREGS_INFO(gpr[10]), \
PTREGS_INFO(gpr[11]), \
PTREGS_INFO(gpr[12]), \
PTREGS_INFO(gpr[13]), \
PTREGS_INFO(gpr[14]), \
PTREGS_INFO(gpr[15]), \
PTREGS_INFO(gpr[16]), \
PTREGS_INFO(gpr[17]), \
PTREGS_INFO(gpr[18]), \
PTREGS_INFO(gpr[19]), \
PTREGS_INFO(gpr[20]), \
PTREGS_INFO(gpr[21]), \
PTREGS_INFO(gpr[22]), \
PTREGS_INFO(gpr[23]), \
PTREGS_INFO(gpr[24]), \
PTREGS_INFO(gpr[25]), \
PTREGS_INFO(gpr[26]), \
PTREGS_INFO(gpr[27]), \
PTREGS_INFO(gpr[28]), \
PTREGS_INFO(gpr[29]), \
PTREGS_INFO(gpr[30]), \
PTREGS_INFO(gpr[31]), \
PTREGS_INFO(softe), \
PTREGS_INFO(ctr), \
PTREGS_INFO(link), \
PTREGS_INFO(nip)
#define DWARF_REG_MAP(r) \
((r >= 0 && r <= 31) ? r \
: (r == 64 || r == 100) ? 32 \
: (r == 65 || r == 108) ? 34 \
: (r == 66 || r == 109) ? 33 \
: 9999)
#define UNW_PC_IDX 35
#define UNW_SP_IDX 1
#define UNW_NR_REAL_REGS 35
static inline void arch_unw_init_frame_info(struct unwind_frame_info *info,
struct pt_regs *regs,
int sanitize)
{
if (&info->regs == regs) { info->call_frame = 1;
return;
}
memset(info, 0, sizeof(*info));
XXX info->regs = *regs;
}
#endif