summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-29 22:29:19 -0500
committerGitHub <noreply@github.com>2025-11-29 22:29:19 -0500
commit0ea04985716deb9bff4a83e08e984513f6664b91 (patch)
treeebbb2f7b883dc57adeedba209860ffa8ab1ddc7a
parente0e8acd3db4ba1d50384f26305c6cc9021652840 (diff)
parent73fa1d46dc88bb74626715b491fafd57591aeab8 (diff)
Merge pull request #95 from nekernel-org/developv0.0.8
chore: API and System Design update.
-rw-r--r--public/frameworks/CoreFoundation.fwrk/headers/Dictionary.h9
-rw-r--r--public/frameworks/KernelTest.fwrk/headers/Foundation.h2
-rw-r--r--public/frameworks/KernelTest.fwrk/headers/SourceLocation.h2
-rw-r--r--src/kernel/FSKit/OpenHeFS.h2
-rw-r--r--src/kernel/KernelKit/UserProcessScheduler.h2
-rw-r--r--src/kernel/NeKit/OwnPtr.h2
-rw-r--r--src/kernel/NeKit/Pmm.h1
-rw-r--r--src/kernel/NeKit/Ref.h1
-rw-r--r--src/kernel/NeKit/Vet.h10
-rw-r--r--src/libDDK/DriverKit/c++/driver_base.h4
10 files changed, 24 insertions, 11 deletions
diff --git a/public/frameworks/CoreFoundation.fwrk/headers/Dictionary.h b/public/frameworks/CoreFoundation.fwrk/headers/Dictionary.h
index 75b6bb27..fef51f21 100644
--- a/public/frameworks/CoreFoundation.fwrk/headers/Dictionary.h
+++ b/public/frameworks/CoreFoundation.fwrk/headers/Dictionary.h
@@ -18,13 +18,14 @@ class CFDictionary final {
CFDictionary& operator=(const CFDictionary&) = default;
CFDictionary(const CFDictionary&) = default;
- Value& operator[](Key& at) {
- return this->Find(at);
- }
+ Value& operator[](Key& at) { return this->Find(at); }
Bool Empty() { return this->fCount > 0; }
- Bool Find(Key& key) { NE_UNUSED(key); return false; }
+ Bool Find(Key& key) {
+ NE_UNUSED(key);
+ return false;
+ }
operator bool() { return !this->Empty(); }
diff --git a/public/frameworks/KernelTest.fwrk/headers/Foundation.h b/public/frameworks/KernelTest.fwrk/headers/Foundation.h
index 8ff956a7..3bc7225d 100644
--- a/public/frameworks/KernelTest.fwrk/headers/Foundation.h
+++ b/public/frameworks/KernelTest.fwrk/headers/Foundation.h
@@ -6,8 +6,8 @@
#pragma once
-#include <libSystem/SystemKit/System.h>
#include <libSystem/SystemKit/Err.h>
+#include <libSystem/SystemKit/System.h>
#include <CoreFoundation.fwrk/headers/Object.h>
#include <CoreFoundation.fwrk/headers/String.h>
diff --git a/public/frameworks/KernelTest.fwrk/headers/SourceLocation.h b/public/frameworks/KernelTest.fwrk/headers/SourceLocation.h
index 6cfddae2..39fdafbb 100644
--- a/public/frameworks/KernelTest.fwrk/headers/SourceLocation.h
+++ b/public/frameworks/KernelTest.fwrk/headers/SourceLocation.h
@@ -15,7 +15,7 @@ class KTSourceLocation;
/// ================================================================================
class KTSourceLocation final CF_OBJECT {
public:
- KTSourceLocation() = delete;
+ KTSourceLocation() = delete;
~KTSourceLocation() override = default;
LIBSYS_COPY_DELETE(KTSourceLocation);
diff --git a/src/kernel/FSKit/OpenHeFS.h b/src/kernel/FSKit/OpenHeFS.h
index bd5f3753..16647095 100644
--- a/src/kernel/FSKit/OpenHeFS.h
+++ b/src/kernel/FSKit/OpenHeFS.h
@@ -9,8 +9,8 @@
#include <CompilerKit/CompilerKit.h>
#include <KernelKit/DriveMgr.h>
#include <KernelKit/UserMgr.h>
-#include <NeKit/Crc32.h>
#include <NeKit/Config.h>
+#include <NeKit/Crc32.h>
#include <NeKit/KString.h>
#include <hint/CompilerHint.h>
diff --git a/src/kernel/KernelKit/UserProcessScheduler.h b/src/kernel/KernelKit/UserProcessScheduler.h
index d67d54c2..6a6cfd61 100644
--- a/src/kernel/KernelKit/UserProcessScheduler.h
+++ b/src/kernel/KernelKit/UserProcessScheduler.h
@@ -37,6 +37,8 @@ class USER_PROCESS final NE_VETTABLE {
explicit USER_PROCESS();
~USER_PROCESS();
+ auto DoVet() const { return *this; }
+
public:
NE_COPY_DEFAULT(USER_PROCESS)
diff --git a/src/kernel/NeKit/OwnPtr.h b/src/kernel/NeKit/OwnPtr.h
index 30c8f9eb..2c493b1b 100644
--- a/src/kernel/NeKit/OwnPtr.h
+++ b/src/kernel/NeKit/OwnPtr.h
@@ -50,7 +50,7 @@ class OwnPtr final {
Ref<T> AsRef() { return Ref<T>(fCls); }
explicit operator bool() { return fCls; }
- bool operator!() { return !fCls; }
+ bool operator!() { return !fCls; }
private:
T* fCls{nullptr};
diff --git a/src/kernel/NeKit/Pmm.h b/src/kernel/NeKit/Pmm.h
index 8c117a67..7026c583 100644
--- a/src/kernel/NeKit/Pmm.h
+++ b/src/kernel/NeKit/Pmm.h
@@ -7,6 +7,7 @@
#pragma once
+#include <NeKit/Config.h>
#include <NeKit/PageMgr.h>
#include <NeKit/Ref.h>
diff --git a/src/kernel/NeKit/Ref.h b/src/kernel/NeKit/Ref.h
index ff8731e3..da7fe93e 100644
--- a/src/kernel/NeKit/Ref.h
+++ b/src/kernel/NeKit/Ref.h
@@ -45,6 +45,7 @@ class Ref final {
T operator*() { return fClass; }
operator bool() { return Vettable<T>::kValue; }
+ bool operator!() { return !Vettable<T>::kValue; }
private:
T fClass;
diff --git a/src/kernel/NeKit/Vet.h b/src/kernel/NeKit/Vet.h
index d4c1060f..86874085 100644
--- a/src/kernel/NeKit/Vet.h
+++ b/src/kernel/NeKit/Vet.h
@@ -13,13 +13,15 @@
#define NE_VETTABLE : public IVet
namespace Kernel {
+/// @brief Vet interface for objects.
struct IVet {
IVet() = default;
virtual ~IVet() = default;
NE_COPY_DEFAULT(IVet)
- operator bool() = delete;
+ /// @brief Start vetting object for validity.
+ auto DoVet() const { return false; }
};
template <typename T>
@@ -31,4 +33,10 @@ template <>
struct Vettable<IVet> final {
static constexpr bool kValue = true;
};
+
+/// @brief Concept version of Vettable.
+template <typename T, typename Fallback>
+concept IVettable = requires(IVet vettable, Fallback fallback) {
+ { Vettable<T>::kValue ? vettable.DoVet() : fallback(vettable) };
+};
} // namespace Kernel \ No newline at end of file
diff --git a/src/libDDK/DriverKit/c++/driver_base.h b/src/libDDK/DriverKit/c++/driver_base.h
index a0c22216..c130ba8b 100644
--- a/src/libDDK/DriverKit/c++/driver_base.h
+++ b/src/libDDK/DriverKit/c++/driver_base.h
@@ -37,8 +37,8 @@ class IDriverBase {
/// @brief This concept requires the Driver to be IDriverBase compliant.
template <typename T>
-concept IsValidDriver = requires(T a) {
- { a.IsActive() && a.Type() > 0 };
+concept IsValidDriver = requires(T driver_base) {
+ { driver_base.IsActive() && driver_base.Type() > 0 };
};
/// @brief Consteval helper to detect whether a template is truly based on IDriverBase.