diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-01-06 23:39:12 +0200 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-01-07 14:05:06 +0200 |
| commit | 9cc125fb3cfdc2c8ae7153b5ae0fe705980835fb (patch) | |
| tree | a1974f9513458acab0bd8d09758259b24b6d7d8c /arch/riscv64/include/vmem.h | |
| parent | f0eba93472e0afecc57180fc0d638eeef8e6f3c6 (diff) | |
| download | kmi-9cc125fb3cfdc2c8ae7153b5ae0fe705980835fb.tar.gz kmi-9cc125fb3cfdc2c8ae7153b5ae0fe705980835fb.zip | |
Allow building with clang
+ Release mode is sort of broken, as lto doesn't work with linker
relaxation and turning the relaxation off causes issues with the jump
from init to kernel (as I've currently implemented it, could probably
be fixed with a manual jump from assembly, I'll add it to my TODO
list)
Diffstat (limited to 'arch/riscv64/include/vmem.h')
| -rw-r--r-- | arch/riscv64/include/vmem.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/riscv64/include/vmem.h b/arch/riscv64/include/vmem.h new file mode 100644 index 0000000..228b24b --- /dev/null +++ b/arch/riscv64/include/vmem.h @@ -0,0 +1,27 @@ +#ifndef APOS_RISCV_VMAP_H +#define APOS_RISCV_VMAP_H + +#include <apos/types.h> +#include <apos/attrs.h> + +#define VM_V (1 << 0) +#define VM_R (1 << 1) +#define VM_W (1 << 2) +#define VM_X (1 << 3) +#define VM_U (1 << 4) +#define VM_G (1 << 5) +#define VM_A (1 << 6) +#define VM_D (1 << 7) + +enum mm_mode { + Sv48, + Sv39, + Sv32, +}; + +typedef size_t vm_t; +struct __packed vm_branch { + struct vm_branch *leaf[512]; +}; + +#endif /* APOS_RISCV_VMAP_H */ |
