summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>2001-06-08 07:00:49 +0000
committerArtur Grabowski <art@cvs.openbsd.org>2001-06-08 07:00:49 +0000
commita74af83dee5a792f42ccb96b9e8cadc21b899f1b (patch)
tree877c0972c85e941090906cd3e36f0deac9425a55
parent279ca435561dc1d5e9f70df052c7ccb75943c137 (diff)
Ooops. Add struct r_debug, from powerpc.
-rw-r--r--include/link.h36
1 files changed, 35 insertions, 1 deletions
diff --git a/include/link.h b/include/link.h
index 6784f1063f1..c1a328fbda9 100644
--- a/include/link.h
+++ b/include/link.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: link.h,v 1.6 2001/05/31 14:04:52 art Exp $ */
+/* $OpenBSD: link.h,v 1.7 2001/06/08 07:00:48 art Exp $ */
/* $NetBSD: link.h,v 1.10 1996/01/09 00:00:11 pk Exp $ */
/*
@@ -42,6 +42,8 @@
#ifndef _LINK_H_
#define _LINK_H_
+#include <sys/exec_elf.h>
+
/* XXXART - ? */
#ifndef DT_PROCNUM
#define DT_PROCNUM 0
@@ -169,6 +171,38 @@ struct so_debug {
};
/*
+ * Debug rendezvous struct. Pointer to this is set up in the
+ * target code pointed by the DT_MIPS_RLD_MAP tag. If it is
+ * defined.
+ */
+
+struct r_debug {
+ int r_version; /* Protocol version. */
+ struct link_map *r_map; /* Head of list of loaded objects. */
+
+ /*
+ * This is the address of a function internal to the run-time linker,
+ * that will always be called when the linker begins to map in a
+ * library or unmap it, and again when the mapping change is complete.
+ * The debugger can set a breakpoint at this address if it wants to
+ * notice shared object mapping changes.
+ */
+ Elf_Addr r_brk;
+ enum {
+ /*
+ * This state value describes the mapping change taking place
+ * when the `r_brk' address is called.
+ */
+ RT_CONSISTENT, /* Mapping change is complete. */
+ RT_ADD, /* Adding a new object. */
+ RT_DELETE, /* Removing an object mapping. */
+ } r_state;
+
+ Elf_Addr r_ldbase; /* Base address the linker is loaded at. */
+};
+
+
+/*
* Entry points into ld.so - user interface to the run-time linker.
*/
struct ld_entry {