summaryrefslogtreecommitdiffhomepage
path: root/Boot/Sources/HEL/AMD64/BootString.cxx
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-05-21 09:10:57 +0200
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-05-21 09:10:57 +0200
commit0c211cca4d7a4d836f4cb685345e44f3f2814fd1 (patch)
treef08901e67cdabe025d8ad40c18c62b27b32c5517 /Boot/Sources/HEL/AMD64/BootString.cxx
parentf022a2afeb7af04ce3ef256ef617d19f07d84d9a (diff)
MHR-23: New CoreSystem calls and refactors.
Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Boot/Sources/HEL/AMD64/BootString.cxx')
-rw-r--r--Boot/Sources/HEL/AMD64/BootString.cxx92
1 files changed, 92 insertions, 0 deletions
diff --git a/Boot/Sources/HEL/AMD64/BootString.cxx b/Boot/Sources/HEL/AMD64/BootString.cxx
new file mode 100644
index 00000000..54ab2c64
--- /dev/null
+++ b/Boot/Sources/HEL/AMD64/BootString.cxx
@@ -0,0 +1,92 @@
+/* -------------------------------------------
+
+ Copyright SoftwareLabs
+
+ File: String.cxx
+ Purpose: NewBoot string library
+
+ Revision History:
+
+
+
+------------------------------------------- */
+
+#include <BootKit/Platform.hxx>
+#include <BootKit/Protocol.hxx>
+#include <BootKit/BootKit.hxx>
+
+/// bugs 0
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+NewOS::SizeT BCopyMem(CharacterTypeUTF16* dest, CharacterTypeUTF16* src, const NewOS::SizeT len)
+{
+ if (!dest || !src)
+ return 0;
+
+ SizeT index = 0UL;
+ for (; index < len; ++index)
+ {
+ dest[index] = src[index];
+ }
+
+ return index;
+}
+
+NewOS::SizeT BStrLen(const CharacterTypeUTF16* ptr)
+{
+ if (!ptr)
+ return 0;
+
+ NewOS::SizeT cnt = 0;
+
+ while (*ptr != (CharacterTypeUTF16)0)
+ {
+ ++ptr;
+ ++cnt;
+ }
+
+ return cnt;
+}
+
+NewOS::SizeT BSetMem(CharacterTypeUTF16* src, const CharacterTypeUTF16 byte, const NewOS::SizeT len)
+{
+ if (!src)
+ return 0;
+
+ NewOS::SizeT cnt = 0UL;
+
+ while (*src != 0)
+ {
+ if (cnt > len)
+ break;
+
+ *src = byte;
+ ++src;
+
+ ++cnt;
+ }
+
+ return cnt;
+}
+
+NewOS::SizeT BSetMem(CharacterTypeUTF8* src, const CharacterTypeUTF8 byte, const NewOS::SizeT len)
+{
+ if (!src)
+ return 0;
+
+ NewOS::SizeT cnt = 0UL;
+
+ while (*src != 0)
+ {
+ if (cnt > len)
+ break;
+
+ *src = byte;
+ ++src;
+
+ ++cnt;
+ }
+
+ return cnt;
+}