/bionic/linker/ |
linker_main.h | 52 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();
|
linker_cfi.h | 64 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);
|
linker_common_types.h | 45 struct soinfo; 49 static LinkedListEntry<soinfo>* alloc(); 50 static void free(LinkedListEntry<soinfo>* entry); 67 typedef LinkedList<soinfo, SoinfoListAllocator> soinfo_list_t;
|
linker_soinfo.cpp | 45 bool find_verdef_version_index(const soinfo* si, const version_info* vi, ElfW(Versym)* versym); 49 soinfo::soinfo(android_namespace_t* ns, const char* realpath, function in class:soinfo 71 soinfo::~soinfo() { 75 void soinfo::set_dt_runpath(const char* path) { 101 const ElfW(Versym)* soinfo::get_versym(size_t n) const { 109 ElfW(Addr) soinfo::get_verneed_ptr() const { 117 size_t soinfo::get_verneed_cnt() const { 125 ElfW(Addr) soinfo::get_verdef_ptr() const [all...] |
linker_tls.h | 36 struct soinfo; 41 void register_soinfo_tls(soinfo* si); 42 void unregister_soinfo_tls(soinfo* si);
|
linker.h | 74 bool init(const soinfo* si_from); 78 bool init_verneed(const soinfo* si_from); 79 bool init_verdef(const soinfo* si_from); 81 const char* ver_name, const soinfo* target_si); 88 bool soinfo_do_lookup(soinfo* si_from, const char* name, const version_info* vi, 89 soinfo** si_found_in, const soinfo_list_t& global_group, 102 soinfo* get_libdl_info(const char* linker_path, const soinfo& linker_si); 104 soinfo* find_containing_library(const void* p);
|
linker_namespaces.cpp | 70 bool android_namespace_t::is_accessible(soinfo* s) { 71 auto is_accessible_ftor = [this] (soinfo* si) { 72 // This is workaround for apps hacking into soinfo list. 75 DL_WARN("Warning: invalid soinfo version for \"%s\" (assuming inaccessible)", 96 return !s->get_parents().visit([&](soinfo* si) { 110 soinfo_list().for_each([&](soinfo* si) { 130 soinfo_list().for_each([&](soinfo* si) {
|
linker_cfi.cpp | 133 static soinfo* find_libdl(soinfo* solist) { 134 for (soinfo* si = solist; si != nullptr; si = si->next) { 143 static uintptr_t soinfo_find_symbol(soinfo* si, const char* s) { 152 uintptr_t soinfo_find_cfi_check(soinfo* si) { 163 bool CFIShadowWriter::AddLibrary(soinfo* si) { 196 bool CFIShadowWriter::NotifyLibDl(soinfo* solist, uintptr_t p) { 197 soinfo* libdl = find_libdl(solist); 212 bool CFIShadowWriter::MaybeInit(soinfo* new_si, soinfo* solist) [all...] |
linker_globals.h | 68 struct soinfo; 73 extern std::unordered_map<uintptr_t, soinfo*> g_soinfo_handles_map;
|
linker_tls.cpp | 58 static void register_tls_module(soinfo* si, size_t static_offset) { 85 static void unregister_tls_module(soinfo* si) { 110 soinfo* somain = solist_get_somain(); 133 void register_soinfo_tls(soinfo* si) { 146 void unregister_soinfo_tls(soinfo* si) {
|
linker_soinfo.h | 60 // registered with this soinfo. In such 64 // soinfo is executed and this flag is 66 #define FLAG_NEW_SOINFO 0x40000000 // new soinfo format 101 const soinfo* target_si; 104 // TODO(dimitry): remove reference from soinfo member functions to this class. 116 struct soinfo { struct 141 soinfo* next; 217 soinfo(android_namespace_t* ns, const char* name, const struct stat* file_stat, 219 ~soinfo(); 229 void add_child(soinfo* child) [all...] |
linker_globals.cpp | 41 std::unordered_map<uintptr_t, soinfo*> g_soinfo_handles_map;
|
linker.cpp | 82 static LinkerTypeAllocator<soinfo> g_soinfo_allocator; 83 static LinkerTypeAllocator<LinkedListEntry<soinfo>> g_soinfo_links_allocator; 186 static bool is_greylisted(android_namespace_t* ns, const char* name, const soinfo* needed_by) { 294 static void notify_gdb_of_load(soinfo* info) { 313 static void notify_gdb_of_unload(soinfo* info) { 317 LinkedListEntry<soinfo>* SoinfoListAllocator::alloc() { 321 void SoinfoListAllocator::free(LinkedListEntry<soinfo>* entry) { 333 soinfo* soinfo_alloc(android_namespace_t* ns, const char* name, 340 TRACE("name %s: allocating soinfo for ns=%p", name, ns); 342 soinfo* si = new (g_soinfo_allocator.alloc()) soinfo(ns, name, file_stat [all...] |
linker_main.cpp | 71 static soinfo* solist; 72 static soinfo* sonext; 73 static soinfo* somain; // main process, always the one after libdl_info 74 static soinfo* solinker; 75 static soinfo* vdso; // vdso if present 77 void solist_add_soinfo(soinfo* si) { 82 bool solist_remove_soinfo(soinfo* si) { 83 soinfo *prev = nullptr, *trav; 108 soinfo* solist_get_head() { 112 soinfo* solist_get_somain() [all...] |
linker_mips.cpp | 42 template bool soinfo::relocate<plain_reloc_iterator>(const VersionTracker& version_tracker, 47 template bool soinfo::relocate<packed_reloc_iterator<sleb128_decoder>>( 54 bool soinfo::relocate(const VersionTracker& version_tracker, 78 soinfo* lsi = nullptr; 135 bool soinfo::mips_relocate_got(const VersionTracker& version_tracker, 164 soinfo* lsi = nullptr; 242 bool soinfo::mips_check_and_adjust_fp_modes() { 246 // Find soinfo's optional .MIPS.abiflags segment
|
linker_namespaces.h | 133 void add_soinfo(soinfo* si) { 143 void remove_soinfo(soinfo* si) { 144 soinfo_list_.remove_if([&](soinfo* candidate) { 155 // Returns true if si is accessible from this namespace. A soinfo 158 bool is_accessible(soinfo* si);
|
dlfcn.cpp | 307 static uint8_t __libdl_info_buf[sizeof(soinfo)] __attribute__((aligned(8))); 308 static soinfo* __libdl_info = nullptr; 311 soinfo* get_libdl_info(const char* linker_path, const soinfo& linker_si) { 315 __libdl_info = new (__libdl_info_buf) soinfo(&g_default_namespace, linker_path, nullptr, 0, 0);
|