diff options
author | Michael Snyder <msnyder@specifix.com> | 2003-06-19 22:52:04 +0000 |
---|---|---|
committer | Michael Snyder <msnyder@specifix.com> | 2003-06-19 22:52:04 +0000 |
commit | 4f90ce69667aef9199ea56f674d8aa02d6dd8a39 (patch) | |
tree | 1724b4ef8b4044a2b0beeba19d2408d456fd3eb2 /gdb/linux-nat.h | |
parent | 6e9a166c1be61cde3ec941baf9df0a8d7ba37cf4 (diff) | |
download | gdb-4f90ce69667aef9199ea56f674d8aa02d6dd8a39.tar.gz |
2003-06-19 Michael Snyder <msnyder@redhat.com>
* linux-nat.h: New file.
* linux-nat.c: Include linux-nat.h.
* lin-lwp.c: Include linux-nat.h.
Move struct lwp_info def to linux-nat.h.
* linux-proc.c: Include linux-nat.h.
(linux_make_note_section): Iterate over lwps instead of threads.
(linux_do_thread_registers): Use lwp instead of merged pid.
* config/nm-linux.h: Move miscelaneous def'ns to linux-nat.h.
* Makefile.in (lin-lwp.o, linux-proc.o, linux-nat.o):
Add dependency on linux_nat_h.
Diffstat (limited to 'gdb/linux-nat.h')
-rw-r--r-- | gdb/linux-nat.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h new file mode 100644 index 00000000000..78312d71b31 --- /dev/null +++ b/gdb/linux-nat.h @@ -0,0 +1,70 @@ +/* Native debugging support for GNU/Linux (LWP layer). + Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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. */ + +/* Structure describing an LWP. */ + +struct lwp_info +{ + /* The process id of the LWP. This is a combination of the LWP id + and overall process id. */ + ptid_t ptid; + + /* Non-zero if this LWP is cloned. In this context "cloned" means + that the LWP is reporting to its parent using a signal other than + SIGCHLD. */ + int cloned; + + /* Non-zero if we sent this LWP a SIGSTOP (but the LWP didn't report + it back yet). */ + int signalled; + + /* Non-zero if this LWP is stopped. */ + int stopped; + + /* Non-zero if this LWP will be/has been resumed. Note that an LWP + can be marked both as stopped and resumed at the same time. This + happens if we try to resume an LWP that has a wait status + pending. We shouldn't let the LWP run until that wait status has + been processed, but we should not report that wait status if GDB + didn't try to let the LWP run. */ + int resumed; + + /* If non-zero, a pending wait status. */ + int status; + + /* Non-zero if we were stepping this LWP. */ + int step; + + /* Next LWP in list. */ + struct lwp_info *next; +}; + +/* Read/write to target memory via Linux's "proc file system". */ +struct mem_attrib; +extern int linux_proc_xfer_memory (CORE_ADDR addr, char *myaddr, int len, + int write, struct mem_attrib *attrib, + struct target_ops *target); + +extern void linux_record_stopped_pid (int pid); + +/* Iterator function for lin-lwp's lwp list. */ +struct lwp_info *iterate_over_lwps (int (*callback) (struct lwp_info *, + void *), + void *data); |