aboutsummaryrefslogtreecommitdiff
path: root/dlfcn/dlfcn.h
diff options
context:
space:
mode:
Diffstat (limited to 'dlfcn/dlfcn.h')
-rw-r--r--dlfcn/dlfcn.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/dlfcn/dlfcn.h b/dlfcn/dlfcn.h
index 4a3b870..a7e03c0 100644
--- a/dlfcn/dlfcn.h
+++ b/dlfcn/dlfcn.h
@@ -28,6 +28,8 @@
#ifdef __USE_GNU
+#include <bits/dl_find_object.h>
+
/* If the first argument of `dlsym' or `dlvsym' is set to RTLD_NEXT
the run-time address of the symbol called NAME in the next shared
object is returned. The "next" relation is defined by the order
@@ -194,6 +196,31 @@ typedef struct
Dl_serpath dls_serpath[1]; /* Actually longer, dls_cnt elements. */
# endif
} Dl_serinfo;
+
+struct dl_find_object
+{
+ __extension__ unsigned long long int dlfo_flags;
+ void *dlfo_map_start; /* Beginning of mapping containing address. */
+ void *dlfo_map_end; /* End of mapping. */
+ struct link_map *dlfo_link_map;
+ void *dlfo_eh_frame; /* Exception handling data of the object. */
+# if DLFO_STRUCT_HAS_EH_DBASE
+ void *dlfo_eh_dbase; /* Base address for DW_EH_PE_datarel. */
+# if __WORDSIZE == 32
+ unsigned int __dlfo_eh_dbase_pad;
+# endif
+# endif
+# if DLFO_STRUCT_HAS_EH_COUNT
+ int dlfo_eh_count; /* Number of exception handling entries. */
+ unsigned int __dlfo_eh_count_pad;
+# endif
+ __extension__ unsigned long long int __dflo_reserved[7];
+};
+
+/* If ADDRESS is found in an object, fill in *RESULT and return 0.
+ Otherwise, return -1. */
+int _dl_find_object (void *__address, struct dl_find_object *__result) __THROW;
+
#endif /* __USE_GNU */