/* * Copyright (c) 2022, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include namespace Kernel { static u64 current_time_tsc() { return read_tsc(); } fptr optional_current_time() { VERIFY(Processor::is_initialized()); // sanity check // Figure out a good scheduling time source if (Processor::current().has_feature(CPUFeature::TSC) && Processor::current().has_feature(CPUFeature::CONSTANT_TSC)) { return current_time_tsc; } return nullptr; } }