diff options
Diffstat (limited to 'src/kernel/linker')
-rw-r--r-- | src/kernel/linker/elf.cpp (renamed from src/kernel/linker/elf.c) | 16 | ||||
-rw-r--r-- | src/kernel/linker/elf.h | 6 |
2 files changed, 11 insertions, 11 deletions
diff --git a/src/kernel/linker/elf.c b/src/kernel/linker/elf.cpp index af6d057..ab8e349 100644 --- a/src/kernel/linker/elf.c +++ b/src/kernel/linker/elf.cpp @@ -5,23 +5,23 @@ #include <core/sys.h> int elf_check(uint8_t *data) { - struct elf_ehdr *h = (struct elf_ehdr*)data; + elf_ehdr *h = (elf_ehdr*)data; if (h->e_ident[0] == 0x7F && h->e_ident[1] == 'E' && h->e_ident[2] == 'L' && h->e_ident[3] == 'F') return 0; return 1; } -thread_entry elf_load(uint8_t *data, struct process* process) { - struct elf_ehdr *ehdr = (struct elf_ehdr*)data; - struct elf_phdr *phdr; +thread_entry elf_load(uint8_t *data, process* process) { + elf_ehdr *ehdr = (elf_ehdr*)data; + elf_phdr *phdr; int i; size_t dataseg = 0; if (elf_check(data)) return 0; - struct page_directory *r = current_pagedir; + page_directory *r = current_pagedir; cli(); pagedir_switch(process->pagedir); - phdr = (struct elf_phdr*)((uint8_t*)(data + ehdr->e_phoff)); + phdr = (elf_phdr*)((uint8_t*)(data + ehdr->e_phoff)); for (i = 0; i < ehdr->e_phnum; i++) { if (phdr[i].p_type == PT_LOAD) { seg_map(simpleseg_make(phdr[i].p_vaddr, phdr[i].p_memsz, (phdr[i].p_flags & PF_W) != 0), process->pagedir, 0); @@ -44,10 +44,10 @@ thread_entry elf_load(uint8_t *data, struct process* process) { return (thread_entry)ehdr->e_entry; } -struct process* elf_exec(uint8_t *data, int privilege) { +process* elf_exec(uint8_t *data, int privilege) { if (elf_check(data)) return 0; - struct process* p = process_new(0, 0, privilege); + process* p = process_new(0, 0, privilege); thread_entry e = elf_load(data, p); diff --git a/src/kernel/linker/elf.h b/src/kernel/linker/elf.h index c32cce0..bb61795 100644 --- a/src/kernel/linker/elf.h +++ b/src/kernel/linker/elf.h @@ -52,12 +52,12 @@ struct elf_phdr { }; struct phdr { - struct elf_phdr h; + elf_phdr h; uint8_t* data; }; int elf_check(uint8_t *data); //0 if ok, 1 if not a valid ELF -thread_entry elf_load(uint8_t *data, struct process* process); //Load an ELF to a process, return entry point -struct process* elf_exec(uint8_t *data, int privilege); //Creates a new process and a thread for running ELF file +thread_entry elf_load(uint8_t *data, process* process); //Load an ELF to a process, return entry point +process* elf_exec(uint8_t *data, int privilege); //Creates a new process and a thread for running ELF file #endif |