Lines Matching refs:v
56 struct vpe *res, *v; in get_vpe() local
63 list_for_each_entry(v, &vpecontrol.vpe_list, list) { in get_vpe()
64 if (v->minor == VPE_MODULE_MINOR) { in get_vpe()
65 res = v; in get_vpe()
95 struct vpe *v; in alloc_vpe() local
97 v = kzalloc(sizeof(struct vpe), GFP_KERNEL); in alloc_vpe()
98 if (v == NULL) in alloc_vpe()
101 INIT_LIST_HEAD(&v->tc); in alloc_vpe()
103 list_add_tail(&v->list, &vpecontrol.vpe_list); in alloc_vpe()
106 INIT_LIST_HEAD(&v->notify); in alloc_vpe()
107 v->minor = VPE_MODULE_MINOR; in alloc_vpe()
110 return v; in alloc_vpe()
134 void release_vpe(struct vpe *v) in release_vpe() argument
136 list_del(&v->list); in release_vpe()
137 if (v->load_addr) in release_vpe()
138 release_progmem(v->load_addr); in release_vpe()
139 kfree(v); in release_vpe()
229 Elf32_Addr v) in apply_r_mips_none() argument
235 Elf32_Addr v) in apply_r_mips_gprel16() argument
240 rel = (int)v - gp_addr; in apply_r_mips_gprel16()
244 rel = (int)(short)((int)v + gp_offs + in apply_r_mips_gprel16()
260 Elf32_Addr v) in apply_r_mips_pc16() argument
263 rel = (((unsigned int)v - (unsigned int)location)); in apply_r_mips_pc16()
279 Elf32_Addr v) in apply_r_mips_32() argument
281 *location += v; in apply_r_mips_32()
287 Elf32_Addr v) in apply_r_mips_26() argument
289 if (v % 4) { in apply_r_mips_26()
307 ((*location + (v >> 2)) & 0x03ffffff); in apply_r_mips_26()
312 Elf32_Addr v) in apply_r_mips_hi16() argument
326 n->value = v; in apply_r_mips_hi16()
334 Elf32_Addr v) in apply_r_mips_lo16() argument
352 if (v != l->value) { in apply_r_mips_lo16()
365 val += v; in apply_r_mips_lo16()
387 val = v + vallo; in apply_r_mips_lo16()
405 Elf32_Addr v) = {
435 Elf32_Addr v; in apply_relocations() local
454 v = sym->st_value; in apply_relocations()
456 res = reloc_handlers[ELF32_R_TYPE(r_info)](me, location, v); in apply_relocations()
550 static int find_vpe_symbols(struct vpe *v, Elf_Shdr *sechdrs, in find_vpe_symbols() argument
559 v->__start = sym[i].st_value; in find_vpe_symbols()
562 v->shared_ptr = (void *)sym[i].st_value; in find_vpe_symbols()
565 if ((v->__start == 0) || (v->shared_ptr == NULL)) in find_vpe_symbols()
576 static int vpe_elfload(struct vpe *v) in vpe_elfload() argument
588 hdr = (Elf_Ehdr *) v->pbuffer; in vpe_elfload()
589 len = v->plen; in vpe_elfload()
644 v->load_addr = alloc_progmem(mod.mem[MOD_TEXT].size); in vpe_elfload()
645 if (!v->load_addr) in vpe_elfload()
648 pr_info("VPE loader: loading to %p\n", v->load_addr); in vpe_elfload()
657 dest = v->load_addr + sechdrs[i].sh_entsize; in vpe_elfload()
731 flush_icache_range((unsigned long)v->load_addr, in vpe_elfload()
732 (unsigned long)v->load_addr + v->len); in vpe_elfload()
734 if ((find_vpe_symbols(v, sechdrs, symindex, strtab, &mod)) < 0) { in vpe_elfload()
735 if (v->__start == 0) { in vpe_elfload()
740 if (v->shared_ptr == NULL) in vpe_elfload()
754 struct vpe *v; in vpe_open() local
763 v = get_vpe(aprp_cpu_index()); in vpe_open()
764 if (v == NULL) { in vpe_open()
770 state = xchg(&v->state, VPE_STATE_INUSE); in vpe_open()
774 list_for_each_entry(notifier, &v->notify, list) in vpe_open()
777 release_progmem(v->load_addr); in vpe_open()
782 v->pbuffer = vmalloc(P_SIZE); in vpe_open()
783 if (!v->pbuffer) { in vpe_open()
787 v->plen = P_SIZE; in vpe_open()
788 v->load_addr = NULL; in vpe_open()
789 v->len = 0; in vpe_open()
790 v->shared_ptr = NULL; in vpe_open()
791 v->__start = 0; in vpe_open()
799 struct vpe *v; in vpe_release() local
803 v = get_vpe(aprp_cpu_index()); in vpe_release()
804 if (v == NULL) in vpe_release()
807 hdr = (Elf_Ehdr *) v->pbuffer; in vpe_release()
809 if (vpe_elfload(v) >= 0) { in vpe_release()
810 vpe_run(v); in vpe_release()
826 v->shared_ptr = NULL; in vpe_release()
828 vfree(v->pbuffer); in vpe_release()
829 v->plen = 0; in vpe_release()
842 struct vpe *v; in vpe_write() local
847 v = get_vpe(aprp_cpu_index()); in vpe_write()
849 if (v == NULL) in vpe_write()
852 if ((count + v->len) > v->plen) { in vpe_write()
857 count -= copy_from_user(v->pbuffer + v->len, buffer, count); in vpe_write()
861 v->len += count; in vpe_write()
875 struct vpe *v = get_vpe(index); in vpe_get_shared() local
877 if (v == NULL) in vpe_get_shared()
880 return v->shared_ptr; in vpe_get_shared()
886 struct vpe *v = get_vpe(index); in vpe_notify() local
888 if (v == NULL) in vpe_notify()
891 list_add(¬ify->list, &v->notify); in vpe_notify()