X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Flinux-nat.h;h=0aa83770c2e7f0451eec19a5770c8075aebe0924;hb=2117c711ae07700adb57ea5b5ca61e4c32d7e3d2;hp=c9878d97c1564e6fa2902e9ebf05138ae31fdce9;hpb=2e7941949d5bab63696c842cb5fe3d96edba29fb;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h index c9878d97c1..0aa83770c2 100644 --- a/gdb/linux-nat.h +++ b/gdb/linux-nat.h @@ -1,6 +1,6 @@ /* Native debugging support for GNU/Linux (LWP layer). - Copyright (C) 2000-2012 Free Software Foundation, Inc. + Copyright (C) 2000-2014 Free Software Foundation, Inc. This file is part of GDB. @@ -23,20 +23,6 @@ struct arch_lwp_info; -/* Ways to "resume" a thread. */ - -enum resume_kind -{ - /* Thread should continue. */ - resume_continue, - - /* Thread should single-step. */ - resume_step, - - /* Thread should be stopped. */ - resume_stop -}; - /* Structure describing an LWP. This is public only for the purposes of ALL_LWPS; target-specific code should generally not access it directly. */ @@ -76,10 +62,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; @@ -128,11 +110,6 @@ extern struct lwp_info *lwp_list; (LP) != NULL; \ (LP) = (LP)->next) -#define GET_LWP(ptid) ptid_get_lwp (ptid) -#define GET_PID(ptid) ptid_get_pid (ptid) -#define is_lwp(ptid) (GET_LWP (ptid) != 0) -#define BUILD_LWP(lwp, pid) ptid_build (pid, lwp, 0) - /* Attempt to initialize libthread_db. */ void check_for_thread_db (void); @@ -145,9 +122,6 @@ extern void lin_thread_get_thread_signals (sigset_t *mask); void linux_proc_pending_signals (int pid, sigset_t *pending, sigset_t *blocked, sigset_t *ignored); -/* linux-nat functions for handling fork events. */ -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); @@ -158,12 +132,6 @@ struct lwp_info *iterate_over_lwps (ptid_t filter, 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); @@ -180,11 +148,28 @@ 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 (*) (struct lwp_info *)); + +/* Register a method to call whenever a new fork is attached. */ +typedef void (linux_nat_new_fork_ftype) (struct lwp_info *parent, + pid_t child_pid); +void linux_nat_set_new_fork (struct target_ops *ops, + linux_nat_new_fork_ftype *fn); + +/* Register a method to call whenever a process is killed or + detached. */ +typedef void (linux_nat_forget_process_ftype) (pid_t pid); +void linux_nat_set_forget_process (struct target_ops *ops, + linux_nat_forget_process_ftype *fn); + +/* Call the method registered with the function above. PID is the + process to forget about. */ +void linux_nat_forget_process (pid_t pid); + /* 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)); @@ -197,8 +182,10 @@ void linux_nat_set_prepare_to_resume (struct target_ops *, 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); +/* 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,