Files
RockOS/kernel/lib/memory.c

47 lines
928 B
C

#include "lib/memory.h"
#include "memory/mm.h"
void memcpy(const void* src, void* dst, size_t sz) {
for (size_t i = 0; i < sz; i++) {
((uint8_t*)dst)[i] = ((uint8_t*)src)[i];
}
}
void memset(const uint8_t* dst, uint8_t val, size_t sz) {
for (size_t i = 0; i < sz; i++) {
((uint8_t*)dst)[i] = val;
}
}
int strcmp(const char* s1, const char* s2) {
while (*s1 && (*s1 == *s2)) {
s1++;
s2++;
}
return *(const uint8_t*)s1 - *(const uint8_t*)s2;
}
int strlen(const char* str) {
int len = 0;
while(*str != 0) {
str++;
len++;
}
return len;
}
static void* kernel_heap = (void*)0xE0000000;
static size_t kernel_heap_sz = 0;
void kheap_init() {
if (kernel_heap_sz == 0) {
void* frame = p_alloc_frame();
map_page((uint32_t)kernel_heap, (uint32_t)frame, PAGE_PRESENT | PAGE_WRITABLE);
}
}
void* alloc(size_t sz) {
}