-/* Native support for GNU/Linux, for GDB, the GNU debugger.
- Copyright (C) 1999
+/* Native support for GNU/Linux.
+ Copyright 1999, 2000, 2001
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 */
+/* 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 */
+/* Tell GDB that we can attach and detach other processes. */
#define ATTACH_DETACH
-/* We define this if link.h is available, because with ELF we use SVR4 style
- shared libraries. */
+/* Since we're building a native debugger, we can include <signal.h>
+ to find the range of real-time signals. */
+
+#include <signal.h>
+
+#ifdef __SIGRTMIN
+#define REALTIME_LO __SIGRTMIN
+#define REALTIME_HI (__SIGRTMAX + 1)
+#endif
+
+/* We define this if link.h is available, because with ELF we use SVR4
+ style shared libraries. */
#ifdef HAVE_LINK_H
#define SVR4_SHARED_LIBS
-#include "solib.h" /* Support for shared libraries. */
+#include "solib.h" /* Support for shared libraries. */
#endif
+\f
-/* Support for the glibc linuxthreads package. */
-
-struct objfile;
+/* Override child_wait in `inftarg.c'. */
+struct target_waitstatus;
+extern ptid_t child_wait (ptid_t ptid, struct target_waitstatus *ourstatus);
+#define CHILD_WAIT
-/* Hook to look at new objfiles (shared libraries) */
-extern void linuxthreads_new_objfile (struct objfile *objfile);
+extern int lin_lwp_prepare_to_proceed (void);
+#define PREPARE_TO_PROCEED(select_it) lin_lwp_prepare_to_proceed ()
-/* Method to print a human-readable thread description */
-extern char *linuxthreads_pid_to_str (int pid);
+extern void lin_lwp_attach_lwp (ptid_t ptid, int verbose);
+#define ATTACH_LWP(ptid, verbose) lin_lwp_attach_lwp ((ptid), (verbose))
-extern int linuxthreads_prepare_to_proceed (int step);
-#define PREPARE_TO_PROCEED(select_it) linuxthreads_prepare_to_proceed (1)
+extern void lin_thread_get_thread_signals (sigset_t *mask);
+#define GET_THREAD_SIGNALS(mask) lin_thread_get_thread_signals (mask)
/* Defined to make stepping-over-breakpoints be thread-atomic. */
#define USE_THREAD_STEP_NEEDED 1
-
-/* Macros to extract process id and thread id from a composite pid/tid.
- Allocate lower 19 bits for process id, next 12 bits for thread id, and
- one bit for a flag to indicate a user thread vs. a kernel thread. */
-#define PIDGET(PID) (((PID) & 0xffff))
-#define TIDGET(PID) (((PID) & 0x7fffffff) >> 16)
-#define MERGEPID(PID, TID) (((PID) & 0xffff) | ((TID) << 16))
+\f
/* Use elf_gregset_t and elf_fpregset_t, rather than
gregset_t and fpregset_t. */