1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:47:46 +00:00

Kernel: Turn Thread::current and Process::current into functions

This allows us to query the current thread and process on a
per processor basis
This commit is contained in:
Tom 2020-06-28 15:34:31 -06:00 committed by Andreas Kling
parent cdc78515b6
commit 16783bd14d
39 changed files with 518 additions and 369 deletions

View file

@ -67,11 +67,12 @@ KResult PerformanceEventBuffer::append(int type, FlatPtr arg1, FlatPtr arg2)
asm volatile("movl %%ebp, %%eax"
: "=a"(ebp));
FlatPtr eip;
copy_from_user(&eip, (FlatPtr*)&Thread::current->get_register_dump_from_stack().eip);
auto current_thread = Thread::current();
copy_from_user(&eip, (FlatPtr*)&current_thread->get_register_dump_from_stack().eip);
Vector<FlatPtr> backtrace;
{
SmapDisabler disabler;
backtrace = Thread::current->raw_backtrace(ebp, eip);
backtrace = current_thread->raw_backtrace(ebp, eip);
}
event.stack_size = min(sizeof(event.stack) / sizeof(FlatPtr), static_cast<size_t>(backtrace.size()));
memcpy(event.stack, backtrace.data(), event.stack_size * sizeof(FlatPtr));