Home
last modified time | relevance | path

Searched refs:soinfo (Results 1 – 18 of 18) sorted by relevance

/bionic/linker/
Dlinker_soinfo.cpp53 SymbolLookupList::SymbolLookupList(soinfo* si) in SymbolLookupList()
67 global_group.for_each([this](soinfo* si) { in SymbolLookupList()
72 local_group.for_each([this](soinfo* si) { in SymbolLookupList()
92 void SymbolLookupList::set_dt_symbolic_lib(soinfo* lib) { in set_dt_symbolic_lib()
120 soinfo** si_found_in, const SymbolLookupList& lookup_list) { in ElfW()
208 soinfo** si_found_in, const SymbolLookupList& lookup_list) { in ElfW()
214 soinfo::soinfo(android_namespace_t* ns, const char* realpath, in soinfo() function in soinfo
236 soinfo::~soinfo() { in ~soinfo()
240 void soinfo::set_dt_runpath(const char* path) { in set_dt_runpath()
262 const ElfW(Versym)* soinfo::get_versym(size_t n) const { in ElfW()
[all …]
Dlinker_main.h52 soinfo* soinfo_alloc(android_namespace_t* ns, const char* name,
57 soinfo* start_with,
60 soinfo* soinfos[],
61 std::vector<soinfo*>* ld_preloads,
69 void solist_add_soinfo(soinfo* si);
70 bool solist_remove_soinfo(soinfo* si);
71 soinfo* solist_get_head();
72 soinfo* solist_get_somain();
73 soinfo* solist_get_vdso();
Dlinker_cfi.h64 bool AddLibrary(soinfo* si);
72 bool MaybeInit(soinfo *new_si, soinfo *solist);
79 bool NotifyLibDl(soinfo *solist, uintptr_t p);
92 bool AfterLoad(soinfo* si, soinfo *solist);
95 void BeforeUnload(soinfo* si);
98 bool InitialLinkDone(soinfo *solist);
Dlinker.h60 bool init(const soinfo* si_from);
64 bool init_verneed(const soinfo* si_from);
65 bool init_verdef(const soinfo* si_from);
67 const char* ver_name, const soinfo* target_si);
74 soinfo* get_libdl_info(const soinfo& linker_si);
76 soinfo* find_containing_library(const void* p);
178 ElfW(Versym) find_verdef_version_index(const soinfo* si, const version_info* vi);
179 bool validate_verdef_section(const soinfo* si);
Dlinker_cfi.cpp134 static soinfo* find_libdl(soinfo* solist) { in find_libdl()
135 for (soinfo* si = solist; si != nullptr; si = si->next) { in find_libdl()
144 static uintptr_t soinfo_find_symbol(soinfo* si, const char* s) { in soinfo_find_symbol()
152 uintptr_t soinfo_find_cfi_check(soinfo* si) { in soinfo_find_cfi_check()
163 bool CFIShadowWriter::AddLibrary(soinfo* si) { in AddLibrary()
196 bool CFIShadowWriter::NotifyLibDl(soinfo* solist, uintptr_t p) { in NotifyLibDl()
197 soinfo* libdl = find_libdl(solist); in NotifyLibDl()
212 bool CFIShadowWriter::MaybeInit(soinfo* new_si, soinfo* solist) { in MaybeInit()
220 for (soinfo* si = solist; si != nullptr; si = si->next) { in MaybeInit()
239 for (soinfo* si = solist; si != nullptr; si = si->next) { in MaybeInit()
[all …]
Dlinker.cpp84 static LinkerTypeAllocator<soinfo> g_soinfo_allocator;
85 static LinkerTypeAllocator<LinkedListEntry<soinfo>> g_soinfo_links_allocator;
191 static bool is_greylisted(android_namespace_t* ns, const char* name, const soinfo* needed_by) { in is_greylisted()
239 static void notify_gdb_of_load(soinfo* info) { in notify_gdb_of_load()
258 static void notify_gdb_of_unload(soinfo* info) { in notify_gdb_of_unload()
262 LinkedListEntry<soinfo>* SoinfoListAllocator::alloc() { in alloc()
266 void SoinfoListAllocator::free(LinkedListEntry<soinfo>* entry) { in free()
278 soinfo* soinfo_alloc(android_namespace_t* ns, const char* name, in soinfo_alloc()
287 soinfo* si = new (g_soinfo_allocator.alloc()) soinfo(ns, name, file_stat, in soinfo_alloc()
299 static void soinfo_free(soinfo* si) { in soinfo_free()
[all …]
Dlinker_soinfo.h91 soinfo* si_ = nullptr;
105 explicit SymbolLookupList(soinfo* si);
107 void set_dt_symbolic_lib(soinfo* symbolic_lib);
142 const soinfo* target_si;
157 struct soinfo { struct
182 soinfo* next; argument
246 soinfo(android_namespace_t* ns, const char* name, const struct stat* file_stat, argument
248 ~soinfo();
254 bool link_image(const SymbolLookupList& lookup_list, soinfo* local_group_root,
258 void add_child(soinfo* child);
[all …]
Dlinker_common_types.h42 struct soinfo;
46 static LinkedListEntry<soinfo>* alloc();
47 static void free(LinkedListEntry<soinfo>* entry);
64 typedef LinkedList<soinfo, SoinfoListAllocator> soinfo_list_t;
Dlinker_namespaces.cpp73 bool android_namespace_t::is_accessible(soinfo* s) { in is_accessible()
74 auto is_accessible_ftor = [this] (soinfo* si, bool allow_secondary) { in is_accessible()
116 return !s->get_parents().visit([&](soinfo* si) { in is_accessible()
130 soinfo_list().for_each([&](soinfo* si) { in get_global_group()
150 soinfo_list().for_each([&](soinfo* si) { in get_shared_group()
Dlinker_main.cpp67 static void set_bss_vma_name(soinfo* si);
74 static soinfo* solist;
75 static soinfo* sonext;
76 static soinfo* somain; // main process, always the one after libdl_info
77 static soinfo* solinker;
78 static soinfo* vdso; // vdso if present
80 void solist_add_soinfo(soinfo* si) { in solist_add_soinfo()
85 bool solist_remove_soinfo(soinfo* si) { in solist_remove_soinfo()
86 soinfo *prev = nullptr, *trav; in solist_remove_soinfo()
111 soinfo* solist_get_head() { in solist_get_head()
[all …]
Dlinker_tls.h36 struct soinfo;
41 void register_soinfo_tls(soinfo* si);
42 void unregister_soinfo_tls(soinfo* si);
Dlinker_tls.cpp58 static void register_tls_module(soinfo* si, size_t static_offset) { in register_tls_module()
85 static void unregister_tls_module(soinfo* si) { in unregister_tls_module()
110 soinfo* somain = solist_get_somain(); in linker_setup_exe_static_tls()
133 void register_soinfo_tls(soinfo* si) { in register_soinfo_tls()
146 void unregister_soinfo_tls(soinfo* si) { in unregister_soinfo_tls()
Dlinker_namespaces.h139 void add_soinfo(soinfo* si) { in add_soinfo()
149 void remove_soinfo(soinfo* si) { in remove_soinfo()
150 soinfo_list_.remove_if([&](soinfo* candidate) { in remove_soinfo()
164 bool is_accessible(soinfo* si);
Dlinker_globals.h80 struct soinfo;
85 extern std::unordered_map<uintptr_t, soinfo*> g_soinfo_handles_map;
Ddlfcn.cpp305 static uint8_t __libdl_info_buf[sizeof(soinfo)] __attribute__((aligned(8)));
306 static soinfo* __libdl_info = nullptr;
309 soinfo* get_libdl_info(const soinfo& linker_si) { in get_libdl_info()
313 __libdl_info = new (__libdl_info_buf) soinfo(&g_default_namespace, nullptr, nullptr, 0, 0); in get_libdl_info()
Dlinker_relocate.cpp65 soinfo* si = nullptr;
77 soinfo* cache_si = nullptr;
96 soinfo** found_in, const ElfW(Sym)** sym) { in lookup_symbol()
107 soinfo* local_found_in = nullptr; in lookup_symbol()
167 soinfo* found_in = nullptr; in process_relocation_impl()
573 bool soinfo::relocate(const SymbolLookupList& lookup_list) { in relocate()
Dlinker_globals.cpp41 std::unordered_map<uintptr_t, soinfo*> g_soinfo_handles_map;
Dlinker_relocate.h60 inline bool is_symbol_global_and_defined(const soinfo* si, const ElfW(Sym)* s) { in is_symbol_global_and_defined()