Lines Matching full:vpe
9 * VPE spport module for loading a MIPS SP program into VPE1. The SP
36 #include <asm/vpe.h>
52 /* get the vpe associated with this minor */
53 struct vpe *get_vpe(int minor) in get_vpe()
55 struct vpe *res, *v; in get_vpe()
73 /* get the vpe associated with this minor */
91 /* allocate a vpe and associate it with this minor (or index) */
92 struct vpe *alloc_vpe(int minor) in alloc_vpe()
94 struct vpe *v; in alloc_vpe()
96 v = kzalloc(sizeof(struct vpe), GFP_KERNEL); in alloc_vpe()
133 void release_vpe(struct vpe *v) in release_vpe()
141 /* Find some VPE program space */
249 pr_debug("VPE loader: apply_r_mips_gprel16: relative address 0x%x out of range of gp register\n", in apply_r_mips_gprel16()
268 pr_debug("VPE loader: apply_r_mips_pc16: relative address out of range 0x%x\n", in apply_r_mips_pc16()
290 pr_debug("VPE loader: apply_r_mips_26: unaligned relocation\n"); in apply_r_mips_26()
353 pr_debug("VPE loader: apply_r_mips_lo16/hi16: inconsistent value information\n"); in apply_r_mips_lo16()
459 pr_warn("VPE loader: .text+0x%x relocation type %s for symbol \"%s\" failed\n", in apply_relocations()
550 static int find_vpe_symbols(struct vpe *v, Elf_Shdr *sechdrs, in find_vpe_symbols()
572 * Allocates a VPE with some program code space(the load address), copies the
576 static int vpe_elfload(struct vpe *v) in vpe_elfload()
586 strcpy(mod.name, "VPE loader"); in vpe_elfload()
597 pr_warn("VPE loader: program wrong arch or weird elf version\n"); in vpe_elfload()
606 pr_err("VPE loader: program length %u truncated\n", len); in vpe_elfload()
623 pr_err("VPE program length %u truncated\n", in vpe_elfload()
648 pr_info("VPE loader: loading to %p\n", v->load_addr); in vpe_elfload()
736 pr_warn("VPE loader: program does not contain a __start symbol\n"); in vpe_elfload()
741 pr_warn("VPE loader: program does not contain vpe_shared symbol.\n" in vpe_elfload()
764 /* checks VPE is unused and gets ready to load program */
769 struct vpe *v; in vpe_open()
774 pr_warn("VPE loader: only vpe1 is supported\n"); in vpe_open()
781 pr_warn("VPE loader: unable to get vpe\n"); in vpe_open()
788 pr_debug("VPE loader: tc in use dumping regs\n"); in vpe_open()
800 pr_warn("VPE loader: unable to allocate memory\n"); in vpe_open()
810 pr_warn("VPE loader: open, getcwd returned %d\n", ret); in vpe_open()
821 struct vpe *v; in vpe_release()
834 pr_warn("VPE loader: ELF load failed.\n"); in vpe_release()
838 pr_warn("VPE loader: only elf files are supported\n"); in vpe_release()
844 lose what has happened. So perhaps if garbage is sent to the vpe in vpe_release()
855 pr_warn("VPE loader: ELF load failed.\n"); in vpe_release()
864 struct vpe *v; in vpe_write()
875 pr_warn("VPE loader: elf size too big. Perhaps strip unneeded symbols\n"); in vpe_write()
897 struct vpe *v = get_vpe(index); in vpe_get_shared()
908 struct vpe *v = get_vpe(index); in vpe_notify()
920 struct vpe *v = get_vpe(index); in vpe_getcwd()
931 MODULE_DESCRIPTION("MIPS VPE Loader");