feat: initial
This commit is contained in:
commit
92d8a91be4
20 changed files with 1058 additions and 0 deletions
39
kernel/include/memory/pointer.h
Normal file
39
kernel/include/memory/pointer.h
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
#pragma once
|
||||
|
||||
#include "util/number.h"
|
||||
|
||||
constexpr uint64_t high_base = 0xFFFF800000000000;
|
||||
|
||||
#define read_symbol(symbol) [](){uint64_t res; asm volatile("movabsq $" symbol ", %0": "=r"(res)); return res;}()
|
||||
|
||||
struct paddr_t {
|
||||
uint64_t address;
|
||||
|
||||
template<typename T>
|
||||
T* access() {
|
||||
return reinterpret_cast<T*>(address+high_base);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
inline void* operator new(size_t, void* p) {
|
||||
return p;
|
||||
}
|
||||
|
||||
inline void* operator new[](size_t, void* p) {
|
||||
return p;
|
||||
}
|
||||
|
||||
inline void* memcpy(void* dest, const void* src, size_t n) {
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
((uint8_t*) dest)[i] = ((uint8_t*) src)[i];
|
||||
}
|
||||
return dest;
|
||||
}
|
||||
|
||||
inline void* memset(void* dest, int c, size_t n) {
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
((uint8_t*) dest)[i] = (uint8_t) c;
|
||||
}
|
||||
return dest;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue