From e2bd3c7b6fcd6147fcbf699be087a475608ffdf7 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Fri, 23 May 2025 15:57:42 +0200 Subject: feat(krnl, libSystem, boot): Make space for LibSystem inside Handover boot structure. what: - Mostly related to the libSystem.sys library. - Updated the implementation of it, the specs, and added new APIs. - Fixed the hooks inside AsmProc.h Signed-off-by: Amlal El Mahrouss --- dev/generic_kits/BenchKit/.keep | 0 dev/generic_kits/BenchKit/Chrono.h | 15 +++++++++++++++ dev/generic_kits/BenchKit/HardwareChrono.h | 9 +++++++++ 3 files changed, 24 insertions(+) delete mode 100644 dev/generic_kits/BenchKit/.keep create mode 100644 dev/generic_kits/BenchKit/HardwareChrono.h (limited to 'dev/generic_kits/BenchKit') diff --git a/dev/generic_kits/BenchKit/.keep b/dev/generic_kits/BenchKit/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/dev/generic_kits/BenchKit/Chrono.h b/dev/generic_kits/BenchKit/Chrono.h index b4010460..394f16fd 100644 --- a/dev/generic_kits/BenchKit/Chrono.h +++ b/dev/generic_kits/BenchKit/Chrono.h @@ -7,10 +7,25 @@ Copyright (C) 2025, Amlal El Mahrouss, all rights reserved. #ifndef BENCHKIT_CHRONO_H #define BENCHKIT_CHRONO_H +#include #include namespace Kernel { class ChronoInterface; + +/// @brief a Chronometer interface used for benchmarking. +class ChronoInterface { + public: + ChronoInterface() = default; + virtual ~ChronoInterface() = default; + + NE_COPY_DEFAULT(ChronoInterface); + + virtual void Start() = 0; + virtual void Stop() = 0; + virtual void Reset() = 0; + virtual UInt64 GetElapsedTime() const = 0; +}; } // namespace Kernel #endif // BENCHKIT_CHRONO_H diff --git a/dev/generic_kits/BenchKit/HardwareChrono.h b/dev/generic_kits/BenchKit/HardwareChrono.h new file mode 100644 index 00000000..f6f6fd8c --- /dev/null +++ b/dev/generic_kits/BenchKit/HardwareChrono.h @@ -0,0 +1,9 @@ +/* ------------------------------------------- + +Copyright (C) 2025, Amlal El Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include -- cgit v1.2.3