1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 12:27:35 +00:00

Kernel: Implement TimeManagement for aarch64

This sets up the RPi::Timer to trigger an interurpt every 4ms using one
of the comparators. The actual time is calculated by looking at the main
counter of the RPi::Timer using the Timer::update_time function.

A stub for Scheduler::timer_tick is also added, since the TimeManagement
code now calls the function.
This commit is contained in:
Timon Kruiper 2022-10-17 15:17:25 +02:00 committed by Gunnar Beutner
parent 83b95c135e
commit 01a14ac7af
4 changed files with 85 additions and 4 deletions

View file

@ -15,12 +15,19 @@
#include <Kernel/PhysicalAddress.h>
#include <Kernel/Process.h>
#include <Kernel/Random.h>
#include <Kernel/Scheduler.h>
#include <Kernel/Sections.h>
#include <Kernel/UserOrKernelBuffer.h>
// Scheduler
namespace Kernel {
void Scheduler::timer_tick(RegisterState const&) {
// NOTE: This function currently will be called by the TimeManagement code,
// so there is no TODO_AARCH64. Instead there will be a linker error when
// the Scheduler code is compiled for aarch64.
};
READONLY_AFTER_INIT Thread* g_finalizer;
RecursiveSpinlock g_scheduler_lock { LockRank::None };