summaryrefslogtreecommitdiffhomepage
path: root/Private/NewKit/Defines.hpp
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-26 22:26:48 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-26 22:27:09 +0100
commiteba8b7ddd0a455d9e49f32dcae712c5612c0093c (patch)
tree749a3d34546d055507a920bce4ab10e8a9945719 /Private/NewKit/Defines.hpp
parentdd192787a70a973f2474720aea49af3f6ddabb7a (diff)
Kernel: Major repository refactor.
Rework the repo into Private and Public modules. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Private/NewKit/Defines.hpp')
-rw-r--r--Private/NewKit/Defines.hpp93
1 files changed, 93 insertions, 0 deletions
diff --git a/Private/NewKit/Defines.hpp b/Private/NewKit/Defines.hpp
new file mode 100644
index 00000000..164bdc9e
--- /dev/null
+++ b/Private/NewKit/Defines.hpp
@@ -0,0 +1,93 @@
+/*
+ * ========================================================
+ *
+ * hCore
+ * Copyright 2024 Mahrouss Logic, all rights reserved.
+ *
+ * ========================================================
+ */
+
+#pragma once
+
+#include <NewKit/Macros.hpp>
+
+#define NEWKIT_VERSION "v1.00"
+
+#if !defined(_INC_NO_STDC_HEADERS) && defined(__GNUC__)
+# include <CRT/__cxxkit_defines.h>
+#endif
+
+#ifdef __has_feature
+#if !__has_feature(cxx_nullptr)
+# error You must at least have nullptr featured on your C++ compiler.
+#endif
+#endif
+
+namespace hCore
+{
+ using voidPtr = void*;
+ using VoidPtr = void*;
+ using nullPtr = decltype(nullptr);
+ using NullPtr = decltype(nullptr);
+
+ using Int = int;
+ using Int32 = int;
+ using UShort = unsigned short;
+ using UInt16 = unsigned short;
+ using Short = short;
+ using Int16 = short;
+ using UInt = unsigned int;
+ using UInt32 = unsigned int;
+ using Long = long int;
+ using Int64 = long int;
+ using ULong = unsigned long int;
+ using UInt64 = unsigned long int;
+ using Boolean = bool;
+ using Bool = bool;
+ using Char = char;
+ using UChar = unsigned char;
+ using UInt8 = unsigned char;
+
+ using SSize = Int64;
+ using SSizeT = Int64;
+ using Size = __SIZE_TYPE__;
+ using SizeT = __SIZE_TYPE__;
+ using IntPtr = __INTPTR_TYPE__;
+ using UIntPtr = __UINTPTR_TYPE__;
+ using IntFast = __INT_FAST32_TYPE__;
+ using IntFast64 = __INT_FAST64_TYPE__;
+ using PtrDiff = __PTRDIFF_TYPE__;
+
+ using Utf8Char = char8_t;
+ using Utf16Char = char16_t;
+ using Utf32Char = char32_t;
+
+ using Void = void;
+
+ using Lba = SSizeT;
+
+ enum class Endian : UChar
+ {
+ kLittle,
+ kBig
+ };
+
+ template <typename Args> Args &&forward(Args &arg)
+ {
+ return static_cast<Args &&>(arg);
+ }
+
+ template <typename Args> Args &&move(Args &&arg)
+ {
+ return static_cast<Args &&>(arg);
+ }
+} // namespace hCore
+
+#define DEDUCE_ENDIAN(address, value) \
+ (((reinterpret_cast<hCore::Char*>(address)[0]) == (value)) ? (hCore::Endian::kBig) \
+ : (hCore::Endian::kLittle))
+
+#define Yes (true)
+#define No (false)
+
+#define VoidStar hCore::voidPtr \ No newline at end of file