Lines Matching refs:si

135   for (soinfo* si = solist; si != nullptr; si = si->next) {  in find_libdl()  local
136 const char* soname = si->get_soname(); in find_libdl()
138 return si; in find_libdl()
144 static uintptr_t soinfo_find_symbol(soinfo* si, const char* s) { in soinfo_find_symbol() argument
146 if (const ElfW(Sym)* sym = si->find_symbol_by_name(name, nullptr)) { in soinfo_find_symbol()
147 return si->resolve_symbol_address(sym); in soinfo_find_symbol()
152 uintptr_t soinfo_find_cfi_check(soinfo* si) { in soinfo_find_cfi_check() argument
153 return soinfo_find_symbol(si, "__cfi_check"); in soinfo_find_cfi_check()
163 bool CFIShadowWriter::AddLibrary(soinfo* si) { in AddLibrary() argument
165 if (si->base == 0 || si->size == 0) { in AddLibrary()
168 uintptr_t cfi_check = soinfo_find_cfi_check(si); in AddLibrary()
170 INFO("[ CFI add 0x%zx + 0x%zx %s ]", static_cast<uintptr_t>(si->base), in AddLibrary()
171 static_cast<uintptr_t>(si->size), si->get_soname()); in AddLibrary()
172 AddUnchecked(si->base, si->base + si->size); in AddLibrary()
176 INFO("[ CFI add 0x%zx + 0x%zx %s: 0x%zx ]", static_cast<uintptr_t>(si->base), in AddLibrary()
177 static_cast<uintptr_t>(si->size), si->get_soname(), cfi_check); in AddLibrary()
181 DL_ERR("__cfi_check in not a Thumb function in the library \"%s\"", si->get_soname()); in AddLibrary()
187 DL_ERR("unaligned __cfi_check in the library \"%s\"", si->get_soname()); in AddLibrary()
190 Add(si->base, si->base + si->size, cfi_check); in AddLibrary()
220 for (soinfo* si = solist; si != nullptr; si = si->next) { in MaybeInit() local
221 if (soinfo_find_cfi_check(si)) { in MaybeInit()
239 for (soinfo* si = solist; si != nullptr; si = si->next) { in MaybeInit() local
240 if (!AddLibrary(si)) in MaybeInit()
247 bool CFIShadowWriter::AfterLoad(soinfo* si, soinfo* solist) { in AfterLoad() argument
254 return MaybeInit(si, solist); in AfterLoad()
258 if (!AddLibrary(si)) in AfterLoad()
264 void CFIShadowWriter::BeforeUnload(soinfo* si) { in BeforeUnload() argument
266 if (si->base == 0 || si->size == 0) return; in BeforeUnload()
267 INFO("[ CFI remove 0x%zx + 0x%zx: %s ]", static_cast<uintptr_t>(si->base), in BeforeUnload()
268 static_cast<uintptr_t>(si->size), si->get_soname()); in BeforeUnload()
269 AddInvalid(si->base, si->base + si->size); in BeforeUnload()
283 soinfo* si = find_containing_library(CallerPc); in CfiFail() local
284 if (!si) { in CfiFail()
288 uintptr_t cfi_check = soinfo_find_cfi_check(si); in CfiFail()