summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMaite Gamper <victor@wenzeslaus.de>2022-11-03 18:24:58 +0100
committerMaite Gamper <victor@wenzeslaus.de>2022-11-03 18:24:58 +0100
commit635534606315fd43b13fca0a580cdd585a32014d (patch)
tree066da3b1cd087577c2136c92a0dd6effc7f35530 /include
parent3d961efd0ec63ac623712787ed33f0f11aa828ad (diff)
downloadsmallUnix-635534606315fd43b13fca0a580cdd585a32014d.tar.gz
smallUnix-635534606315fd43b13fca0a580cdd585a32014d.zip
Added an elf loader
Diffstat (limited to 'include')
-rw-r--r--include/elf.h14
-rw-r--r--include/task.h5
-rw-r--r--include/utils.h14
3 files changed, 30 insertions, 3 deletions
diff --git a/include/elf.h b/include/elf.h
index 76d4c23..e1d65e1 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -14,8 +14,16 @@ struct elf_header {
unsigned long magic;
unsigned char bits, endianess, elf_header_version, abi_version;
unsigned long long unused;
- unsigned short short type, opcode_set;
- unsigned long elf_version, entry_posititon;
-};
+ unsigned short type, opcode_set;
+ unsigned long elf_version, entry_posititon, program_header_tbl_offset, section_header_tbl_offset;
+ unsigned long flags;
+ unsigned short header_size, program_header_entry_size, program_header_entry_count, section_header_size, section_header_count, section_header_name_index;
+
+} __attribute__((packed));
+
+struct elf_program_header_entry {
+ unsigned long type, p_offset, vaddr, reserved, filesize, memsize, flags, alignment;
+
+} __attribute__((packed));
#endif /* INCLUDE_ELF_H_ */
diff --git a/include/task.h b/include/task.h
index 1534f63..f6e9a65 100644
--- a/include/task.h
+++ b/include/task.h
@@ -16,6 +16,11 @@ struct task_t {
struct cpu_state *state;
void **pagelist;
long pagelistCounter;
+ int parent_pid;
+ int forkspace_pid; /** Forkspace describes a process that was fork()ed but has the same
+ base code stuff (i.e. exec() or simmelar was not run yet)
+ we have to copy the new pages over in order to make fork() work. Now this is probably
+ resource intensive */
struct task_t *next;
};
diff --git a/include/utils.h b/include/utils.h
new file mode 100644
index 0000000..296a3fa
--- /dev/null
+++ b/include/utils.h
@@ -0,0 +1,14 @@
+/*
+ * utils.h
+ *
+ * Created on: 01.11.2022
+ * Author: maite
+ */
+
+#ifndef INCLUDE_UTILS_H_
+#define INCLUDE_UTILS_H_
+
+extern void kmemcpy(void *dest, void *src, int n);
+extern void kmemset(void *dest, unsigned char val, int n);
+
+#endif /* INCLUDE_UTILS_H_ */