Skip to content

Commit dd54a0f

Browse files
The files required for memory operations have been included.
1 parent 5c164a9 commit dd54a0f

2 files changed

Lines changed: 42 additions & 0 deletions

File tree

SystemLib/Memory/mem.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#include "mem.h"
2+
3+
void* memset(void* dst, uint8_t val, uint32_t size) {
4+
uint8_t* p = (uint8_t*)dst;
5+
6+
for (uint32_t i = 0; i < size; i++) {
7+
p[i] = (uint8_t)val;
8+
}
9+
return dst;
10+
}
11+
12+
void* memcpy(void* dst, const void* src, uint32_t size) {
13+
uint8_t* d = (uint8_t*)dst;
14+
const uint8_t* s = (const uint8_t*)src;
15+
16+
for (uint32_t i = 0; i < size; i++) {
17+
d[i] = s[i];
18+
}
19+
return dst;
20+
}
21+
22+
int memcmp(const void* a, const void* b, uint32_t size) {
23+
const uint8_t* p1 = (const uint8_t*)a;
24+
const uint8_t* p2 = (const uint8_t*)b;
25+
26+
for (uint32_t i = 0; i < size; i++) {
27+
if (p1[i] != p2[i]) {
28+
return p1[i] - p2[i];
29+
}
30+
}
31+
return 0;
32+
}

SystemLib/Memory/mem.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#ifndef MEM_H
2+
#define MEM_H
3+
4+
#include "../Std/types.h"
5+
6+
void* memset(void* dst, uint8_t val, uint32_t size);
7+
void* memcpy(void* dst, const void* src, uint32_t size);
8+
int memcmp(const void* a, const void* b, uint32_t size);
9+
10+
#endif

0 commit comments

Comments
 (0)