summaryrefslogtreecommitdiffhomepage
path: root/Private/Source
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-05-06 07:55:10 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-05-06 07:56:54 +0200
commite723038ba97bb84726f16ce5a6258d78262d90d7 (patch)
treece9d0d7d0ef1d886bdc025fef5a50a38eded8132 /Private/Source
parentf95d8bf159d10b5a9521dcaa0bc37aa0e9dfc02b (diff)
MHR-23: See below.
This commit adds 1 function a macro and 2 functions. - __throw_domain_error, which just throws an interrupt. - allocate, which allocates a class. - release, which releases a class. - __STD_CXX__ to tell if we use standard C++. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Private/Source')
-rw-r--r--Private/Source/Utils.cxx25
1 files changed, 25 insertions, 0 deletions
diff --git a/Private/Source/Utils.cxx b/Private/Source/Utils.cxx
index 868705bc..b0b3be8d 100644
--- a/Private/Source/Utils.cxx
+++ b/Private/Source/Utils.cxx
@@ -211,18 +211,43 @@ namespace NewOS
}
} // namespace NewOS
+////////////////////////////////////////////////////////////////////////////////////////
+/// Exported C functions
+////////////////////////////////////////////////////////////////////////////////////////
+
+/// @brief memset in C++
EXTERN_C void memset(void* dst, char src, size_t len)
{
NewOS::rt_set_memory(dst, src, len);
}
+/// @brief memcpy in C++
EXTERN_C void memcpy(void* dst, void* src, size_t len)
{
NewOS::rt_copy_memory(src, dst, len);
}
+/// @brief memmove in C++
+EXTERN_C void* memmove(void* dst, void* src, size_t len)
+{
+ NewOS::rt_copy_memory(src, dst, len);
+ return dst;
+}
+
/// @brief strlen definition in C++.
EXTERN_C size_t strlen(const char* whatToCheck)
{
return NewOS::rt_string_len(whatToCheck);
}
+
+/// @brief memcmp in C++
+EXTERN_C NewOS::SizeT memcmp(void* dst, void* src, size_t len)
+{
+ return NewOS::rt_string_cmp((char*)src, (char*)dst, len);
+}
+
+/// @brief strcmp in C++
+EXTERN_C NewOS::SizeT strcmp(char* dst, char* src, size_t len)
+{
+ return NewOS::rt_string_cmp(src, dst, len);
+}