aboutsummaryrefslogtreecommitdiff
path: root/gdb/target.h
diff options
context:
space:
mode:
authorVladimir Prus <vladimir@codesourcery.com>2008-05-04 09:28:27 +0000
committerVladimir Prus <vladimir@codesourcery.com>2008-05-04 09:28:27 +0000
commitc47ffbe3b159da69fcc66cb7ad3a69077641b384 (patch)
tree2b2787dd5be1f1afca6ee3cb7c9ad40950507445 /gdb/target.h
parent55cd6f92dce132108458c2b1bcdba08fc7feb5da (diff)
downloadgdb-c47ffbe3b159da69fcc66cb7ad3a69077641b384.zip
gdb-c47ffbe3b159da69fcc66cb7ad3a69077641b384.tar.gz
gdb-c47ffbe3b159da69fcc66cb7ad3a69077641b384.tar.bz2
Fix auxv data parsing on 64-bit solaris
* target.h (struct target_ops): New field to_auxv_parse. * auxv.c (default_auxv_parse): New, renamed from previous target_auxv_parse. (target_auxv_parse): Try to call target method. Fallback to default_auxv_parse if not found. * procfs.c (procfs_auxv_parse): New. (init_procfs_ops): On Solaris, in 64-bit mode, install procfs_auxv_parse.
Diffstat (limited to 'gdb/target.h')
-rw-r--r--gdb/target.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/target.h b/gdb/target.h
index 3b424ba..8822a40 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -498,6 +498,13 @@ struct target_ops
was available. */
const struct target_desc *(*to_read_description) (struct target_ops *ops);
+ /* Read one auxv entry from *READPTR, not reading locations >= ENDPTR.
+ Return 0 if *READPTR is already at the end of the buffer.
+ Return -1 if there is insufficient buffer for a whole entry.
+ Return 1 if an entry was read into *TYPEP and *VALP. */
+ int (*to_auxv_parse) (struct target_ops *ops, gdb_byte **readptr,
+ gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp);
+
int to_magic;
/* Need sub-structure for target machine related rather than comm related?
*/