mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 06:57:46 +00:00
Kernel: Add ThreadRegisters::set_exec_state and use it in execve.cpp
Using this abstraction it is possible to compile this file for aarch64.
This commit is contained in:
parent
171a8ca478
commit
1fbf562e7e
3 changed files with 19 additions and 4 deletions
|
@ -33,6 +33,14 @@ struct ThreadRegisters {
|
|||
set_ip(entry_ip);
|
||||
x[0] = entry_data;
|
||||
}
|
||||
|
||||
void set_exec_state(FlatPtr entry_ip, FlatPtr userspace_sp, Memory::AddressSpace& space)
|
||||
{
|
||||
(void)entry_ip;
|
||||
(void)userspace_sp;
|
||||
(void)space;
|
||||
TODO_AARCH64();
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -79,6 +79,14 @@ struct ThreadRegisters {
|
|||
set_ip(entry_ip);
|
||||
rdi = entry_data; // entry function argument is expected to be in regs.rdi
|
||||
}
|
||||
|
||||
void set_exec_state(FlatPtr entry_ip, FlatPtr userspace_sp, Memory::AddressSpace& space)
|
||||
{
|
||||
cs = GDT_SELECTOR_CODE3 | 3;
|
||||
rip = entry_ip;
|
||||
rsp = userspace_sp;
|
||||
cr3 = space.page_directory().cr3();
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue