Lines Matching full:location
43 static void apply_r_mips_32(u32 *location, u32 base, Elf_Addr v) in apply_r_mips_32() argument
45 *location = base + v; in apply_r_mips_32()
48 static int apply_r_mips_26(struct module *me, u32 *location, u32 base, in apply_r_mips_26() argument
57 if ((v & 0xf0000000) != (((unsigned long)location + 4) & 0xf0000000)) { in apply_r_mips_26()
63 *location = (*location & ~0x03ffffff) | in apply_r_mips_26()
69 static int apply_r_mips_hi16(struct module *me, u32 *location, Elf_Addr v, in apply_r_mips_hi16() argument
75 *location = (*location & 0xffff0000) | in apply_r_mips_hi16()
89 n->addr = (Elf_Addr *)location; in apply_r_mips_hi16()
108 static int apply_r_mips_lo16(struct module *me, u32 *location, in apply_r_mips_lo16() argument
116 *location = (*location & 0xffff0000) | (v & 0xffff); in apply_r_mips_lo16()
167 *location = insnlo; in apply_r_mips_lo16()
180 static int apply_r_mips_pc(struct module *me, u32 *location, u32 base, in apply_r_mips_pc() argument
197 offset += ((long)v - (long)location) >> 2; in apply_r_mips_pc()
206 *location = (*location & ~mask) | (offset & mask); in apply_r_mips_pc()
211 static int apply_r_mips_pc16(struct module *me, u32 *location, u32 base, in apply_r_mips_pc16() argument
214 return apply_r_mips_pc(me, location, base, v, 16); in apply_r_mips_pc16()
217 static int apply_r_mips_pc21(struct module *me, u32 *location, u32 base, in apply_r_mips_pc21() argument
220 return apply_r_mips_pc(me, location, base, v, 21); in apply_r_mips_pc21()
223 static int apply_r_mips_pc26(struct module *me, u32 *location, u32 base, in apply_r_mips_pc26() argument
226 return apply_r_mips_pc(me, location, base, v, 26); in apply_r_mips_pc26()
229 static int apply_r_mips_64(u32 *location, Elf_Addr v, bool rela) in apply_r_mips_64() argument
234 *(Elf_Addr *)location = v; in apply_r_mips_64()
239 static int apply_r_mips_higher(u32 *location, Elf_Addr v, bool rela) in apply_r_mips_higher() argument
244 *location = (*location & 0xffff0000) | in apply_r_mips_higher()
250 static int apply_r_mips_highest(u32 *location, Elf_Addr v, bool rela) in apply_r_mips_highest() argument
255 *location = (*location & 0xffff0000) | in apply_r_mips_highest()
265 * @location: the address at which the reloc is to be applied
266 * @base: the existing value at location for REL-style; 0 for RELA-style
278 static int reloc_handler(u32 type, struct module *me, u32 *location, u32 base, in reloc_handler() argument
285 apply_r_mips_32(location, base, v); in reloc_handler()
288 return apply_r_mips_26(me, location, base, v); in reloc_handler()
290 return apply_r_mips_hi16(me, location, v, rela); in reloc_handler()
292 return apply_r_mips_lo16(me, location, base, v, rela); in reloc_handler()
294 return apply_r_mips_pc16(me, location, base, v); in reloc_handler()
296 return apply_r_mips_pc21(me, location, base, v); in reloc_handler()
298 return apply_r_mips_pc26(me, location, base, v); in reloc_handler()
300 return apply_r_mips_64(location, v, rela); in reloc_handler()
302 return apply_r_mips_higher(location, v, rela); in reloc_handler()
304 return apply_r_mips_highest(location, v, rela); in reloc_handler()
322 u32 *location, base; in __apply_relocate() local
336 location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr in __apply_relocate()
359 base = *location; in __apply_relocate()
363 err = reloc_handler(type, me, location, base, v, rela); in __apply_relocate()