kernel/process: move current process to kernel instance
Two functional change: QueryProcessMemory uses the process passed from handle instead current_process Thread::Stop() uses TLS from owner_process instead of current_process
This commit is contained in:
parent
d9342622b0
commit
8fb3d8ff38
19 changed files with 96 additions and 55 deletions
|
@ -17,10 +17,14 @@ TestEnvironment::TestEnvironment(bool mutable_memory_)
|
|||
: mutable_memory(mutable_memory_), test_memory(std::make_shared<TestMemory>(this)) {
|
||||
|
||||
CoreTiming::Init();
|
||||
kernel = std::make_unique<Kernel::KernelSystem>(0);
|
||||
// HACK: some memory functions are currently referring kernel from the global instance,
|
||||
// so we need to create the kernel object there.
|
||||
// Change this when all global states are eliminated.
|
||||
Core::System::GetInstance().kernel = std::make_unique<Kernel::KernelSystem>(0);
|
||||
kernel = Core::System::GetInstance().kernel.get();
|
||||
|
||||
Kernel::g_current_process = kernel->CreateProcess(kernel->CreateCodeSet("", 0));
|
||||
page_table = &Kernel::g_current_process->vm_manager.page_table;
|
||||
kernel->SetCurrentProcess(kernel->CreateProcess(kernel->CreateCodeSet("", 0)));
|
||||
page_table = &kernel->GetCurrentProcess()->vm_manager.page_table;
|
||||
|
||||
page_table->pointers.fill(nullptr);
|
||||
page_table->attributes.fill(Memory::PageType::Unmapped);
|
||||
|
|
|
@ -80,7 +80,7 @@ private:
|
|||
std::shared_ptr<TestMemory> test_memory;
|
||||
std::vector<WriteRecord> write_records;
|
||||
|
||||
std::unique_ptr<Kernel::KernelSystem> kernel;
|
||||
Kernel::KernelSystem* kernel;
|
||||
};
|
||||
|
||||
} // namespace ArmTests
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue