summaryrefslogtreecommitdiffstats
path: root/arch/x86_64/elf.c
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2024-03-19 13:03:52 -0400
committerJon Santmyer <jon@jonsantmyer.com>2024-03-19 13:03:52 -0400
commitf004c1ade8d617a82cea2fe249434cccb47a2358 (patch)
tree34571e76039cf2ee2fee93c3f1bdb1bc6d2de5f6 /arch/x86_64/elf.c
parentdd5d9e1d48396cbc226ff14fe557a55613c91fcb (diff)
downloadjove-kernel-f004c1ade8d617a82cea2fe249434cccb47a2358.tar.gz
jove-kernel-f004c1ade8d617a82cea2fe249434cccb47a2358.tar.bz2
jove-kernel-f004c1ade8d617a82cea2fe249434cccb47a2358.zip
rename abi to sys. better memory allocation
Diffstat (limited to 'arch/x86_64/elf.c')
-rw-r--r--arch/x86_64/elf.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/x86_64/elf.c b/arch/x86_64/elf.c
index 60b8f13..969cbf0 100644
--- a/arch/x86_64/elf.c
+++ b/arch/x86_64/elf.c
@@ -37,7 +37,15 @@ elf_load(const void *data, size_t len)
struct ELF_phdr *phdr = &phdrs[phdri];
void *pdata = (void*)phdr->p_vaddr;
- mem_ensure_range(phdr->p_vaddr, phdr->p_vaddr + phdr->p_memsz, true, true);
+ mem_ensure_range(
+ phdr->p_vaddr,
+ phdr->p_vaddr + phdr->p_memsz,
+ (page_flags_t) {
+ .present = true,
+ .writeable = true,
+ .useraccess = true,
+ .executable = true
+ });
if(phdr->p_type == PT_LOAD)
{
memcpy(pdata, (void*)((uintptr_t)data + phdr->p_offset), phdr->p_filesz);