| Index: gdb/gdbthread.h | 
| diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h | 
| index 02505559d6c3c43c4d5fd087ee645da7448462d7..81dc7edb6b7e0cc9c3332e14914f12b4768cbb67 100644 | 
| --- a/gdb/gdbthread.h | 
| +++ b/gdb/gdbthread.h | 
| @@ -1,6 +1,5 @@ | 
| /* Multi-process/thread control defs for GDB, the GNU debugger. | 
| -   Copyright (C) 1987-1993, 1997-2000, 2007-2012 Free Software | 
| -   Foundation, Inc. | 
| +   Copyright (C) 1987-2013 Free Software Foundation, Inc. | 
| Contributed by Lynx Real-Time Systems, Inc.  Los Gatos, CA. | 
|  | 
|  | 
| @@ -28,6 +27,7 @@ struct symtab; | 
| #include "frame.h" | 
| #include "ui-out.h" | 
| #include "inferior.h" | 
| +#include "btrace.h" | 
|  | 
| /* Frontend view of the thread state.  Possible extensions: stepping, | 
| finishing, until(ling),...  */ | 
| @@ -65,6 +65,14 @@ struct thread_control_state | 
| CORE_ADDR step_range_start;	/* Inclusive */ | 
| CORE_ADDR step_range_end;	/* Exclusive */ | 
|  | 
| +  /* If GDB issues a target step request, and this is nonzero, the | 
| +     target should single-step this thread once, and then continue | 
| +     single-stepping it without GDB core involvement as long as the | 
| +     thread stops in the step range above.  If this is zero, the | 
| +     target should ignore the step range, and only issue one single | 
| +     step.  */ | 
| +  int may_range_step; | 
| + | 
| /* Stack frame address as of when stepping command was issued. | 
| This is how we know when we step into a subroutine call, and how | 
| to set the frame for the breakpoint used to step out.  */ | 
| @@ -227,6 +235,9 @@ struct thread_info | 
| /* Function that is called to free PRIVATE.  If this is NULL, then | 
| xfree will be called on PRIVATE.  */ | 
| void (*private_dtor) (struct private_thread_info *); | 
| + | 
| +  /* Branch trace information for this thread.  */ | 
| +  struct btrace_thread_info btrace; | 
| }; | 
|  | 
| /* Create an empty thread list, or empty the existing one.  */ | 
| @@ -312,7 +323,7 @@ extern int thread_count (void); | 
| extern void switch_to_thread (ptid_t ptid); | 
|  | 
| /* Marks thread PTID is running, or stopped. | 
| -   If PIDGET (PTID) is -1, marks all threads.  */ | 
| +   If ptid_get_pid (PTID) is -1, marks all threads.  */ | 
| extern void set_running (ptid_t ptid, int running); | 
|  | 
| /* Marks or clears thread(s) PTID as having been requested to stop. | 
| @@ -350,7 +361,7 @@ extern int is_stopped (ptid_t ptid); | 
| /* In the frontend's perpective is there any thread running?  */ | 
| extern int any_running (void); | 
|  | 
| -/* Marks thread PTID as executing, or not.  If PIDGET (PTID) is -1, | 
| +/* Marks thread PTID as executing, or not.  If ptid_get_pid (PTID) is -1, | 
| marks all threads. | 
|  | 
| Note that this is different from the running state.  See the | 
| @@ -368,7 +379,7 @@ extern int is_executing (ptid_t ptid); | 
| "executing"     -> "running" | 
| "exited"        -> "exited" | 
|  | 
| -   If PIDGET (PTID) is -1, go over all threads. | 
| +   If ptid_get_pid (PTID) is -1, go over all threads. | 
|  | 
| Notifications are only emitted if the thread state did change.  */ | 
| extern void finish_thread_state (ptid_t ptid); | 
| @@ -396,6 +407,10 @@ extern struct thread_info* inferior_thread (void); | 
|  | 
| extern void update_thread_list (void); | 
|  | 
| +/* Return true if PC is in the stepping range of THREAD.  */ | 
| + | 
| +int pc_in_thread_step_range (CORE_ADDR pc, struct thread_info *thread); | 
| + | 
| extern struct thread_info *thread_list; | 
|  | 
| #endif /* GDBTHREAD_H */ | 
|  |