diff options
| author | Alexey Gavrilov <90127298+rebovas@users.noreply.github.com> | 2024-03-07 15:21:59 +0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-07 15:21:59 +0700 |
| commit | 301dc22ee57b7c46cb033358170ffad615fef6ab (patch) | |
| tree | 14b63731085bb7cab100fd332094086014b1750b /include | |
| parent | 05673a8a51a9f00fa367ec2898ffce493e7ecdc9 (diff) | |
| parent | 242f9c88c0a31742f2b50e9ad54cec21095480f1 (diff) | |
Merge pull request #2 from rebovas/mem_operations
Memory operations: copy and set
Diffstat (limited to 'include')
| -rw-r--r-- | include/MemoryOperations.cpp | 33 | ||||
| -rw-r--r-- | include/MemoryOperations.h | 16 |
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 |
