From c258c2e5fa9f5134dbc56f717ba37231a08a9081 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 16 Dec 2025 10:05:50 +0100 Subject: chore: kernel improvements and tweaks on the kernel. - Two default domains: - Computable domain, alias: Domain. - Non-Computable domain, alias: NullDomain. - DiskSwap API improvements. - Vettable Now returns the Result object instead of its value. - Kernel shall not panic when `ptr_new` returns null. Signed-off-by: Amlal El Mahrouss --- src/kernel/NeKit/Domain.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/kernel/NeKit/Domain.h (limited to 'src/kernel/NeKit/Domain.h') diff --git a/src/kernel/NeKit/Domain.h b/src/kernel/NeKit/Domain.h new file mode 100644 index 00000000..cda63ee9 --- /dev/null +++ b/src/kernel/NeKit/Domain.h @@ -0,0 +1,37 @@ +/* ======================================== + + Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. + +======================================== */ + +#ifndef __NE_KIT_DOMAIN_H__ +#define __NE_KIT_DOMAIN_H__ + +#include + +namespace Kernel { +template +struct IsDefined final { + using ResultType = Type; + using ResultTypeRef = Type&; + + static constexpr bool kValue = true; +}; + +template <> +struct IsDefined final { + static constexpr bool kValue = false; +}; + +using NullDomain = IsDefined; + +template +using Domain = IsDefined; + +template +concept IsAcceptable = requires() { + { IsDefined::kValue }; +}; +} // namespace Kernel + +#endif // !__NE_KIT_DOMAIN_H__ \ No newline at end of file -- cgit v1.2.3