#ifndef __PPC_TDEP_H__
#define __PPC_TDEP_H__
#include "defs.h"
#define INVALID_ADDRESS 0xffffffff
struct type;
struct frame_info;
struct frame_extra_info
{
CORE_ADDR initial_sp;
struct ppc_function_boundaries *bounds;
struct ppc_function_properties *props;
};
char *ppc_register_name (int regno);
void ppc_init_extra_frame_info PARAMS ((int fromleaf, struct frame_info *prev));
void ppc_print_extra_frame_info PARAMS ((struct frame_info *frame));
void ppc_init_frame_pc_first PARAMS ((int fromleaf, struct frame_info *prev));
void ppc_init_frame_pc PARAMS ((int fromleaf, struct frame_info *prev));
CORE_ADDR ppc_frame_saved_pc PARAMS ((struct frame_info *fi));
CORE_ADDR ppc_frame_saved_pc_after_call PARAMS ((struct frame_info *frame));
CORE_ADDR ppc_frame_prev_pc PARAMS ((struct frame_info *frame));
CORE_ADDR ppc_frame_chain PARAMS ((struct frame_info *frame));
int ppc_frame_chain_valid PARAMS ((CORE_ADDR chain, struct frame_info *frame));
int ppc_is_dummy_frame PARAMS ((struct frame_info *frame));
CORE_ADDR ppc_frame_cache_initial_stack_address PARAMS ((struct frame_info *fi));
CORE_ADDR ppc_frame_initial_stack_address PARAMS ((struct frame_info *fi));
int ppc_is_magic_function_pointer PARAMS ((CORE_ADDR addr));
CORE_ADDR ppc_skip_trampoline_code PARAMS ((CORE_ADDR pc));
CORE_ADDR ppc_convert_from_func_ptr_addr PARAMS ((CORE_ADDR addr));
CORE_ADDR ppc_find_toc_address PARAMS ((CORE_ADDR pc));
int ppc_use_struct_convention PARAMS ((int gccp, struct type *valtype));
CORE_ADDR ppc_extract_struct_value_address PARAMS
((char regbuf[]));
void ppc_extract_return_value PARAMS
((struct type *valtype, char regbuf[], char *valbuf));
CORE_ADDR ppc_skip_prologue PARAMS ((CORE_ADDR pc));
int ppc_frameless_function_invocation PARAMS ((struct frame_info *frame));
int ppc_invalid_float PARAMS ((char *f, size_t len));
#endif