fix several issues relating to elf and registers and add mmap

This commit is contained in:
Matheus
2022-08-18 17:50:34 -03:00
parent fc6d0000c5
commit 0984a6458d
9 changed files with 243 additions and 34 deletions
+2
View File
@@ -60,6 +60,8 @@ typedef struct{
#define PH_TYPE_DYNAMIC 2
#define PH_TYPE_INTERPRETER 3
#define PH_TYPE_NOTE 4
#define PH_TYPE_SHLIB 5
#define PH_TYPE_PHDR 6
typedef struct{
uint32_t type;
+1
View File
@@ -7,5 +7,6 @@ typedef struct {
} syscallret;
syscallret syscall_libc_log(char* str);
syscallret syscall_mmap(void* hint, size_t len, int prot, int flags, int fd, off_t offset);
#endif
+5 -2
View File
@@ -7,8 +7,10 @@
#define KERNEL_SPACE_START 0xFFFF800000000000
#define KERNEL_SPACE_END 0xFFFFFFFFFFFFFFFF
#define USER_SPACE_START 0x1000
#define USER_SPACE_END 0x00007FFFFFFFFFFF
#define USER_SPACE_START 0x0
#define USER_SPACE_END (void*)0x00007FFFFFFFFFFF
#define USER_ALLOC_START (void*)0x1000
#define VMM_TYPE_FREE 0
#define VMM_TYPE_ANON 1
@@ -60,5 +62,6 @@ bool vmm_map(void* paddr, void* vaddr, size_t pagec, size_t mmuflags);
void* vmm_alloc(size_t pagec, size_t mmuflags);
bool vmm_setfree(void* addr, size_t pagec);
bool vmm_allocnowat(void* addr, size_t mmuflags, size_t size);
void* vmm_allocfrom(void* addr, size_t mmuflags, size_t size);
vmm_context* vmm_newcontext();
#endif