kernel: bsp: update vm-region api usage

This commit is contained in:
2026-02-08 15:52:04 +00:00
parent fb7d7635c2
commit c424e8127e

View File

@@ -86,7 +86,7 @@ static kern_status_t map_executable(
status = vm_region_create(
task->t_address_space,
"exec",
VM_REGION_ANY_MAP_ADDRESS,
VM_REGION_ANY_OFFSET,
exec_size,
VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXEC | VM_PROT_USER,
&region);
@@ -103,25 +103,26 @@ static kern_status_t map_executable(
return KERN_NO_MEMORY;
}
off_t text_offset = bsp->bsp_trailer.bsp_exec_offset
+ bsp->bsp_trailer.bsp_text_faddr;
off_t data_offset = 0;
virt_addr_t text_base = region->vr_entry.e_base_address
+ bsp->bsp_trailer.bsp_text_vaddr;
virt_addr_t data_base = region->vr_entry.e_base_address
+ bsp->bsp_trailer.bsp_data_vaddr;
virt_addr_t text_base = 0, data_base = 0;
tracek("exec_offset=%llx, text_faddr=%llx",
bsp->bsp_trailer.bsp_exec_offset,
bsp->bsp_trailer.bsp_text_faddr);
tracek("text_offset=%llx, data_offset=%llx", text_offset, data_offset);
tracek("text_base=%llx, data_base=%llx", text_base, data_base);
off_t text_foffset = bsp->bsp_trailer.bsp_exec_offset
+ bsp->bsp_trailer.bsp_text_faddr;
off_t data_foffset = 0;
off_t text_voffset = bsp->bsp_trailer.bsp_text_vaddr;
off_t data_voffset = bsp->bsp_trailer.bsp_data_vaddr;
tracek("text_foffset=%06llx, data_foffset=%06llx",
text_foffset,
data_foffset);
tracek("text_voffset=%08llx, data_voffset=%08llx",
text_voffset,
data_voffset);
status = vm_region_map_object(
region,
text_base,
text_voffset,
bsp->bsp_vmo,
text_offset,
text_foffset,
bsp->bsp_trailer.bsp_text_size,
VM_PROT_READ | VM_PROT_EXEC | VM_PROT_USER,
&text_base);
@@ -131,9 +132,9 @@ static kern_status_t map_executable(
status = vm_region_map_object(
region,
data_base,
data_voffset,
data,
data_offset,
data_foffset,
bsp->bsp_trailer.bsp_data_size,
VM_PROT_READ | VM_PROT_WRITE | VM_PROT_USER,
&data_base);
@@ -141,6 +142,8 @@ static kern_status_t map_executable(
return status;
}
tracek("text_base=%08llx, data_base=%08llx", text_base, data_base);
*entry = text_base + bsp->bsp_trailer.bsp_exec_entry;
return KERN_OK;
}
@@ -164,7 +167,7 @@ kern_status_t bsp_launch_async(struct bsp *bsp, struct task *task)
status = vm_region_map_object(
task->t_address_space,
VM_REGION_ANY_MAP_ADDRESS,
VM_REGION_ANY_OFFSET,
user_stack,
0,
BOOTSTRAP_STACK_SIZE,