Searched refs:soinfo (Results 1 - 15 of 15) sorted by relevance

/bionic/linker/
H A Dlinker_cfi.h65 bool AddLibrary(soinfo* si);
73 bool MaybeInit(soinfo *new_si, soinfo *solist);
80 bool NotifyLibDl(soinfo *solist, uintptr_t p);
93 bool AfterLoad(soinfo* si, soinfo *solist);
96 void BeforeUnload(soinfo* si);
99 bool InitialLinkDone(soinfo *solist);
H A Dlinker_main.h48 soinfo* soinfo_alloc(android_namespace_t* ns, const char* name,
53 soinfo* start_with,
56 soinfo* soinfos[],
57 std::vector<soinfo*>* ld_preloads,
64 void solist_add_soinfo(soinfo* si);
65 bool solist_remove_soinfo(soinfo* si);
66 soinfo* solist_get_head();
67 soinfo* solist_get_somain();
H A Dlinker_common_types.h44 struct soinfo;
48 static LinkedListEntry<soinfo>* alloc();
49 static void free(LinkedListEntry<soinfo>* entry);
66 typedef LinkedList<soinfo, SoinfoListAllocator> soinfo_list_t;
H A Dlinker_namespaces.cpp60 bool android_namespace_t::is_accessible(soinfo* s) {
61 auto is_accessible_ftor = [this] (soinfo* si) {
62 // This is workaround for apps hacking into soinfo list.
65 DL_WARN("invalid soinfo version for \"%s\"", si->get_soname());
85 return !s->get_parents().visit([&](soinfo* si) {
H A Dlinker_soinfo.cpp43 bool find_verdef_version_index(const soinfo* si, const version_info* vi, ElfW(Versym)* versym);
47 soinfo::soinfo(android_namespace_t* ns, const char* realpath, function in class:soinfo
69 soinfo::~soinfo() {
73 void soinfo::set_dt_runpath(const char* path) {
92 const ElfW(Versym)* soinfo::get_versym(size_t n) const {
100 ElfW(Addr) soinfo::get_verneed_ptr() const {
108 size_t soinfo::get_verneed_cnt() const {
116 ElfW(Addr) soinfo
[all...]
H A Dlinker_globals.cpp39 std::unordered_map<uintptr_t, soinfo*> g_soinfo_handles_map;
H A Dlinker.h76 bool init(const soinfo* si_from);
80 bool init_verneed(const soinfo* si_from);
81 bool init_verdef(const soinfo* si_from);
83 const char* ver_name, const soinfo* target_si);
90 bool soinfo_do_lookup(soinfo* si_from, const char* name, const version_info* vi,
91 soinfo** si_found_in, const soinfo_list_t& global_group,
104 soinfo* get_libdl_info(const char* linker_path);
106 soinfo* find_containing_library(const void* p);
H A Dlinker_cfi.cpp133 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* solis
[all...]
H A Dlinker_globals.h67 struct soinfo;
72 extern std::unordered_map<uintptr_t, soinfo*> g_soinfo_handles_map;
H A Dlinker.cpp77 static LinkerTypeAllocator<soinfo> g_soinfo_allocator;
78 static LinkerTypeAllocator<LinkedListEntry<soinfo>> g_soinfo_links_allocator;
169 static bool is_greylisted(android_namespace_t* ns, const char* name, const soinfo* needed_by) {
240 static void notify_gdb_of_load(soinfo* info) {
259 static void notify_gdb_of_unload(soinfo* info) {
263 LinkedListEntry<soinfo>* SoinfoListAllocator::alloc() {
267 void SoinfoListAllocator::free(LinkedListEntry<soinfo>* entry) {
279 soinfo* soinfo_alloc(android_namespace_t* ns, const char* name,
287 TRACE("name %s: allocating soinfo for ns=%p", name, ns);
289 soinfo* s
558 create(const char* name, soinfo* needed_by, std::unordered_map<const soinfo*, ElfReader>* readers_map) argument
650 LoadTask(const char* name, soinfo* needed_by, std::unordered_map<const soinfo*, ElfReader>* readers_map) argument
[all...]
H A Dlinker_soinfo.h44 #define FLAG_NEW_SOINFO 0x40000000 // new soinfo format
79 const soinfo* target_si;
82 // TODO(dimitry): remove reference from soinfo member functions to this class.
89 struct soinfo { struct
114 soinfo* next;
190 soinfo(android_namespace_t* ns, const char* name, const struct stat* file_stat,
192 ~soinfo();
202 void add_child(soinfo* child);
249 soinfo* get_local_group_root() const;
316 soinfo* local_group_root
[all...]
H A Dlinker_namespaces.h112 void add_soinfo(soinfo* si) {
122 void remove_soinfo(soinfo* si) {
123 soinfo_list_.remove_if([&](soinfo* candidate) {
134 // Returns true if si is accessible from this namespace. A soinfo
137 bool is_accessible(soinfo* si);
H A Dlinker_mips.cpp42 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,
165 soinfo* lsi = nullptr;
242 bool soinfo::mips_check_and_adjust_fp_modes() {
246 // Find soinfo's optional .MIPS.abiflags segment
H A Dlinker_main.cpp62 static soinfo* solist;
63 static soinfo* sonext;
64 static soinfo* somain; // main process, always the one after libdl_info
66 void solist_add_soinfo(soinfo* si) {
71 bool solist_remove_soinfo(soinfo* si) {
72 soinfo *prev = nullptr, *trav;
96 soinfo* solist_get_head() {
100 soinfo* solist_get_somain() {
109 static std::vector<soinfo*> g_ld_preloads;
145 soinfo* s
[all...]
H A Ddlfcn.cpp321 static uint8_t __libdl_info_buf[sizeof(soinfo)] __attribute__((aligned(8)));
322 static soinfo* __libdl_info = nullptr;
325 soinfo* get_libdl_info(const char* linker_path) {
327 __libdl_info = new (__libdl_info_buf) soinfo(&g_default_namespace, linker_path, nullptr, 0, 0);

Completed in 72 milliseconds