/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main directory of this archive * for more details.
*/
DEBUGP("Applying relocate section %u to %u\n", relsec,
sechdrs[relsec].sh_info); for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) { /* This is where to make the change */
location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr
+ rel[i].r_offset; /* This is the symbol it is referring to. Note that all
undefined symbols have been resolved. */
sym = (Elf32_Sym *)sechdrs[symindex].sh_addr
+ ELF32_R_SYM(rel[i].r_info);
switch (ELF32_R_TYPE(rel[i].r_info)) { case R_68K_32: /* We add the value into the location given */
*location += sym->st_value; break; case R_68K_PC32: /* Add the value, subtract its position */
*location += sym->st_value - (uint32_t)location; break; default:
pr_err("module %s: Unknown relocation: %u\n", me->name,
ELF32_R_TYPE(rel[i].r_info)); return -ENOEXEC;
}
} return0;
}
DEBUGP("Applying relocate_add section %u to %u\n", relsec,
sechdrs[relsec].sh_info); for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) { /* This is where to make the change */
location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr
+ rel[i].r_offset; /* This is the symbol it is referring to. Note that all
undefined symbols have been resolved. */
sym = (Elf32_Sym *)sechdrs[symindex].sh_addr
+ ELF32_R_SYM(rel[i].r_info);
switch (ELF32_R_TYPE(rel[i].r_info)) { case R_68K_32: /* We add the value into the location given */
*location = rel[i].r_addend + sym->st_value; break; case R_68K_PC32: /* Add the value, subtract its position */
*location = rel[i].r_addend + sym->st_value - (uint32_t)location; break; default:
pr_err("module %s: Unknown relocation: %u\n", me->name,
ELF32_R_TYPE(rel[i].r_info)); return -ENOEXEC;
}
} return0;
}
for (fixup = start; fixup < end; fixup++) { switch (fixup->type) { case m68k_fixup_memoffset:
*(u32 *)fixup->addr = m68k_memoffset; break; case m68k_fixup_vnode_shift:
*(u16 *)fixup->addr += m68k_virt_to_node_shift; break;
}
} #endif
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.0Bemerkung:
(vorverarbeitet am 2026-06-07)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.