#ifndef PPC_TDEP_H
#define PPC_TDEP_H
#include "osabi.h"
struct frame_info;
struct value;
CORE_ADDR ppc_linux_frame_saved_pc (struct frame_info *fi);
void ppc_linux_init_extra_frame_info (int fromleaf, struct frame_info *);
int ppc_linux_frameless_function_invocation (struct frame_info *);
void ppc_linux_frame_init_saved_regs (struct frame_info *);
CORE_ADDR ppc_linux_frame_chain (struct frame_info *);
int ppc_sysv_abi_use_struct_convention (int, struct type *);
int ppc_sysv_abi_broken_use_struct_convention (int, struct type *);
CORE_ADDR ppc_sysv_abi_push_arguments (int, struct value **, CORE_ADDR, int,
CORE_ADDR);
int ppc_linux_memory_remove_breakpoint (CORE_ADDR addr, char *contents_cache);
struct link_map_offsets *ppc_linux_svr4_fetch_link_map_offsets (void);
void ppc_linux_supply_gregset (char *buf);
void ppc_linux_supply_fpregset (char *buf);
CORE_ADDR rs6000_frame_saved_pc (struct frame_info *fi);
void rs6000_init_extra_frame_info (int fromleaf, struct frame_info *);
int rs6000_frameless_function_invocation (struct frame_info *);
void rs6000_frame_init_saved_regs (struct frame_info *);
CORE_ADDR rs6000_frame_chain (struct frame_info *);
int altivec_register_p (int regno);
void rs6000_pop_frame (void);
void rs6000_info_powerpc_command (char *args, int from_tty);
extern struct cmd_list_element *info_powerpc_cmdlist;
struct gdbarch_tdep
{
int wordsize;
enum gdb_osabi osabi;
int *regoff;
const struct reg *regs;
int ppc_gp0_regnum;
int ppc_gplast_regnum;
int ppc_toc_regnum;
int ppc_ps_regnum;
int ppc_cr_regnum;
int ppc_lr_regnum;
int ppc_ctr_regnum;
int ppc_xer_regnum;
int ppc_fpscr_regnum;
int ppc_mq_regnum;
int ppc_vr0_regnum;
int ppc_vrsave_regnum;
int ppc_ev0_regnum;
int ppc_ev31_regnum;
int lr_frame_offset;
};
#endif