/* Native debugging support for GNU/Linux (LWP layer).
- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
- Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+ 2010, 2011 Free Software Foundation, Inc.
This file is part of GDB.
#include <signal.h>
+/* 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. */
didn't try to let the LWP run. */
int resumed;
+ /* The last resume GDB requested on this thread. */
+ enum resume_kind last_resume_kind;
+
/* If non-zero, a pending wait status. */
int status;
- TARGET_WAITKIND_SYSCALL_RETURN */
int syscall_state;
+ /* The processor core this LWP was last seen on. */
+ int core;
+
/* Next LWP in list. */
struct lwp_info *next;
};
int thread_db_attach_lwp (ptid_t ptid);
-/* Find process PID's pending signal set from /proc/pid/status. */
-void linux_proc_pending_signals (int pid, sigset_t *pending, sigset_t *blocked, sigset_t *ignored);
+/* Return the set of signals used by the threads library. */
+extern void lin_thread_get_thread_signals (sigset_t *mask);
-/* Return the TGID of LWPID from /proc/pid/status. Returns -1 if not
- found. */
-extern int linux_proc_get_tgid (int lwpid);
+/* Find process PID's pending signal set from /proc/pid/status. */
+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);
/* 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);
+
+/* Set alternative SIGTRAP-like events recognizer. */
+void linux_nat_set_status_is_event (struct target_ops *t,
+ int (*status_is_event) (int status));