diff options
Diffstat (limited to 'dev/kernel/src')
| -rw-r--r-- | dev/kernel/src/AsciiUtils.cc | 16 | ||||
| -rw-r--r-- | dev/kernel/src/Network/IPAddr.cc | 10 | ||||
| -rw-r--r-- | dev/kernel/src/UserProcessScheduler.cc | 3 |
3 files changed, 12 insertions, 17 deletions
diff --git a/dev/kernel/src/AsciiUtils.cc b/dev/kernel/src/AsciiUtils.cc index bfc56aec..e0162f70 100644 --- a/dev/kernel/src/AsciiUtils.cc +++ b/dev/kernel/src/AsciiUtils.cc @@ -156,26 +156,18 @@ Char* rt_string_has_char(Char* str, Char ch) { return (*str == ch) ? str : nullptr; } -Int32 rt_strcmp(const Char* a, const Char* b) { - Size i = 0; - while (a[i] != '\0' && b[i] != '\0' && a[i] == b[i]) { - ++i; - } - return static_cast<Int32>(static_cast<UInt8>(a[i]) - static_cast<UInt8>(b[i])); -} - // @uses the deprecated version callers should ensure 'len' is valid. -extern "C" void* memset(void* dst, int c, long long unsigned int len) { +EXTERN_C void* memset(void* dst, int c, long long unsigned int len) { return Kernel::rt_set_memory(dst, c, static_cast<Size>(len)); } -extern "C" void* memcpy(void* dst, const void* src, long long unsigned int len) { +EXTERN_C void* memcpy(void* dst, const void* src, long long unsigned int len) { Kernel::rt_copy_memory(const_cast<void*>(src), dst, static_cast<Size>(len)); return dst; } -extern "C" Kernel::Int32 strcmp(const char* a, const char* b) { - return Kernel::rt_strcmp(a, b); +EXTERN_C Kernel::Int32 strcmp(const char* a, const char* b) { + return Kernel::rt_string_cmp(a, b, rt_string_len(a)); } } // namespace Kernel diff --git a/dev/kernel/src/Network/IPAddr.cc b/dev/kernel/src/Network/IPAddr.cc index b341af8f..0a030dc8 100644 --- a/dev/kernel/src/Network/IPAddr.cc +++ b/dev/kernel/src/Network/IPAddr.cc @@ -89,18 +89,22 @@ bool IPFactory::IpCheckVersion4(const Char* ip) { if (!ip) return NO; Int32 cnter = 0; + Int32 dot_cnter = 0; for (SizeT base = 0; base < rt_string_len(ip); ++base) { if (ip[base] == '.') { cnter = 0; + ++dot_cnter; } else { - if (!rt_is_alnum(ip[base])) return false; - if (cnter == 3) return false; + if (!rt_is_alnum(ip[base])) return NO; + if (cnter == 3) return NO; ++cnter; } } - return true; + if (dot_cnter != 3) return NO; + + return YES; } } // namespace Kernel diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc index eff53745..d6c91428 100644 --- a/dev/kernel/src/UserProcessScheduler.cc +++ b/dev/kernel/src/UserProcessScheduler.cc @@ -314,7 +314,7 @@ Void USER_PROCESS::Exit(const Int32& exit_code) { } /***********************************************************************************/ -/// @brief Add dylib to process. +/// @brief Add dylib to the process object. /***********************************************************************************/ Bool USER_PROCESS::SpawnDylib() { @@ -340,7 +340,6 @@ Bool USER_PROCESS::SpawnDylib() { (Void)(kout << "Unknown process kind: " << hex_number(this->Kind) << kendl); this->Crash(); - return NO; return NO; } |
