Lines Matching refs:mem_idx

33 static void llext_init_mem_part(struct llext *ext, enum llext_mem mem_idx,  in llext_init_mem_part()  argument
37 if (mem_idx < LLEXT_MEM_PARTITIONS) { in llext_init_mem_part()
38 ext->mem_parts[mem_idx].start = start; in llext_init_mem_part()
39 ext->mem_parts[mem_idx].size = len; in llext_init_mem_part()
41 switch (mem_idx) { in llext_init_mem_part()
43 ext->mem_parts[mem_idx].attr = K_MEM_PARTITION_P_RX_U_RX; in llext_init_mem_part()
47 ext->mem_parts[mem_idx].attr = K_MEM_PARTITION_P_RW_U_RW; in llext_init_mem_part()
50 ext->mem_parts[mem_idx].attr = K_MEM_PARTITION_P_RO_U_RO; in llext_init_mem_part()
58 LOG_DBG("region %d: start 0x%zx, size %zd", mem_idx, (size_t)start, len); in llext_init_mem_part()
62 enum llext_mem mem_idx, const struct llext_load_param *ldr_parm) in llext_copy_section() argument
66 if (!ldr->sects[mem_idx].sh_size) { in llext_copy_section()
69 ext->mem_size[mem_idx] = ldr->sects[mem_idx].sh_size; in llext_copy_section()
72 if (ldr->sects[mem_idx].sh_type != SHT_NOBITS) { in llext_copy_section()
74 ext->mem[mem_idx] = llext_peek(ldr, ldr->sects[mem_idx].sh_offset); in llext_copy_section()
75 if (ext->mem[mem_idx]) { in llext_copy_section()
76 llext_init_mem_part(ext, mem_idx, (uintptr_t)ext->mem[mem_idx], in llext_copy_section()
77 ldr->sects[mem_idx].sh_size); in llext_copy_section()
78 ext->mem_on_heap[mem_idx] = false; in llext_copy_section()
86 ext->mem[mem_idx] = NULL; in llext_copy_section()
87 ext->mem_on_heap[mem_idx] = false; in llext_copy_section()
101 const uintptr_t sect_alloc = ROUND_UP(ldr->sects[mem_idx].sh_size, LLEXT_PAGE_SIZE); in llext_copy_section()
106 while (sect_alloc < ldr->sects[mem_idx].sh_size) { in llext_copy_section()
112 ext->mem[mem_idx] = llext_aligned_alloc(sect_align, sect_alloc); in llext_copy_section()
113 if (!ext->mem[mem_idx]) { in llext_copy_section()
119 llext_init_mem_part(ext, mem_idx, (uintptr_t)ext->mem[mem_idx], in llext_copy_section()
122 if (ldr->sects[mem_idx].sh_type == SHT_NOBITS) { in llext_copy_section()
123 memset(ext->mem[mem_idx], 0, ldr->sects[mem_idx].sh_size); in llext_copy_section()
125 ret = llext_seek(ldr, ldr->sects[mem_idx].sh_offset); in llext_copy_section()
130 ret = llext_read(ldr, ext->mem[mem_idx], ldr->sects[mem_idx].sh_size); in llext_copy_section()
136 ext->mem_on_heap[mem_idx] = true; in llext_copy_section()
141 llext_free(ext->mem[mem_idx]); in llext_copy_section()
142 ext->mem[mem_idx] = NULL; in llext_copy_section()
160 for (enum llext_mem mem_idx = 0; mem_idx < LLEXT_MEM_COUNT; mem_idx++) { in llext_copy_regions() local
162 if (ext->mem[mem_idx]) { in llext_copy_regions()
166 int ret = llext_copy_section(ldr, ext, mem_idx, ldr_parm); in llext_copy_regions()
183 for (enum llext_mem mem_idx = 0; mem_idx < LLEXT_MEM_PARTITIONS; mem_idx++) { in llext_adjust_mmu_permissions() local
184 addr = ext->mem[mem_idx]; in llext_adjust_mmu_permissions()
185 size = ROUND_UP(ext->mem_size[mem_idx], LLEXT_PAGE_SIZE); in llext_adjust_mmu_permissions()
189 switch (mem_idx) { in llext_adjust_mmu_permissions()