* linux-low.c (PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Define.
[binutils.git] / gdb / gdbserver / linux-low.h
index bae76b77bdc9713931b84e05f03a0056ee7e0cc6..d090b31a235914d2118075cc36d0a258db236f6f 100644 (file)
@@ -1,5 +1,5 @@
 /* Internal interfaces for the GNU/Linux specific target code for gdbserver.
-   Copyright 2002, Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -15,8 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #ifdef HAVE_LINUX_REGSETS
 typedef void (*regset_fill_func) (void *);
@@ -50,13 +50,23 @@ struct linux_target_ops
   int (*cannot_store_register) (int);
   CORE_ADDR (*get_pc) (void);
   void (*set_pc) (CORE_ADDR newpc);
-  const char *breakpoint;
+  const unsigned char *breakpoint;
   int breakpoint_len;
   CORE_ADDR (*breakpoint_reinsert_addr) (void);
 
 
   int decr_pc_after_break;
   int (*breakpoint_at) (CORE_ADDR pc);
+
+  /* Watchpoint related functions.  See target.h for comments.  */
+  int (*insert_watchpoint) (char type, CORE_ADDR addr, int len);
+  int (*remove_watchpoint) (char type, CORE_ADDR addr, int len);
+  int (*stopped_by_watchpoint) (void);
+  CORE_ADDR (*stopped_data_address) (void);
+
+  /* Whether to left-pad registers for PEEKUSR/POKEUSR if they are smaller
+     than an xfer unit.  */
+  int left_pad_xfer;
 };
 
 extern struct linux_target_ops the_low_target;
@@ -71,8 +81,8 @@ struct process_info
 {
   struct inferior_list_entry head;
   int thread_known;
-  int lwpid;
-  int tid;
+  unsigned long lwpid;
+  unsigned long tid;
 
   /* If this flag is set, the next SIGSTOP will be ignored (the process will
      be immediately resumed).  */
@@ -82,6 +92,9 @@ struct process_info
      event already received in a wait()).  */
   int stopped;
 
+  /* When stopped is set, the last wait status recorded for this process.  */
+  int last_status;
+
   /* If this flag is set, we have sent a SIGSTOP to this process and are
      waiting for it to stop.  */
   int sigstop_sent;
@@ -106,9 +119,15 @@ struct process_info
   /* If this is non-zero, it points to a chain of signals which need to
      be delivered to this process.  */
   struct pending_signals *pending_signals;
+
+  /* A link used when resuming.  It is initialized from the resume request,
+     and then processed and cleared in linux_resume_one_process.  */
+
+  struct thread_resume *resume;
 };
+
 extern struct inferior_list all_processes;
 
-void linux_attach_lwp (int pid, int tid);
+void linux_attach_lwp (unsigned long pid, unsigned long tid);
 
 int thread_db_init (void);
This page took 0.031131 seconds and 4 git commands to generate.