Home | History | Annotate | Download | only in linker

Lines Matching refs:si

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