diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-19 14:12:52 -0500 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-19 14:12:52 -0500 |
| commit | 0d8d6dd360fd85316673bfbf05db0c7c1d422a52 (patch) | |
| tree | 8745f763ed8466da92bec6f2fc1185394696f73c | |
| parent | 281bef7f35e63a9c5daf37cca5bb8eea64c12693 (diff) | |
feat: libc++: improved new.h header and improved defines.h
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
| -rw-r--r-- | dev/LibC++/defines.h | 10 | ||||
| -rw-r--r-- | dev/LibC++/new.h | 16 |
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 |
