From 2035b324141cbebb1f51a13a28046fbde2735c96 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Fri, 12 Dec 2025 04:57:22 +0100 Subject: feat: modify IDriverBase contract and concept. Signed-off-by: Amlal El Mahrouss --- src/libDDK/DriverKit/c++/driver_base.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/libDDK/DriverKit/c++/driver_base.h b/src/libDDK/DriverKit/c++/driver_base.h index eca3ba8b..925628b3 100644 --- a/src/libDDK/DriverKit/c++/driver_base.h +++ b/src/libDDK/DriverKit/c++/driver_base.h @@ -20,26 +20,27 @@ /// @author Amlal El Mahrouss namespace Kernel::DDK { -constexpr auto kInvalidType = 0; +inline constexpr auto kInvalidType = 0; class IDriverBase { public: explicit IDriverBase() = default; virtual ~IDriverBase() = default; - NE_COPY_DEFAULT(IDriverBase); + NE_COPY_DELETE(IDriverBase); + NE_MOVE_DEFAULT(IDriverBase); using PtrType = VoidPtr; - virtual BOOL IsCastable() { return NO; } + virtual constexpr BOOL IsCastable() { return NO; } virtual constexpr BOOL IsActive() { return NO; } virtual PtrType Leak() { return nullptr; } virtual constexpr Int32 Type() { return kInvalidType; } }; /// @brief This concept requires the Driver to be IDriverBase compliant. -template -concept IsValidDriver = requires(T driver_base) { +template +concept IsValidDriver = requires(Driver driver_base) { { driver_base.IsActive() && driver_base.Type() > kInvalidType }; }; -- cgit v1.2.3