summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAlexey Gavrilov <90127298+rebovas@users.noreply.github.com>2024-03-07 15:21:59 +0700
committerGitHub <noreply@github.com>2024-03-07 15:21:59 +0700
commit301dc22ee57b7c46cb033358170ffad615fef6ab (patch)
tree14b63731085bb7cab100fd332094086014b1750b /include
parent05673a8a51a9f00fa367ec2898ffce493e7ecdc9 (diff)
parent242f9c88c0a31742f2b50e9ad54cec21095480f1 (diff)
Merge pull request #2 from rebovas/mem_operations
Memory operations: copy and set
Diffstat (limited to 'include')
-rw-r--r--include/MemoryOperations.cpp33
-rw-r--r--include/MemoryOperations.h16
2 files changed, 49 insertions, 0 deletions
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 <MemoryOperations.h>
+
+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;
+};
diff --git a/include/MemoryOperations.h b/include/MemoryOperations.h
new file mode 100644
index 0000000..046ca1d
--- /dev/null
+++ b/include/MemoryOperations.h
@@ -0,0 +1,16 @@
+#ifndef MEMORYOPERATIONS_H
+#define MEMORYOPERATIONS_H
+
+#include <types.h>
+
+
+class MemoryOperations
+{
+ public:
+ // Return number of copy bytes
+ static uint32 copy(void *source, void *destination, uint32 sizeBytes);
+ // Return number of set bytes
+ static uint32 set(void *field, uint8 value, uint32 sizeBytes);
+};
+
+#endif