diff options
author | Mike Frysinger <vapier@gentoo.org> | 2006-07-05 19:05:55 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2006-07-05 19:05:55 +0000 |
commit | b536763f513920b64d73ead1bd7b083159866a85 (patch) | |
tree | d4d3b8291e918c1abbafa95a5dccc9d1f77584ba /ldso/include/dl-defs.h | |
parent | e5657ed358ddb5956171df3144e4e698205de1b4 (diff) |
patch from Bernd Schmidt to abstract away load address checks
Diffstat (limited to 'ldso/include/dl-defs.h')
-rw-r--r-- | ldso/include/dl-defs.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/ldso/include/dl-defs.h b/ldso/include/dl-defs.h index 2d4f1d655..18f718bef 100644 --- a/ldso/include/dl-defs.h +++ b/ldso/include/dl-defs.h @@ -75,4 +75,19 @@ typedef struct { ((LOADADDR) = (BASEADDR)) #endif +/* Test whether a given ADDR is more likely to be within the memory + * region mapped to TPNT (a struct elf_resolve *) than to TFROM. + * Everywhere that this is used, TFROM is initially NULL, and whenever + * a potential match is found, it's updated. One might want to walk + * the chain of elf_resolve to locate the best match and return false + * whenever TFROM is non-NULL, or use an exact-matching algorithm + * using additional information encoded in DL_LOADADDR_TYPE to test + * for exact containment. + */ +#ifndef DL_ADDR_IN_LOADADDR +# define DL_ADDR_IN_LOADADDR(ADDR, TPNT, TFROM) \ + ((void*)(TPNT)->loadaddr < (void*)(ADDR) \ + && (!(TFROM) || (TFROM)->loadaddr < (TPNT)->loadaddr)) +#endif + #endif /* _LD_DEFS_H */ |