Lines Matching full:module
20 rt_err_t dlmodule_load_shared_object(struct rt_dlmodule* module, void *module_ptr) in dlmodule_load_shared_object() argument
87 LOG_D("module size: %d, vstart_addr: 0x%p", module_size, vstart_addr); in dlmodule_load_shared_object()
90 rt_kprintf("Module: size error\n"); in dlmodule_load_shared_object()
94 module->vstart_addr = vstart_addr; in dlmodule_load_shared_object()
95 module->nref = 0; in dlmodule_load_shared_object()
97 /* allocate module space */ in dlmodule_load_shared_object()
98 module->mem_space = rt_malloc(module_size); in dlmodule_load_shared_object()
99 if (module->mem_space == RT_NULL) in dlmodule_load_shared_object()
101 rt_kprintf("Module: allocate space failed.\n"); in dlmodule_load_shared_object()
104 module->mem_size = module_size; in dlmodule_load_shared_object()
107 rt_memset(module->mem_space, 0, module_size); in dlmodule_load_shared_object()
112 rt_memcpy(module->mem_space + phdr[index].p_vaddr - vstart_addr, in dlmodule_load_shared_object()
118 /* set module entry */ in dlmodule_load_shared_object()
119 module->entry_addr = module->mem_space + elf_module->e_entry - vstart_addr; in dlmodule_load_shared_object()
154 addr = (Elf32_Addr)(module->mem_space + sym->st_value - vstart_addr); in dlmodule_load_shared_object()
155 dlmodule_relocate(module, rel, addr); in dlmodule_load_shared_object()
166 LOG_E("Module: can't find %s in kernel symbol table", strtab + sym->st_name); in dlmodule_load_shared_object()
171 dlmodule_relocate(module, rel, addr); in dlmodule_load_shared_object()
181 /* construct module symbol table */ in dlmodule_load_shared_object()
209 module->symtab = (struct rt_module_symtab *)rt_malloc in dlmodule_load_shared_object()
211 module->nsym = count; in dlmodule_load_shared_object()
222 module->symtab[count].addr = in dlmodule_load_shared_object()
223 (void *)(module->mem_space + symtab[i].st_value - module->vstart_addr); in dlmodule_load_shared_object()
224 module->symtab[count].name = rt_malloc(length); in dlmodule_load_shared_object()
225 rt_memset((void *)module->symtab[count].name, 0, length); in dlmodule_load_shared_object()
226 rt_memcpy((void *)module->symtab[count].name, in dlmodule_load_shared_object()
236 rt_err_t dlmodule_load_relocated_object(struct rt_dlmodule* module, void *module_ptr) in dlmodule_load_relocated_object() argument
271 module->vstart_addr = 0; in dlmodule_load_relocated_object()
273 /* allocate module space */ in dlmodule_load_relocated_object()
274 module->mem_space = rt_malloc(module_size); in dlmodule_load_relocated_object()
275 if (module->mem_space == RT_NULL) in dlmodule_load_relocated_object()
277 rt_kprintf("Module: allocate space failed.\n"); in dlmodule_load_relocated_object()
280 module->mem_size = module_size; in dlmodule_load_relocated_object()
283 ptr = module->mem_space; in dlmodule_load_relocated_object()
332 /* set module entry */ in dlmodule_load_relocated_object()
333 …module->entry_addr = (rt_dlmodule_entry_func_t)((rt_uint8_t *)module->mem_space + elf_module->e_en… in dlmodule_load_relocated_object()
393 if (addr != 0) dlmodule_relocate(module, rel, addr); in dlmodule_load_relocated_object()
397 … addr = (Elf32_Addr)((rt_uint8_t *) module->mem_space - module_addr + sym->st_value); in dlmodule_load_relocated_object()
400 dlmodule_relocate(module, rel, addr); in dlmodule_load_relocated_object()
406 dlmodule_relocate(module, rel, in dlmodule_load_relocated_object()
408 module->mem_space in dlmodule_load_relocated_object()
424 dlmodule_relocate(module, rel, addr); in dlmodule_load_relocated_object()
428 LOG_E("Module: can't find %s in kernel symbol table", in dlmodule_load_relocated_object()
433 … addr = (Elf32_Addr)((rt_uint8_t *) module->mem_space - module_addr + sym->st_value); in dlmodule_load_relocated_object()
434 dlmodule_relocate(module, rel, addr); in dlmodule_load_relocated_object()