From 242f9c88c0a31742f2b50e9ad54cec21095480f1 Mon Sep 17 00:00:00 2001 From: Alexey Gavrilov Date: Thu, 7 Mar 2024 12:12:27 +0700 Subject: Memory operations: copy and set --- include/MemoryOperations.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 include/MemoryOperations.cpp (limited to 'include/MemoryOperations.cpp') diff --git a/include/MemoryOperations.cpp b/include/MemoryOperations.cpp new file mode 100644 index 0000000..882a133 --- /dev/null +++ b/include/MemoryOperations.cpp @@ -0,0 +1,33 @@ +#include + +uint32 MemoryOperations::copy(void *source, void *destination, uint32 sizeBytes) +{ + if(source == nullptr || destination == nullptr) return NULL; + + char *src = (char *)source, *dst = (char*)destination; + + uint32 byteNumber = 1; + while(byteNumber <= sizeBytes) + { + dst[byteNumber - 1] = src[byteNumber - 1]; + byteNumber++; + } + + return byteNumber; +}; + +uint32 MemoryOperations::set(void *field, uint8 value, uint32 sizeBytes) +{ + if(field == nullptr) return NULL; + + char *charField = (char*)field; + + uint32 byteNumber = 1; + while(byteNumber <= sizeBytes) + { + charField[byteNumber - 1] = value; + byteNumber++; + } + + return byteNumber; +}; -- cgit v1.2.3