aboutsummaryrefslogtreecommitdiff
path: root/gdb/auxv.h
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2016-06-11 15:51:38 -0700
committerJohn Baldwin <jhb@FreeBSD.org>2016-06-24 10:34:29 -0700
commit2faa34476d9e6120eaf389b7f91b7227183fa2ce (patch)
treed0bdcf321eebfbd385ee4f89df0785063c6078a6 /gdb/auxv.h
parent3350c5f5de3d2e62dd9de2a76cf2d5d8728d2600 (diff)
downloadbinutils-2faa34476d9e6120eaf389b7f91b7227183fa2ce.zip
binutils-2faa34476d9e6120eaf389b7f91b7227183fa2ce.tar.gz
binutils-2faa34476d9e6120eaf389b7f91b7227183fa2ce.tar.bz2
Add a new gdbarch method to print a single AUXV entry.
Different platforms have different meanings for auxiliary vector entries. The 'print_auxv_entry' gdbarch method allows an architecture to output a suitable description for platform-specific entries. A fprint_auxv_entry function is split out of fprint_target_auxv. This function outputs the description of a single auxiliary vector entry to the specified file using caller-supplied formatting and strings to describe the vector type. The existing switch on auxiliary vector types is moved out of fprint_target_auxv into a new default_print_auxv_entry function. default_print_auxv_entry chooses an appropriate format and description and calls fprint_single_auxv to describe a single vector entry. This function is used as the default 'print_auxv_entry' gdbarch method. fprint_target_auxv now invokes the gdbarch 'print_auxv_entry' method on each vector entry. gdb/ChangeLog: * auxv.c (fprint_auxv_entry): New function. (default_print_auxv_entry): New function. (fprint_target_auxv): Use gdbarch_print_auxv_entry. * auxv.h (enum auxv_format): New enum. (fprint_auxv_entry): Declare. (default_print_auxv_entry): Declare. * gdbarch.sh (print_auxv_entry): New. * gdbarch.c, gdbarch.h: Re-generated.
Diffstat (limited to 'gdb/auxv.h')
-rw-r--r--gdb/auxv.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/gdb/auxv.h b/gdb/auxv.h
index 9efe604..916f674 100644
--- a/gdb/auxv.h
+++ b/gdb/auxv.h
@@ -46,6 +46,20 @@ extern int target_auxv_parse (struct target_ops *ops,
extern int target_auxv_search (struct target_ops *ops,
CORE_ADDR match, CORE_ADDR *valp);
+/* Print a description of a single AUXV entry on the specified file. */
+enum auxv_format { AUXV_FORMAT_DEC, AUXV_FORMAT_HEX, AUXV_FORMAT_STR };
+
+extern void fprint_auxv_entry (struct ui_file *file, const char *name,
+ const char *description,
+ enum auxv_format format, CORE_ADDR type,
+ CORE_ADDR val);
+
+/* The default implementation of gdbarch_print_auxv_entry. */
+
+extern void default_print_auxv_entry (struct gdbarch *gdbarch,
+ struct ui_file *file, CORE_ADDR type,
+ CORE_ADDR val);
+
/* Print the contents of the target's AUXV on the specified file. */
extern int fprint_target_auxv (struct ui_file *file, struct target_ops *ops);