summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/NewKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-02 08:14:36 +0200
committerGitHub <noreply@github.com>2025-04-02 08:14:36 +0200
commit5129ac16ddd5fb8362eb2fbd123e28d2b3e4c90f (patch)
tree2fde230004e377f734983484f8e12fb0414a1668 /dev/kernel/NewKit
parent25dd194903b3ccfe4461fe189a04d902da93ac8f (diff)
parent6c7e5ebc003a0bc4f98c23a8f9754b273a6e3a28 (diff)
Merge pull request #7 from amlel-el-mahrouss/dev
boot/net: rename Boot.S files, clarify EEPROM implication, and prep UDP read
Diffstat (limited to 'dev/kernel/NewKit')
-rw-r--r--dev/kernel/NewKit/Json.h30
-rw-r--r--dev/kernel/NewKit/Macros.h8
-rw-r--r--dev/kernel/NewKit/OwnPtr.h5
3 files changed, 29 insertions, 14 deletions
diff --git a/dev/kernel/NewKit/Json.h b/dev/kernel/NewKit/Json.h
index d159d915..5f979ceb 100644
--- a/dev/kernel/NewKit/Json.h
+++ b/dev/kernel/NewKit/Json.h
@@ -7,7 +7,7 @@
#pragma once
-// last-rev: 30/01/24
+// last-rev: 02/04/25
#include <CompilerKit/CompilerKit.h>
#include <NewKit/Defines.h>
@@ -15,9 +15,10 @@
#include <NewKit/KString.h>
#include <NewKit/Utils.h>
-#define kMaxJsonPath 8196
-#define kJSONLen 256
-#define kJSONNull "[]"
+#define kJSONMaxLen (8196)
+#define kJSONLen (256)
+#define kJSONNullArr "[]"
+#define kJSONNullObj "{}"
namespace Kernel
{
@@ -27,9 +28,9 @@ namespace Kernel
public:
explicit Json()
{
- auto len = kJSONLen;
+ auto len = kJSONMaxLen;
KString key = KString(len);
- key += kJSONNull;
+ key += kJSONNullObj;
this->AsKey() = key;
this->AsValue() = key;
@@ -97,7 +98,7 @@ namespace Kernel
SizeT key_len = 0;
SizeT value_len = 0;
- Json type(kMaxJsonPath, kMaxJsonPath);
+ Json type(kJSONMaxLen, kJSONMaxLen);
for (SizeT i = 1; i < len; ++i)
{
@@ -116,6 +117,12 @@ namespace Kernel
}
else
{
+ if (full_array[i] == '\'')
+ {
+ type.AsValue().Data()[value_len] = 0;
+ break;
+ }
+
type.AsValue().Data()[value_len] = full_array[i];
++value_len;
@@ -128,9 +135,16 @@ namespace Kernel
if (full_array[i] == ':')
{
- probe_value = true;
type.AsKey().Data()[key_len] = 0;
++key_len;
+
+ ++i;
+
+ while (full_array[i] == ' ' ||
+ full_array[i] == '\t')
+ ++i;
+
+ probe_value = true;
}
else
{
diff --git a/dev/kernel/NewKit/Macros.h b/dev/kernel/NewKit/Macros.h
index 264d74d7..eda454f9 100644
--- a/dev/kernel/NewKit/Macros.h
+++ b/dev/kernel/NewKit/Macros.h
@@ -147,8 +147,8 @@
#define BOOL Kernel::Boolean
-#ifdef RTL_INIT_OBJECT
-#undef RTL_INIT_OBJECT
-#endif // ifdef RTL_INIT_OBJECT
+#ifdef rtl_init_object
+#undef rtl_init_object
+#endif // ifdef rtl_init_object
-#define RTL_INIT_OBJECT(OBJ, TYPE, ...) TYPE OBJ = TYPE(__VA_ARGS__)
+#define rtl_init_object(OBJ, TYPE, ...) TYPE OBJ = TYPE(__VA_ARGS__)
diff --git a/dev/kernel/NewKit/OwnPtr.h b/dev/kernel/NewKit/OwnPtr.h
index b292aafc..f15bc339 100644
--- a/dev/kernel/NewKit/OwnPtr.h
+++ b/dev/kernel/NewKit/OwnPtr.h
@@ -58,7 +58,8 @@ namespace Kernel
T* operator->() const
{
return fCls;
- };
+ }
+
T* Raw()
{
return fCls;
@@ -83,7 +84,7 @@ namespace Kernel
};
template <typename T, typename... Args>
- OwnPtr<T> make_ptr(Args... args)
+ inline OwnPtr<T> mm_make_own_ptr(Args... args)
{
OwnPtr<T> ret;
ret.template New<Args...>(forward(args)...);