summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-19 14:16:15 -0500
committerGitHub <noreply@github.com>2025-11-19 14:16:15 -0500
commit3cc0546417ed38c69a5ba0af1d7fd4c47af1401f (patch)
tree8745f763ed8466da92bec6f2fc1185394696f73c
parent281bef7f35e63a9c5daf37cca5bb8eea64c12693 (diff)
parent0d8d6dd360fd85316673bfbf05db0c7c1d422a52 (diff)
Merge pull request #24 from nekernel-org/dev
feat: libc++: improved new.h header and improved defines.h
-rw-r--r--dev/LibC++/defines.h10
-rw-r--r--dev/LibC++/new.h16
2 files changed, 15 insertions, 11 deletions
diff --git a/dev/LibC++/defines.h b/dev/LibC++/defines.h
index f7c08e1..9eebbf1 100644
--- a/dev/LibC++/defines.h
+++ b/dev/LibC++/defines.h
@@ -14,8 +14,6 @@ extern "C" {
#define __ATTRIBUTE(X) __attribute__((X))
-#ifndef __GNUC__
-
typedef __SIZE_TYPE__ size_t;
typedef __SSIZE_TYPE__ ssize_t;
@@ -32,11 +30,7 @@ typedef char* caddr_t;
#define NULL ((voidptr_t) 0)
#endif // !null
-#ifdef __GNUC__
-#include <LibC++/alloca.h>
-#elif defined(__NECTI__)
-#define __alloca(sz) __lc_alloca(sz)
-#endif
+#define __alloca(sz) __ck_alloca(sz)
#define __deref(ptr) (*(ptr))
@@ -83,6 +77,4 @@ typedef union double_cast {
double f;
} __ATTRIBUTE(packed) double_cast_t;
-#endif // ifndef __GNUC__
-
#endif /* __NECTI_DEFINES_H__ */
diff --git a/dev/LibC++/new.h b/dev/LibC++/new.h
index 2802c53..8b09328 100644
--- a/dev/LibC++/new.h
+++ b/dev/LibC++/new.h
@@ -9,9 +9,21 @@
#include <LibC++/defines.h>
+struct __placement_new_info;
+
void* operator new(size_t);
void* operator new[](size_t);
void operator delete(void*) noexcept;
-void operator delete(void*, unsigned long);
-void operator delete[](void*) noexcept; \ No newline at end of file
+void operator delete(void*, unsigned long) noexcept;
+
+void operator delete[](void*) noexcept;
+
+/// =========================================================
+/// @brief Placement new information structure
+/// =========================================================
+struct __placement_new_info {
+ void* __base;
+ int __align;
+ long long __size;
+}; \ No newline at end of file