X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/blobdiff_plain/04d55e2d9269d8a81cab6cebe9597d27abb88ec9..b28bf640312db2b299faff75052fbb01d67fd821:/libexec/rtld-elf/x86_64/rtld_machdep.h diff --git a/libexec/rtld-elf/x86_64/rtld_machdep.h b/libexec/rtld-elf/x86_64/rtld_machdep.h index 308178f527..d1598849dd 100644 --- a/libexec/rtld-elf/x86_64/rtld_machdep.h +++ b/libexec/rtld-elf/x86_64/rtld_machdep.h @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/libexec/rtld-elf/amd64/rtld_machdep.h,v 1.13 2006/03/29 12:29:01 des Exp $ + * $FreeBSD$ */ #ifndef RTLD_MACHDEP_H @@ -42,7 +42,9 @@ struct Struct_Obj_Entry; /* Fixup the jump slot at "where" to transfer control to "target". */ static inline Elf_Addr -reloc_jmpslot(Elf_Addr *where, Elf_Addr target) +reloc_jmpslot(Elf_Addr *where, Elf_Addr target, + const struct Struct_Obj_Entry *obj, + const struct Struct_Obj_Entry *refobj, const Elf_Rel *rel) { #ifdef dbg dbg("reloc_jmpslot: *%p = %p", (void *)(where), @@ -52,24 +54,15 @@ reloc_jmpslot(Elf_Addr *where, Elf_Addr target) return target; } -static inline void -atomic_decr_int(volatile int *p) -{ - __asm __volatile ("lock; decl %0" : "+m"(*p) : : "cc"); -} - -static inline void -atomic_incr_int(volatile int *p) -{ - __asm __volatile ("lock; incl %0" : "+m"(*p) : : "cc"); -} - #define make_function_pointer(def, defobj) \ ((defobj)->relocbase + (def)->st_value) #define call_initfini_pointer(obj, target) \ (((InitFunc)(target))()) +#define call_array_pointer(target, argc, argv, env) \ + (((InitArrayFunc)(target))(argc, argv, env)) + #define round(size, align) \ (((size) + (align) - 1) & ~((align) - 1)) #define calculate_first_tls_offset(size, align) \ @@ -88,4 +81,7 @@ struct tls_tcb; extern void *__tls_get_addr(tls_index *ti); extern void *__tls_get_addr_tcb(struct tls_tcb *tcb, tls_index *ti); +#define RTLD_DEFAULT_STACK_PF_EXEC PF_X +#define RTLD_DEFAULT_STACK_EXEC PROT_EXEC + #endif