summaryrefslogtreecommitdiffhomepage
path: root/Private/Source
diff options
context:
space:
mode:
authorAmlal <amlalelmahrouss@icloud.com>2024-04-26 12:29:13 +0000
committerAmlal <amlalelmahrouss@icloud.com>2024-04-26 12:29:13 +0000
commit97eb8462433a831f8a02a08acfc7ca32e794d37d (patch)
treee7cddb857e50a2cca41a5364b4240cd8c6c0ec13 /Private/Source
parentf7a7080d18ac2be758b242c22f020c018b1c4824 (diff)
parent313c303fab092b1c45e615f960826375e7eef093 (diff)
Merged in MHR-16 (pull request #6)
MHR-16 - A lot of features and USA design.
Diffstat (limited to 'Private/Source')
-rw-r--r--Private/Source/ProcessScheduler.cxx11
-rw-r--r--Private/Source/Utils.cxx9
2 files changed, 15 insertions, 5 deletions
diff --git a/Private/Source/ProcessScheduler.cxx b/Private/Source/ProcessScheduler.cxx
index 6d766d27..69236c18 100644
--- a/Private/Source/ProcessScheduler.cxx
+++ b/Private/Source/ProcessScheduler.cxx
@@ -25,8 +25,10 @@ namespace NewOS {
/// Exit Code stuff
/***********************************************************************************/
-static Int32 kExitCode = 0;
+STATIC Int32 kExitCode = 0U;
+/// @brief Gets the latest exit code.
+/// @note Not thread-safe.
const Int32 &rt_get_exit_code() noexcept { return kExitCode; }
/***********************************************************************************/
@@ -65,8 +67,8 @@ VoidPtr ProcessHeader::New(const SizeT &sz) {
/* @brief checks if runtime pointer is in region. */
bool rt_in_pool_region(VoidPtr pool_ptr, VoidPtr pool, const SizeT &sz) {
- Char *_pool_ptr = (Char *)pool_ptr;
- Char *_pool = (Char *)pool;
+ UIntPtr *_pool_ptr = (UIntPtr *)pool_ptr;
+ UIntPtr *_pool = (UIntPtr *)pool;
for (SizeT index = sz; _pool[sz] != kUserHeapMag; --index) {
if (&_pool[index] > &_pool_ptr[sz]) continue;
@@ -97,10 +99,13 @@ Boolean ProcessHeader::Delete(VoidPtr ptr, const SizeT &sz) {
return false;
}
+/// @brief process name getter.
const Char *ProcessHeader::GetName() { return this->Name; }
+/// @brief process selector getter.
const ProcessSelector &ProcessHeader::GetSelector() { return this->Selector; }
+/// @brief process status getter.
const ProcessStatus &ProcessHeader::GetStatus() { return this->Status; }
/***********************************************************************************/
diff --git a/Private/Source/Utils.cxx b/Private/Source/Utils.cxx
index e12041c8..fcdddc4a 100644
--- a/Private/Source/Utils.cxx
+++ b/Private/Source/Utils.cxx
@@ -169,10 +169,15 @@ char *rt_string_frofchar(char *str, const char chr) {
}
} // namespace NewOS
-extern "C" void memset(void *dst, char src, size_t len) {
+EXTERN_C void memset(void *dst, char src, size_t len) {
NewOS::rt_set_memory(dst, src, len);
}
-extern "C" void memcpy(void *dst, void *src, size_t len) {
+EXTERN_C void memcpy(void *dst, void *src, size_t len) {
NewOS::rt_copy_memory(src, dst, len);
}
+
+/// @brief strlen definition in C++.
+EXTERN_C size_t strlen(const char *whatToCheck) {
+ return NewOS::rt_string_len(whatToCheck);
+}