RtldLockState
struct tlsdesc_entry *where, int flags, RtldLockState *lockstate)
reloc_plt(Obj_Entry *obj, int flags, RtldLockState *lockstate)
reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate)
RtldLockState *lockstate)
RtldLockState *lockstate)
RtldLockState *lockstate)
reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused)
reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate)
RtldLockState *lockstate)
reloc_iresolve(Obj_Entry *obj, RtldLockState *lockstate)
reloc_iresolve_nonplt(Obj_Entry *obj, RtldLockState *lockstate)
reloc_gnu_ifunc(Obj_Entry *obj, int flags, RtldLockState *lockstate)
int flags, RtldLockState *lockstate)
RtldLockState *lockstate)
reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused)
reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate)
RtldLockState *lockstate)
reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused)
reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate)
reloc_iresolve_one(Obj_Entry *obj, const Elf_Rel *rel, RtldLockState *lockstate)
reloc_iresolve(Obj_Entry *obj, RtldLockState *lockstate)
reloc_iresolve_nonplt(Obj_Entry *obj, RtldLockState *lockstate)
reloc_gnu_ifunc(Obj_Entry *obj, int flags, RtldLockState *lockstate)
const Elf_Rela *rela, SymCache *cache, int flags, RtldLockState *lockstate)
RtldLockState *lockstate)
reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused)
reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate)
const Elf_Rela *rela, SymCache *cache, int flags, RtldLockState *lockstate)
RtldLockState *lockstate)
reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused)
reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate)
reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused)
reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate)
RtldLockState *lockstate)
RtldLockState *lockstate)
static int dlclose_locked(void *, RtldLockState *);
int lo_flags, int mode, RtldLockState *lockstate);
RtldLockState lockstate;
static int initlist_objects_ifunc(Objlist *, bool, int, RtldLockState *);
static void load_filtees(Obj_Entry *, int flags, RtldLockState *);
static void unload_filtees(Obj_Entry *, RtldLockState *);
static void map_stacks_exec(RtldLockState *);
static void objlist_call_fini(Objlist *, Obj_Entry *, RtldLockState *);
static void objlist_call_init(Objlist *, RtldLockState *);
Obj_Entry *rtldobj, int flags, RtldLockState *lockstate);
int flags, RtldLockState *lockstate);
RtldLockState *);
static int resolve_object_ifunc(Obj_Entry *, bool, int, RtldLockState *);
static const void **get_program_var_addr(const char *, RtldLockState *);
static void unload_object(Obj_Entry *, RtldLockState *lockstate);
RtldLockState *lockstate)
free_needed_filtees(Needed_Entry *n, RtldLockState *lockstate)
unload_filtees(Obj_Entry *obj, RtldLockState *lockstate)
RtldLockState *lockstate)
load_filtees(Obj_Entry *obj, int flags, RtldLockState *lockstate)
objlist_call_fini(Objlist *list, Obj_Entry *root, RtldLockState *lockstate)
objlist_call_init(Objlist *list, RtldLockState *lockstate)
int flags, RtldLockState *lockstate)
RtldLockState *lockstate)
RtldLockState *lockstate)
RtldLockState *lockstate)
RtldLockState *lockstate)
RtldLockState lockstate;
RtldLockState lockstate;
dlclose_locked(void *handle, RtldLockState *lockstate)
RtldLockState lockstate;
dlopen_cleanup(Obj_Entry *obj, RtldLockState *lockstate)
int mode, RtldLockState *lockstate)
RtldLockState mlockstate;
RtldLockState lockstate;
RtldLockState lockstate;
RtldLockState lockstate;
RtldLockState lockstate;
RtldLockState bind_lockstate, phdr_lockstate;
get_program_var_addr(const char *name, RtldLockState *lockstate)
unload_object(Obj_Entry *root, RtldLockState *lockstate)
RtldLockState lockstate;
RtldLockState lockstate;
RtldLockState lockstate;
RtldLockState lockstate;
RtldLockState lockstate;
map_stacks_exec(RtldLockState *lockstate)
RtldLockState lockstate;
rlock_acquire(rtld_lock_t lock, RtldLockState *lockstate)
wlock_acquire(rtld_lock_t lock, RtldLockState *lockstate)
lock_release(rtld_lock_t lock, RtldLockState *lockstate)
lock_upgrade(rtld_lock_t lock, RtldLockState *lockstate)
lock_restart_for_upgrade(RtldLockState *lockstate)
lockstate_wlocked(const RtldLockState *lockstate)
RtldLockState ls[2];
RtldLockState ls[2];
void rlock_acquire(rtld_lock_t, RtldLockState *);
void wlock_acquire(rtld_lock_t, RtldLockState *);
void lock_release(rtld_lock_t, RtldLockState *);
void lock_upgrade(rtld_lock_t, RtldLockState *);
void lock_restart_for_upgrade(RtldLockState *);
bool lockstate_wlocked(const RtldLockState *);