Lines Matching refs:Obj_Entry
95 static void digest_dynamic1(Obj_Entry *, int, const Elf_Dyn **,
97 static bool digest_dynamic2(Obj_Entry *, const Elf_Dyn *, const Elf_Dyn *,
99 static bool digest_dynamic(Obj_Entry *, int);
100 static Obj_Entry *digest_phdr(const Elf_Phdr *, int, caddr_t, const char *);
102 static Obj_Entry *dlcheck(void *);
104 static Obj_Entry *dlopen_object(const char *name, int fd, Obj_Entry *refobj,
106 static Obj_Entry *do_load_object(int, const char *, char *, struct stat *, int);
107 static int do_search_info(const Obj_Entry *obj, int, struct dl_serinfo *);
108 static bool donelist_check(DoneList *, const Obj_Entry *);
113 static char *find_library(const char *, const Obj_Entry *, int *);
115 static void hold_object(Obj_Entry *);
116 static void unhold_object(Obj_Entry *);
117 static void init_dag(Obj_Entry *);
118 static void init_marker(Obj_Entry *);
122 static void initlist_add_objects(Obj_Entry *, Obj_Entry *, Objlist *,
124 static void initlist_for_loaded_obj(Obj_Entry *obj, Obj_Entry *tail,
127 static void linkmap_add(Obj_Entry *);
128 static void linkmap_delete(Obj_Entry *);
129 static void load_filtees(Obj_Entry *, int flags, RtldLockState *);
130 static void unload_filtees(Obj_Entry *, RtldLockState *);
131 static int load_needed_objects(Obj_Entry *, int);
134 static Obj_Entry *load_object(const char *, int fd, const Obj_Entry *, int);
136 static int obj_disable_relro(Obj_Entry *);
137 static int obj_enforce_relro(Obj_Entry *);
138 static void objlist_call_fini(Objlist *, Obj_Entry *, RtldLockState *);
141 static Objlist_Entry *objlist_find(Objlist *, const Obj_Entry *);
143 static void objlist_push_head(Objlist *, Obj_Entry *);
144 static void objlist_push_tail(Objlist *, Obj_Entry *);
145 static void objlist_put_after(Objlist *, Obj_Entry *, Obj_Entry *);
146 static void objlist_remove(Objlist *, Obj_Entry *);
154 static void release_object(Obj_Entry *);
155 static int relocate_object_dag(Obj_Entry *root, bool bind_now,
156 Obj_Entry *rtldobj, int flags, RtldLockState *lockstate);
157 static int relocate_object(Obj_Entry *obj, bool bind_now, Obj_Entry *rtldobj,
159 static int relocate_objects(Obj_Entry *, bool, Obj_Entry *, int,
161 static int resolve_object_ifunc(Obj_Entry *, bool, int, RtldLockState *);
172 static int symlook_default(SymLook *, const Obj_Entry *refobj);
177 static int symlook_obj1_sysv(SymLook *, const Obj_Entry *);
178 static int symlook_obj1_gnu(SymLook *, const Obj_Entry *);
180 static void trace_loaded_objects(Obj_Entry *, bool);
181 static void unlink_object(Obj_Entry *);
182 static void unload_object(Obj_Entry *, RtldLockState *lockstate);
183 static void unref_dag(Obj_Entry *);
184 static void ref_dag(Obj_Entry *);
185 static char *origin_subst_one(Obj_Entry *, char *, const char *, const char *,
187 static char *origin_subst(Obj_Entry *, const char *);
188 static bool obj_resolve_origin(Obj_Entry *obj);
191 static int rtld_verify_object_versions(Obj_Entry *);
192 static void object_add_name(Obj_Entry *, const char *);
193 static int object_match_name(const Obj_Entry *, const char *);
195 static void rtld_fill_dl_phdr_info(const Obj_Entry *obj,
198 static bool matched_symbol(SymLook *, const Obj_Entry *, Sym_Match_Result *,
233 static Obj_Entry *obj_main; /* The main program shared object */
234 static Obj_Entry obj_rtld; /* The dynamic linker shared object */
278 func_ptr_type _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entry **objp);
279 Elf_Addr _rtld_bind(Obj_Entry *obj, Elf_Size reloff);
508 _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entry **objp) in _rtld()
512 Obj_Entry *last_interposer, *obj, *preload_tail; in _rtld()
1036 rtld_resolve_ifunc(const Obj_Entry *obj, const Elf_Sym *def) in rtld_resolve_ifunc()
1047 _rtld_bind(Obj_Entry *obj, Elf_Size reloff) in _rtld_bind()
1051 const Obj_Entry *defobj; in _rtld_bind()
1160 origin_subst_one(Obj_Entry *obj, char *real, const char *kw, const char *subst, in origin_subst_one()
1242 origin_subst(Obj_Entry *obj, const char *real) in origin_subst()
1283 digest_dynamic1(Obj_Entry *obj, int early, const Elf_Dyn **dyn_rpath, in digest_dynamic1()
1627 obj_resolve_origin(Obj_Entry *obj) in obj_resolve_origin()
1636 digest_dynamic2(Obj_Entry *obj, const Elf_Dyn *dyn_rpath, in digest_dynamic2()
1656 digest_dynamic(Obj_Entry *obj, int early) in digest_dynamic()
1672 static Obj_Entry *
1675 Obj_Entry *obj; in digest_phdr()
1748 digest_notes(Obj_Entry *obj, Elf_Addr note_start, Elf_Addr note_end) in digest_notes()
1796 static Obj_Entry *
1799 Obj_Entry *obj; in dlcheck()
1802 if (obj == (Obj_Entry *)handle) in dlcheck()
1818 donelist_check(DoneList *dlp, const Obj_Entry *obj) in donelist_check()
1893 find_library(const char *xname, const Obj_Entry *refobj, int *fdp) in find_library()
1912 return (origin_subst(__DECONST(Obj_Entry *, refobj), in find_library()
2003 find_symdef(unsigned long symnum, const Obj_Entry *refobj, in find_symdef()
2004 const Obj_Entry **defobj_out, int flags, SymCache *cache, in find_symdef()
2009 const Obj_Entry *defobj; in find_symdef()
2304 init_dag(Obj_Entry *root) in init_dag()
2338 init_marker(Obj_Entry *marker) in init_marker()
2344 Obj_Entry *
2345 globallist_curr(const Obj_Entry *obj) in globallist_curr()
2351 return (__DECONST(Obj_Entry *, obj)); in globallist_curr()
2356 Obj_Entry *
2357 globallist_next(const Obj_Entry *obj) in globallist_next()
2364 return (__DECONST(Obj_Entry *, obj)); in globallist_next()
2370 hold_object(Obj_Entry *obj) in hold_object()
2376 unhold_object(Obj_Entry *obj) in unhold_object()
2384 process_z(Obj_Entry *root) in process_z()
2387 Obj_Entry *obj; in process_z()
2418 parse_rtld_phdr(Obj_Entry *obj) in parse_rtld_phdr()
2456 Obj_Entry objtmp; /* Temporary rtld object */ in init_rtld()
2591 initlist_for_loaded_obj(Obj_Entry *obj, Obj_Entry *tail, Objlist *list) in initlist_for_loaded_obj()
2600 Obj_Entry *tobj = tmp->obj; in initlist_for_loaded_obj()
2622 initlist_add_objects(Obj_Entry *obj, Obj_Entry *tail, Objlist *list, in initlist_add_objects()
2625 Obj_Entry *nobj; in initlist_add_objects()
2700 unload_filtees(Obj_Entry *obj, RtldLockState *lockstate) in unload_filtees()
2710 load_filtee1(Obj_Entry *obj, Needed_Entry *needed, int flags, in load_filtee1()
2721 load_filtees(Obj_Entry *obj, int flags, RtldLockState *lockstate) in load_filtees()
2734 process_needed(Obj_Entry *obj, Needed_Entry *needed, int flags) in process_needed()
2736 Obj_Entry *obj1; in process_needed()
2754 load_needed_objects(Obj_Entry *first, int flags) in load_needed_objects()
2756 Obj_Entry *obj; in load_needed_objects()
2770 Obj_Entry *obj; in load_preload_objects()
2830 static Obj_Entry *
2831 load_object(const char *name, int fd_u, const Obj_Entry *refobj, int flags) in load_object()
2833 Obj_Entry *obj; in load_object()
2915 static Obj_Entry *
2919 Obj_Entry *obj; in do_load_object()
2987 Obj_Entry *obj; in load_kpreload()
3057 Obj_Entry *
3060 Obj_Entry *obj; in obj_from_addr()
3102 objlist_call_fini(Objlist *list, Obj_Entry *root, RtldLockState *lockstate) in objlist_call_fini()
3191 Obj_Entry *obj; in objlist_call_init()
3281 objlist_find(Objlist *list, const Obj_Entry *obj) in objlist_find()
3298 objlist_push_head(Objlist *list, Obj_Entry *obj) in objlist_push_head()
3308 objlist_push_tail(Objlist *list, Obj_Entry *obj) in objlist_push_tail()
3318 objlist_put_after(Objlist *list, Obj_Entry *listobj, Obj_Entry *obj) in objlist_put_after()
3335 objlist_remove(Objlist *list, Obj_Entry *obj) in objlist_remove()
3351 relocate_object_dag(Obj_Entry *root, bool bind_now, Obj_Entry *rtldobj, in relocate_object_dag()
3376 reloc_textrel_prot(Obj_Entry *obj, bool before) in reloc_textrel_prot()
3403 reloc_relr(Obj_Entry *obj) in reloc_relr()
3429 relocate_object(Obj_Entry *obj, bool bind_now, Obj_Entry *rtldobj, int flags, in relocate_object()
3487 relocate_objects(Obj_Entry *first, bool bind_now, Obj_Entry *rtldobj, int flags, in relocate_objects()
3490 Obj_Entry *obj; in relocate_objects()
3516 resolve_object_ifunc(Obj_Entry *obj, bool bind_now, int flags, in resolve_object_ifunc()
3545 Obj_Entry *obj; in initlist_objects_ifunc()
3760 Obj_Entry *root; in dlclose_locked()
3864 dlopen_cleanup(Obj_Entry *obj, RtldLockState *lockstate) in dlopen_cleanup()
3872 static Obj_Entry *
3873 dlopen_object(const char *name, int fd, Obj_Entry *refobj, int lo_flags, in dlopen_object()
3876 Obj_Entry *obj; in dlopen_object()
4022 const Obj_Entry *obj, *defobj; in do_dlsym()
4207 const Obj_Entry *obj; in _rtld_addr_phdr()
4225 const Obj_Entry *obj; in dladdr()
4281 const Obj_Entry *obj; in dlinfo()
4326 rtld_fill_dl_phdr_info(const Obj_Entry *obj, struct dl_phdr_info *phdr_info) in rtld_fill_dl_phdr_info()
4347 Obj_Entry *obj; in _dl_iterate_phdr_locked()
4366 Obj_Entry *obj, marker; in dl_iterate_phdr()
4432 do_search_info(const Obj_Entry *obj, int request, struct dl_serinfo *info) in do_search_info()
4560 linkmap_add(Obj_Entry *obj) in linkmap_add()
4593 linkmap_delete(Obj_Entry *obj) in linkmap_delete()
4647 release_object(Obj_Entry *obj) in release_object()
4749 symlook_default(SymLook *req, const Obj_Entry *refobj) in symlook_default()
4816 const Obj_Entry *defobj; in symlook_list()
4857 const Obj_Entry *defobj; in symlook_needed()
4886 symlook_obj_load_filtees(SymLook *req, SymLook *req1, const Obj_Entry *obj, in symlook_obj_load_filtees()
4893 load_filtees(__DECONST(Obj_Entry *, obj), flags, req->lockstate); in symlook_obj_load_filtees()
4909 symlook_obj(SymLook *req, const Obj_Entry *obj) in symlook_obj()
4950 matched_symbol(SymLook *req, const Obj_Entry *obj, Sym_Match_Result *result, in matched_symbol()
5063 symlook_obj1_sysv(SymLook *req, const Obj_Entry *obj) in symlook_obj1_sysv()
5093 symlook_obj1_gnu(SymLook *req, const Obj_Entry *obj) in symlook_obj1_gnu()
5158 trace_print_obj(Obj_Entry *obj, const char *name, const char *path, in trace_print_obj()
5219 trace_loaded_objects(Obj_Entry *obj, bool show_preload) in trace_loaded_objects()
5279 unload_object(Obj_Entry *root, RtldLockState *lockstate) in unload_object()
5281 Obj_Entry marker, *obj, *next; in unload_object()
5322 unlink_object(Obj_Entry *root) in unlink_object()
5340 ref_dag(Obj_Entry *root) in ref_dag()
5350 unref_dag(Obj_Entry *root) in unref_dag()
5490 allocate_tls(Obj_Entry *objs, void *oldtcb, size_t tcbsize, size_t tcbalign) in allocate_tls()
5492 Obj_Entry *obj; in allocate_tls()
5609 allocate_tls(Obj_Entry *objs, void *oldtcb, size_t tcbsize, size_t tcbalign) in allocate_tls()
5611 Obj_Entry *obj; in allocate_tls()
5726 Obj_Entry *obj; in allocate_module_tls()
5795 allocate_tls_offset(Obj_Entry *obj) in allocate_tls_offset()
5818 free_tls_offset(Obj_Entry *obj) in free_tls_offset()
5861 object_add_name(Obj_Entry *obj, const char *name) in object_add_name()
5876 object_match_name(const Obj_Entry *obj, const char *name) in object_match_name()
5887 static Obj_Entry *
5888 locate_dependency(const Obj_Entry *obj, const char *name) in locate_dependency()
5918 check_object_provided_version(Obj_Entry *refobj, const Obj_Entry *depobj, in check_object_provided_version()
5958 rtld_verify_object_versions(Obj_Entry *obj) in rtld_verify_object_versions()
5964 const Obj_Entry *depobj; in rtld_verify_object_versions()
6098 fetch_ventry(const Obj_Entry *obj, unsigned long symnum) in fetch_ventry()
6123 Obj_Entry *obj; in _rtld_is_dlopened()
6142 obj_remap_relro(Obj_Entry *obj, int prot) in obj_remap_relro()
6166 obj_disable_relro(Obj_Entry *obj) in obj_disable_relro()
6172 obj_enforce_relro(Obj_Entry *obj) in obj_enforce_relro()
6199 Obj_Entry *obj; in distribute_static_tls()