aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/include
diff options
context:
space:
mode:
authorMatteo Gmür <matteo.gmuer1@ost.ch>2024-10-01 08:22:40 +0000
committerMatteo Gmür <matteo.gmuer1@ost.ch>2024-10-01 08:22:40 +0000
commite90fcb84fa43773d1e48bd82ce08381c6549a9cb (patch)
treecb21d6f2e53a4857539c6947462969a8fd28534d /arch/x86_64/include
parentb8e58d2f64fbb171b8687b9dd104ddd22fe4fc8e (diff)
downloadteachos-e90fcb84fa43773d1e48bd82ce08381c6549a9cb.tar.xz
teachos-e90fcb84fa43773d1e48bd82ce08381c6549a9cb.zip
Added efl section print method
Diffstat (limited to 'arch/x86_64/include')
-rw-r--r--arch/x86_64/include/arch/boot/multiboot.hpp40
1 files changed, 37 insertions, 3 deletions
diff --git a/arch/x86_64/include/arch/boot/multiboot.hpp b/arch/x86_64/include/arch/boot/multiboot.hpp
index c39081a..dfb289d 100644
--- a/arch/x86_64/include/arch/boot/multiboot.hpp
+++ b/arch/x86_64/include/arch/boot/multiboot.hpp
@@ -11,9 +11,9 @@ struct multiboot_info
uint32_t total_size;
uint32_t reserved;
/*
- * field "tags" is an array of multiboot_tags, however the array is never
- * being accessed by index and using an array definition with size 0 produces a compiler
- * error.
+ * field "tags" is an array of multiboot_tag, however the array is never
+ * being accessed by index we don't know the real size at compile-time,
+ * and using an array definition with size 0 produces a compiler error.
*/
struct multiboot_tag tags;
};
@@ -22,6 +22,11 @@ struct memory_map_entry
{
uint64_t base_addr;
uint64_t length;
+#define MULTIBOOT_MEMORY_AVAILABLE 1
+#define MULTIBOOT_MEMORY_RESERVED 2
+#define MULTIBOOT_MEMORY_ACPI_RECLAIMABLE 3
+#define MULTIBOOT_MEMORY_NVS 4
+#define MULTIBOOT_MEMORY_BADRAM 5
uint32_t type;
uint32_t reserved;
};
@@ -31,9 +36,38 @@ struct memory_map_info
multiboot_tag tag;
uint32_t entry_size;
uint32_t entry_version;
+ /*
+ * field "entries" is an array of memory_map_entry, however the array is never
+ * being accessed by index, we don't know the real size at compile-time,
+ * and using an array definition with size 0 produces a compiler error.
+ */
struct memory_map_entry entries;
};
+struct elf64_section_header
+{
+ uint32_t sh_name;
+ uint32_t sh_type;
+ uint64_t sh_flags;
+ uint64_t sh_addr;
+ uint64_t sh_offset;
+ uint64_t sh_size;
+ uint32_t sh_link;
+ uint32_t sh_info;
+ uint64_t sh_addralign;
+ uint64_t sh_entsize;
+};
+
+struct elf_symbols_section
+{
+ multiboot_tag tag;
+ uint16_t num;
+ uint16_t entsize;
+ uint16_t shndx;
+ uint16_t reserved;
+ struct elf64_section_header sections;
+};
+
/*
* Define all multiboot tag types to ther respective values
* The gnu boot information format is defined here: