Lines Matching refs:me

29  *			if (in_init(me, (void *)val))
30 * val -= (uint32_t)me->mem[MOD_INIT_TEXT].base;
32 * val -= (uint32_t)me->mem[MOD_TEXT].base;
63 me->name, strtab + sym->st_name, (unsigned long)val, bits); \
270 struct module *me)
276 len = hdr->e_shnum * sizeof(me->arch.section[0]);
277 me->arch.section = kzalloc(len, GFP_KERNEL);
278 if (!me->arch.section)
288 me->arch.unwind_section = i;
313 WARN_ON(me->arch.section[s].stub_entries);
316 me->arch.section[s].stub_entries += count;
319 mod_mem = &me->mem[MOD_TEXT];
322 me->arch.got_offset = mod_mem->size;
326 me->arch.fdesc_offset = mod_mem->size;
329 me->arch.got_max = gots;
330 me->arch.fdesc_max = fdescs;
336 static Elf64_Word get_got(struct module *me, unsigned long value, long addend)
345 got = me->mem[MOD_TEXT].base + me->arch.got_offset;
350 BUG_ON(++me->arch.got_count > me->arch.got_max);
361 static Elf_Addr get_fdesc(struct module *me, unsigned long value)
363 Elf_Fdesc *fdesc = me->mem[MOD_TEXT].base + me->arch.fdesc_offset;
366 printk(KERN_ERR "%s: zero OPD requested!\n", me->name);
377 BUG_ON(++me->arch.fdesc_count > me->arch.fdesc_max);
381 fdesc->gp = (Elf_Addr)me->mem[MOD_TEXT].base + me->arch.got_offset;
392 static Elf_Addr get_stub(struct module *me, unsigned long value, long addend,
399 if (!me->arch.section[targetsec].stub_offset) {
400 loc0 -= (me->arch.section[targetsec].stub_entries + 1) *
404 me->arch.section[targetsec].stub_offset = loc0;
408 stub = (void *) me->arch.section[targetsec].stub_offset;
409 me->arch.section[targetsec].stub_offset += sizeof(struct stub_entry);
412 BUG_ON(0 == me->arch.section[targetsec].stub_entries--);
450 d = get_got(me, value, addend);
493 struct module *me)
520 me->name, strtab + sym->st_name);
596 val = get_stub(me, sym->st_value, addend,
611 val = get_stub(me, sym->st_value, addend,
625 me->name, ELF32_R_TYPE(rel[i].r_info));
638 struct module *me)
664 me->name, strtab + sym->st_name);
692 val = get_got(me, val, addend);
702 val = get_got(me, val, addend);
716 if (within_module(val, me)) {
725 val = get_stub(me, sym->st_value,
737 val = get_stub(me, val, addend, ELF_STUB_MILLI,
740 val = get_stub(me, val, addend, ELF_STUB_GOT,
775 if (within_module(val + addend, me)) {
776 *loc64 = get_fdesc(me, val+addend);
793 me->name, ELF64_R_TYPE(rel[i].r_info));
802 register_unwind_table(struct module *me,
808 if (!me->arch.unwind_section)
811 table = (unsigned char *)sechdrs[me->arch.unwind_section].sh_addr;
812 end = table + sechdrs[me->arch.unwind_section].sh_size;
813 gp = (Elf_Addr)me->mem[MOD_TEXT].base + me->arch.got_offset;
816 me->arch.unwind_section, table, end, gp);
817 me->arch.unwind = unwind_table_add(me->name, 0, gp, table, end);
821 deregister_unwind_table(struct module *me)
823 if (me->arch.unwind)
824 unwind_table_remove(me->arch.unwind);
829 struct module *me)
843 entry = (Elf_Fdesc *)me->init;
851 me->arch.got_count, me->arch.got_max,
852 me->arch.fdesc_count, me->arch.fdesc_max);
855 register_unwind_table(me, sechdrs);
857 /* haven't filled in me->symtab yet, so have to find it
874 me->name, strtab, symhdr);
876 if(me->arch.got_count > MAX_GOTS) {
878 me->name, me->arch.got_count, MAX_GOTS);
882 kfree(me->arch.section);
883 me->arch.section = NULL;
918 apply_alternatives(aseg, aseg + s->sh_size, me->name);
930 s - sechdrs, me);
934 s - sechdrs, me);