| Index: gdb/gdbarch.h
|
| diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
|
| index a239aa45966fcfc5aa34f50dc25ae9ddff210bcc..b58efc868e2575d081f7f9abf34f6c03b3679a10 100644
|
| --- a/gdb/gdbarch.h
|
| +++ b/gdb/gdbarch.h
|
| @@ -1,9 +1,9 @@
|
| -/* *INDENT-OFF* */ /* THIS FILE IS GENERATED */
|
| +/* *INDENT-OFF* */ /* THIS FILE IS GENERATED -*- buffer-read-only: t -*- */
|
| +/* vi:set ro: */
|
|
|
| /* Dynamic architecture support for GDB, the GNU debugger.
|
|
|
| - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
| - 2007, 2008, 2009 Free Software Foundation, Inc.
|
| + Copyright (C) 1998-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -56,18 +56,28 @@ struct syscall;
|
| struct agent_expr;
|
| struct axs_value;
|
| struct stap_parse_info;
|
| +struct ravenscar_arch_ops;
|
| +struct elf_internal_linux_prpsinfo;
|
|
|
| -/* The architecture associated with the connection to the target.
|
| -
|
| - The architecture vector provides some information that is really
|
| - a property of the target: The layout of certain packets, for instance;
|
| - or the solib_ops vector. Etc. To differentiate architecture accesses
|
| - to per-target properties from per-thread/per-frame/per-objfile properties,
|
| - accesses to per-target properties should be made through target_gdbarch.
|
| +/* The architecture associated with the inferior through the
|
| + connection to the target.
|
| +
|
| + The architecture vector provides some information that is really a
|
| + property of the inferior, accessed through a particular target:
|
| + ptrace operations; the layout of certain RSP packets; the solib_ops
|
| + vector; etc. To differentiate architecture accesses to
|
| + per-inferior/target properties from
|
| + per-thread/per-frame/per-objfile properties, accesses to
|
| + per-inferior/target properties should be made through this
|
| + gdbarch. */
|
| +
|
| +/* This is a convenience wrapper for 'current_inferior ()->gdbarch'. */
|
| +extern struct gdbarch *target_gdbarch (void);
|
| +
|
| +/* The initial, default architecture. It uses host values (for want of a better
|
| + choice). */
|
| +extern struct gdbarch startup_gdbarch;
|
|
|
| - Eventually, when support for multiple targets is implemented in
|
| - GDB, this global should be made target-specific. */
|
| -extern struct gdbarch *target_gdbarch;
|
|
|
| /* Callback type for the 'iterate_over_objfiles_in_search_order'
|
| gdbarch method. */
|
| @@ -332,8 +342,6 @@ typedef struct type * (gdbarch_register_type_ftype) (struct gdbarch *gdbarch, in
|
| extern struct type * gdbarch_register_type (struct gdbarch *gdbarch, int reg_nr);
|
| extern void set_gdbarch_register_type (struct gdbarch *gdbarch, gdbarch_register_type_ftype *register_type);
|
|
|
| -/* See gdbint.texinfo, and PUSH_DUMMY_CALL. */
|
| -
|
| extern int gdbarch_dummy_id_p (struct gdbarch *gdbarch);
|
|
|
| typedef struct frame_id (gdbarch_dummy_id_ftype) (struct gdbarch *gdbarch, struct frame_info *this_frame);
|
| @@ -346,8 +354,6 @@ extern void set_gdbarch_dummy_id (struct gdbarch *gdbarch, gdbarch_dummy_id_ftyp
|
| extern int gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch);
|
| extern void set_gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch, int deprecated_fp_regnum);
|
|
|
| -/* See gdbint.texinfo. See infcall.c. */
|
| -
|
| extern int gdbarch_push_dummy_call_p (struct gdbarch *gdbarch);
|
|
|
| typedef CORE_ADDR (gdbarch_push_dummy_call_ftype) (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr);
|
| @@ -394,7 +400,10 @@ typedef int (gdbarch_cannot_store_register_ftype) (struct gdbarch *gdbarch, int
|
| extern int gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum);
|
| extern void set_gdbarch_cannot_store_register (struct gdbarch *gdbarch, gdbarch_cannot_store_register_ftype *cannot_store_register);
|
|
|
| -/* setjmp/longjmp support. */
|
| +/* Determine the address where a longjmp will land and save this address
|
| + in PC. Return nonzero on success.
|
| +
|
| + FRAME corresponds to the longjmp frame. */
|
|
|
| extern int gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch);
|
|
|
| @@ -591,13 +600,6 @@ typedef CORE_ADDR (gdbarch_addr_bits_remove_ftype) (struct gdbarch *gdbarch, COR
|
| extern CORE_ADDR gdbarch_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr);
|
| extern void set_gdbarch_addr_bits_remove (struct gdbarch *gdbarch, gdbarch_addr_bits_remove_ftype *addr_bits_remove);
|
|
|
| -/* It is not at all clear why gdbarch_smash_text_address is not folded into
|
| - gdbarch_addr_bits_remove. */
|
| -
|
| -typedef CORE_ADDR (gdbarch_smash_text_address_ftype) (struct gdbarch *gdbarch, CORE_ADDR addr);
|
| -extern CORE_ADDR gdbarch_smash_text_address (struct gdbarch *gdbarch, CORE_ADDR addr);
|
| -extern void set_gdbarch_smash_text_address (struct gdbarch *gdbarch, gdbarch_smash_text_address_ftype *smash_text_address);
|
| -
|
| /* FIXME/cagney/2001-01-18: This should be split in two. A target method that
|
| indicates if the target needs software single step. An ISA method to
|
| implement it.
|
| @@ -734,6 +736,18 @@ typedef char * (gdbarch_make_corefile_notes_ftype) (struct gdbarch *gdbarch, bfd
|
| extern char * gdbarch_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size);
|
| extern void set_gdbarch_make_corefile_notes (struct gdbarch *gdbarch, gdbarch_make_corefile_notes_ftype *make_corefile_notes);
|
|
|
| +/* The elfcore writer hook to use to write Linux prpsinfo notes to core
|
| + files. Most Linux architectures use the same prpsinfo32 or
|
| + prpsinfo64 layouts, and so won't need to provide this hook, as we
|
| + call the Linux generic routines in bfd to write prpsinfo notes by
|
| + default. */
|
| +
|
| +extern int gdbarch_elfcore_write_linux_prpsinfo_p (struct gdbarch *gdbarch);
|
| +
|
| +typedef char * (gdbarch_elfcore_write_linux_prpsinfo_ftype) (bfd *obfd, char *note_data, int *note_size, const struct elf_internal_linux_prpsinfo *info);
|
| +extern char * gdbarch_elfcore_write_linux_prpsinfo (struct gdbarch *gdbarch, bfd *obfd, char *note_data, int *note_size, const struct elf_internal_linux_prpsinfo *info);
|
| +extern void set_gdbarch_elfcore_write_linux_prpsinfo (struct gdbarch *gdbarch, gdbarch_elfcore_write_linux_prpsinfo_ftype *elfcore_write_linux_prpsinfo);
|
| +
|
| /* Find core file memory regions */
|
|
|
| extern int gdbarch_find_memory_regions_p (struct gdbarch *gdbarch);
|
| @@ -751,6 +765,15 @@ typedef LONGEST (gdbarch_core_xfer_shared_libraries_ftype) (struct gdbarch *gdba
|
| extern LONGEST gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, LONGEST len);
|
| extern void set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdbarch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries);
|
|
|
| +/* Read offset OFFSET of TARGET_OBJECT_LIBRARIES_AIX formatted shared
|
| + libraries list from core file into buffer READBUF with length LEN. */
|
| +
|
| +extern int gdbarch_core_xfer_shared_libraries_aix_p (struct gdbarch *gdbarch);
|
| +
|
| +typedef LONGEST (gdbarch_core_xfer_shared_libraries_aix_ftype) (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, LONGEST len);
|
| +extern LONGEST gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, LONGEST len);
|
| +extern void set_gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdbarch_core_xfer_shared_libraries_aix_ftype *core_xfer_shared_libraries_aix);
|
| +
|
| /* How the core target converts a PTID from a core file to a string. */
|
|
|
| extern int gdbarch_core_pid_to_str_p (struct gdbarch *gdbarch);
|
| @@ -969,6 +992,20 @@ typedef enum gdb_signal (gdbarch_gdb_signal_from_target_ftype) (struct gdbarch *
|
| extern enum gdb_signal gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch, int signo);
|
| extern void set_gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch, gdbarch_gdb_signal_from_target_ftype *gdb_signal_from_target);
|
|
|
| +/* Signal translation: translate the GDB's internal signal number into
|
| + the inferior's signal (target's) representation. The implementation
|
| + of this method must be host independent. IOW, don't rely on symbols
|
| + of the NAT_FILE header (the nm-*.h files), the host <signal.h>
|
| + header, or similar headers.
|
| + Return the target signal number if found, or -1 if the GDB internal
|
| + signal number is invalid. */
|
| +
|
| +extern int gdbarch_gdb_signal_to_target_p (struct gdbarch *gdbarch);
|
| +
|
| +typedef int (gdbarch_gdb_signal_to_target_ftype) (struct gdbarch *gdbarch, enum gdb_signal signal);
|
| +extern int gdbarch_gdb_signal_to_target (struct gdbarch *gdbarch, enum gdb_signal signal);
|
| +extern void set_gdbarch_gdb_signal_to_target (struct gdbarch *gdbarch, gdbarch_gdb_signal_to_target_ftype *gdb_signal_to_target);
|
| +
|
| /* Extra signal info inspection.
|
|
|
| Return a type suitable to inspect extra signal information. */
|
| @@ -1191,6 +1228,16 @@ typedef void (gdbarch_info_proc_ftype) (struct gdbarch *gdbarch, char *args, enu
|
| extern void gdbarch_info_proc (struct gdbarch *gdbarch, char *args, enum info_proc_what what);
|
| extern void set_gdbarch_info_proc (struct gdbarch *gdbarch, gdbarch_info_proc_ftype *info_proc);
|
|
|
| +/* Implement the "info proc" command for core files. Noe that there
|
| + are two "info_proc"-like methods on gdbarch -- one for core files,
|
| + one for live targets. */
|
| +
|
| +extern int gdbarch_core_info_proc_p (struct gdbarch *gdbarch);
|
| +
|
| +typedef void (gdbarch_core_info_proc_ftype) (struct gdbarch *gdbarch, char *args, enum info_proc_what what);
|
| +extern void gdbarch_core_info_proc (struct gdbarch *gdbarch, char *args, enum info_proc_what what);
|
| +extern void set_gdbarch_core_info_proc (struct gdbarch *gdbarch, gdbarch_core_info_proc_ftype *core_info_proc);
|
| +
|
| /* Iterate over all objfiles in the order that makes the most sense
|
| for the architecture to make global symbol searches.
|
|
|
| @@ -1209,6 +1256,11 @@ typedef void (gdbarch_iterate_over_objfiles_in_search_order_ftype) (struct gdbar
|
| extern void gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype *cb, void *cb_data, struct objfile *current_objfile);
|
| extern void set_gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbarch, gdbarch_iterate_over_objfiles_in_search_order_ftype *iterate_over_objfiles_in_search_order);
|
|
|
| +/* Ravenscar arch-dependent ops. */
|
| +
|
| +extern struct ravenscar_arch_ops * gdbarch_ravenscar_ops (struct gdbarch *gdbarch);
|
| +extern void set_gdbarch_ravenscar_ops (struct gdbarch *gdbarch, struct ravenscar_arch_ops * ravenscar_ops);
|
| +
|
| /* Definition for an unknown syscall, used basically in error-cases. */
|
| #define UNKNOWN_SYSCALL (-1)
|
|
|
| @@ -1373,15 +1425,9 @@ extern int gdbarch_update_p (struct gdbarch_info info);
|
| extern struct gdbarch *gdbarch_find_by_info (struct gdbarch_info info);
|
|
|
|
|
| -/* Helper function. Set the global "target_gdbarch" to "gdbarch".
|
| -
|
| - FIXME: kettenis/20031124: Of the functions that follow, only
|
| - gdbarch_from_bfd is supposed to survive. The others will
|
| - dissappear since in the future GDB will (hopefully) be truly
|
| - multi-arch. However, for now we're still stuck with the concept of
|
| - a single active architecture. */
|
| +/* Helper function. Set the target gdbarch to "gdbarch". */
|
|
|
| -extern void deprecated_target_gdbarch_select_hack (struct gdbarch *gdbarch);
|
| +extern void set_target_gdbarch (struct gdbarch *gdbarch);
|
|
|
|
|
| /* Register per-architecture data-pointer.
|
| @@ -1426,7 +1472,7 @@ extern void set_gdbarch_from_file (bfd *);
|
| extern void initialize_current_architecture (void);
|
|
|
| /* gdbarch trace variable */
|
| -extern int gdbarch_debug;
|
| +extern unsigned int gdbarch_debug;
|
|
|
| extern void gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file);
|
|
|
|
|