-/* Native support for GNU/Linux, for GDB, the GNU debugger.
- Copyright 1999, 2000
- Free Software Foundation, Inc.
+/* Native support for GNU/Linux.
+
+ Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of GDB.
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-/* Linux is svr4ish but not that much */
+struct target_ops;
+
+/* GNU/Linux is SVR4-ish but its /proc file system isn't. */
#undef USE_PROC_FS
-/* Tell gdb that we can attach and detach other processes */
-#define ATTACH_DETACH
+/* Since we're building a native debugger, we can include <signal.h>
+ to find the range of real-time signals. */
-/* We define this if link.h is available, because with ELF we use SVR4 style
- shared libraries. */
+#include <signal.h>
-#ifdef HAVE_LINK_H
-#define SVR4_SHARED_LIBS
-#include "solib.h" /* Support for shared libraries. */
+#ifdef __SIGRTMIN
+#define REALTIME_LO __SIGRTMIN
+#define REALTIME_HI (__SIGRTMAX + 1)
#endif
-/* Support for the glibc linuxthreads package. */
+/* We define this if link.h is available, because with ELF we use SVR4
+ style shared libraries. */
-struct objfile;
-
-/* Hook to look at new objfiles (shared libraries) */
-extern void linuxthreads_new_objfile (struct objfile *objfile);
+#ifdef HAVE_LINK_H
+#include "solib.h" /* Support for shared libraries. */
+#endif
+\f
-/* Method to print a human-readable thread description */
-extern char *linuxthreads_pid_to_str (ptid_t ptid);
+/* Override child_wait in `inftarg.c'. */
+struct target_waitstatus;
+extern ptid_t child_wait (ptid_t ptid, struct target_waitstatus *ourstatus);
+#define CHILD_WAIT
-extern int linuxthreads_prepare_to_proceed (int step);
-#define PREPARE_TO_PROCEED(select_it) linuxthreads_prepare_to_proceed (1)
+extern void lin_lwp_attach_lwp (ptid_t ptid, int verbose);
+#define ATTACH_LWP(ptid, verbose) lin_lwp_attach_lwp ((ptid), (verbose))
-/* Defined to make stepping-over-breakpoints be thread-atomic. */
-#define USE_THREAD_STEP_NEEDED 1
+extern void lin_thread_get_thread_signals (sigset_t *mask);
+#define GET_THREAD_SIGNALS(mask) lin_thread_get_thread_signals (mask)
/* Use elf_gregset_t and elf_fpregset_t, rather than
gregset_t and fpregset_t. */
#define GDB_GREGSET_T elf_gregset_t
#define GDB_FPREGSET_T elf_fpregset_t
+
+/* Override child_pid_to_exec_file in 'inftarg.c'. */
+#define CHILD_PID_TO_EXEC_FILE
+
+#define CHILD_INSERT_FORK_CATCHPOINT
+#define CHILD_INSERT_VFORK_CATCHPOINT
+#define CHILD_INSERT_EXEC_CATCHPOINT
+#define CHILD_POST_STARTUP_INFERIOR
+#define CHILD_POST_ATTACH
+#define CHILD_FOLLOW_FORK
+#define DEPRECATED_KILL_INFERIOR
+
+#define NATIVE_XFER_AUXV procfs_xfer_auxv
+#include "auxv.h" /* Declares it. */