| Index: gdb/gdbserver/linux-low.h
|
| diff --git a/gdb/gdbserver/linux-low.h b/gdb/gdbserver/linux-low.h
|
| index 2befc48ada632245915c5a4859e950314c3fad53..99d882aa5e0141e85c2ef75a7afd715e063802de 100644
|
| --- a/gdb/gdbserver/linux-low.h
|
| +++ b/gdb/gdbserver/linux-low.h
|
| @@ -20,9 +20,15 @@
|
| #ifdef HAVE_THREAD_DB_H
|
| #include <thread_db.h>
|
| #endif
|
| +#include <signal.h>
|
|
|
| +#include "gdbthread.h"
|
| #include "gdb_proc_service.h"
|
|
|
| +#define PTRACE_ARG3_TYPE void *
|
| +#define PTRACE_ARG4_TYPE void *
|
| +#define PTRACE_XFER_TYPE long
|
| +
|
| #ifdef HAVE_LINUX_REGSETS
|
| typedef void (*regset_fill_func) (struct regcache *, void *);
|
| typedef void (*regset_store_func) (struct regcache *, const void *);
|
| @@ -46,8 +52,6 @@ struct regset_info
|
| extern struct regset_info target_regsets[];
|
| #endif
|
|
|
| -struct siginfo;
|
| -
|
| struct process_info_private
|
| {
|
| /* Arch-specific additions. */
|
| @@ -70,12 +74,26 @@ struct linux_target_ops
|
|
|
| int num_regs;
|
| int *regmap;
|
| +
|
| + /* Regset support bitmap: 1 for registers that are transferred as a part
|
| + of a regset, 0 for ones that need to be handled individually. This
|
| + can be NULL if all registers are transferred with regsets or regsets
|
| + are not supported. */
|
| + unsigned char *regset_bitmap;
|
| int (*cannot_fetch_register) (int);
|
|
|
| /* Returns 0 if we can store the register, 1 if we can not
|
| store the register, and 2 if failure to store the register
|
| is acceptable. */
|
| int (*cannot_store_register) (int);
|
| +
|
| + /* Hook to fetch a register in some non-standard way. Used for
|
| + example by backends that have read-only registers with hardcoded
|
| + values (e.g., IA64's gr0/fr0/fr1). Returns true if register
|
| + REGNO was supplied, false if not, and we should fallback to the
|
| + standard ptrace methods. */
|
| + int (*fetch_register) (struct regcache *regcache, int regno);
|
| +
|
| CORE_ADDR (*get_pc) (struct regcache *regcache);
|
| void (*set_pc) (struct regcache *regcache, CORE_ADDR newpc);
|
| const unsigned char *breakpoint;
|
| @@ -103,7 +121,7 @@ struct linux_target_ops
|
| Returns true if any conversion was done; false otherwise.
|
| If DIRECTION is 1, then copy from INF to NATIVE.
|
| If DIRECTION is 0, copy from NATIVE to INF. */
|
| - int (*siginfo_fixup) (struct siginfo *native, void *inf, int direction);
|
| + int (*siginfo_fixup) (siginfo_t *native, void *inf, int direction);
|
|
|
| /* Hook to call when a new process is created or attached to.
|
| If extra per-process architecture-specific data is needed,
|
| @@ -265,8 +283,7 @@ struct lwp_info
|
|
|
| extern struct inferior_list all_lwps;
|
|
|
| -char *linux_child_pid_to_exec_file (int pid);
|
| -int elf_64_file_p (const char *file);
|
| +int linux_pid_exe_is_elf_64_file (int pid, unsigned int *machine);
|
|
|
| void linux_attach_lwp (unsigned long pid);
|
| struct lwp_info *find_lwp_pid (ptid_t ptid);
|
|
|