Index: gdb/linux-nat.h |
diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h |
index 2d4503e49577b246568f1d044ebe30b6b61d6617..50998b81ed8b4f94a7d8d12763537ef7f747b630 100644 |
--- a/gdb/linux-nat.h |
+++ b/gdb/linux-nat.h |
@@ -21,6 +21,8 @@ |
#include <signal.h> |
+struct arch_lwp_info; |
+ |
/* Ways to "resume" a thread. */ |
enum resume_kind |
@@ -74,10 +76,6 @@ struct lwp_info |
/* Non-zero if we were stepping this LWP. */ |
int step; |
- /* Non-zero si_signo if this LWP stopped with a trap. si_addr may |
- be the address of a hardware watchpoint. */ |
- struct siginfo siginfo; |
- |
/* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data |
watchpoint trap. */ |
int stopped_by_watchpoint; |
@@ -108,6 +106,9 @@ struct lwp_info |
/* The processor core this LWP was last seen on. */ |
int core; |
+ /* Arch-specific additions. */ |
+ struct arch_lwp_info *arch_private; |
+ |
/* Next LWP in list. */ |
struct lwp_info *next; |
}; |
@@ -145,12 +146,20 @@ extern void linux_enable_event_reporting (ptid_t ptid); |
extern int lin_lwp_attach_lwp (ptid_t ptid); |
+extern void linux_stop_lwp (struct lwp_info *lwp); |
+ |
/* Iterator function for lin-lwp's lwp list. */ |
struct lwp_info *iterate_over_lwps (ptid_t filter, |
int (*callback) (struct lwp_info *, |
void *), |
void *data); |
+typedef int (*linux_nat_iterate_watchpoint_lwps_ftype) (struct lwp_info *lwp, |
+ void *arg); |
+ |
+extern void linux_nat_iterate_watchpoint_lwps |
+ (linux_nat_iterate_watchpoint_lwps_ftype callback, void *callback_data); |
+ |
/* Create a prototype generic GNU/Linux target. The client can |
override it with local methods. */ |
struct target_ops * linux_target (void); |
@@ -165,25 +174,29 @@ linux_trad_target (CORE_ADDR (*register_u_offset)(struct gdbarch *, int, int)); |
void linux_nat_add_target (struct target_ops *); |
/* Register a method to call whenever a new thread is attached. */ |
-void linux_nat_set_new_thread (struct target_ops *, void (*) (ptid_t)); |
+void linux_nat_set_new_thread (struct target_ops *, void (*) (struct lwp_info *)); |
/* Register a method that converts a siginfo object between the layout |
that ptrace returns, and the layout in the architecture of the |
inferior. */ |
void linux_nat_set_siginfo_fixup (struct target_ops *, |
- int (*) (struct siginfo *, |
+ int (*) (siginfo_t *, |
gdb_byte *, |
int)); |
+/* Register a method to call prior to resuming a thread. */ |
+ |
+void linux_nat_set_prepare_to_resume (struct target_ops *, |
+ void (*) (struct lwp_info *)); |
+ |
/* Update linux-nat internal state when changing from one fork |
to another. */ |
void linux_nat_switch_fork (ptid_t new_ptid); |
-/* Return the saved siginfo associated with PTID. */ |
-struct siginfo *linux_nat_get_siginfo (ptid_t ptid); |
- |
-/* Compute and return the processor core of a given thread. */ |
-int linux_nat_core_of_thread_1 (ptid_t ptid); |
+/* Store the saved siginfo associated with PTID in *SIGINFO. |
+ Return 1 if it was retrieved successfully, 0 otherwise (*SIGINFO is |
+ uninitialized in such case). */ |
+int linux_nat_get_siginfo (ptid_t ptid, siginfo_t *siginfo); |
/* Set alternative SIGTRAP-like events recognizer. */ |
void linux_nat_set_status_is_event (struct target_ops *t, |