kernel: bsp: update vm-region api usage
This commit is contained in:
39
kernel/bsp.c
39
kernel/bsp.c
@@ -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,
|
||||
®ion);
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user