diff --git a/Kernel/include/load_context.h b/Kernel/include/load_context.h index 137b892..9f832eb 100755 --- a/Kernel/include/load_context.h +++ b/Kernel/include/load_context.h @@ -24,6 +24,9 @@ struct S_LOAD_CONTEXT { // Multiboot u8 MultibootUsed : 1; u64 MultibootHeader; + + // Kernel ELF + void *KernelELF; } __attribute__((packed)); typedef struct S_LOAD_CONTEXT T_LOAD_CONTEXT; diff --git a/Kernel/src/Tier0/system.c b/Kernel/src/Tier0/system.c index cd686ca..f83e9f3 100644 --- a/Kernel/src/Tier0/system.c +++ b/Kernel/src/Tier0/system.c @@ -57,7 +57,6 @@ void system_parse_load_context(T_LOAD_CONTEXT *LoadContext) g_SystemInfo.KernelSize = LoadContext->KernelPhysicalEnd - LoadContext->KernelPhysicalStart; g_SystemInfo.KernelVirtualStart = SYSTEM_KERNEL_VIRTUAL; ASSERT(SYSTEM_KERNEL_VIRTUAL == (u64)&_start); - ASSERT((SYSTEM_KERNEL_VIRTUAL + g_SystemInfo.KernelSize) == (u64)&_end); // Bootloader name from Multiboot header if ((Flags >> 9) & 1) diff --git a/Loader/src/context.h b/Loader/src/context.h index a268deb..f144955 100644 --- a/Loader/src/context.h +++ b/Loader/src/context.h @@ -18,6 +18,9 @@ struct S_LOAD_CONTEXT { // Multiboot u8 MultibootUsed : 1; u64 MultibootHeader; + + // Kernel ELF + u64 KernelELF; } __attribute__((packed)); typedef struct S_LOAD_CONTEXT T_LOAD_CONTEXT;