ppc-macosx-frameinfo.h [plain text]
#ifndef __GDB_PPC_MACOSX_FRAMEINFO_H__
#define __GDB_PPC_MACOSX_FRAMEINFO_H__
#include "defs.h"
struct frame_info;
typedef struct ppc_function_boundaries_request {
CORE_ADDR min_start;
CORE_ADDR max_end;
CORE_ADDR contains_pc;
CORE_ADDR prologue_start;
CORE_ADDR body_start;
CORE_ADDR epilogue_start;
CORE_ADDR function_end;
} ppc_function_boundaries_request;
typedef struct ppc_function_boundaries {
CORE_ADDR prologue_start;
CORE_ADDR body_start;
CORE_ADDR epilogue_start;
CORE_ADDR function_end;
} ppc_function_boundaries;
typedef struct ppc_function_properties {
int offset;
int saved_gpr;
int saved_fpr;
int gpr_offset;
int fpr_offset;
char frameless;
char frameptr_used;
int frameptr_reg;
CORE_ADDR frameptr_pc;
CORE_ADDR lr_saved;
int lr_offset;
CORE_ADDR lr_invalid;
CORE_ADDR lr_valid_again;
int lr_reg;
char cr_saved;
int cr_offset;
char minimal_toc_loaded;
int pic_base_reg;
CORE_ADDR pic_base_address;
} ppc_function_properties;
void ppc_print_boundaries PARAMS ((ppc_function_boundaries *bounds));
void ppc_print_properties PARAMS ((ppc_function_properties *props));
CORE_ADDR ppc_parse_instructions PARAMS
((CORE_ADDR start, CORE_ADDR end, ppc_function_properties *props));
void ppc_clear_function_boundaries_request PARAMS ((ppc_function_boundaries_request *request));
void ppc_clear_function_boundaries PARAMS ((ppc_function_boundaries *boundaries));
void ppc_clear_function_properties PARAMS ((ppc_function_properties *properties));
int ppc_find_function_boundaries PARAMS
((ppc_function_boundaries_request *request,
ppc_function_boundaries *reply));
int ppc_frame_cache_boundaries PARAMS ((struct frame_info *frame, ppc_function_boundaries *bounds));
int ppc_frame_cache_properties PARAMS ((struct frame_info *frame, ppc_function_properties *props));
int safe_read_memory_unsigned_integer (CORE_ADDR addr, int len, unsigned long *val);
#endif