diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-12 04:57:22 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-12 09:03:53 +0100 |
| commit | 2035b324141cbebb1f51a13a28046fbde2735c96 (patch) | |
| tree | 9a3a4e2a6f8fdc4a050d4e6cb3bfe5fbea826f5d | |
| parent | f59ea1392321e1543c281794ec887d1186077163 (diff) | |
feat: modify IDriverBase contract and concept.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
| -rw-r--r-- | src/libDDK/DriverKit/c++/driver_base.h | 11 |
1 files changed, 6 insertions, 5 deletions
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 <typename T> -concept IsValidDriver = requires(T driver_base) { +template <typename Driver> +concept IsValidDriver = requires(Driver driver_base) { { driver_base.IsActive() && driver_base.Type() > kInvalidType }; }; |
