The first stage after GRUB will be Pre-Kernel. This stage will organize the information we receive from the bootloader. (in our case that will be grub) The second stage is for now called early_main. The program will at this point already be running in virtual higher-half / higher-quarter address space. The goal of the second stage is to set up the kernel in such a way that we are ready to jump in to usermode. The third stage is for now called kernel_main. This stage will jump us into usermode and load the startup programs. - Added a GRUB entry for tests - Started writing the pre-kernel stage - Removed knowledge of multiboot from early_main - Edited the linkerscript to link variables in pre-kernel to lower address space. ( from 1MB and up)
		
			
				
	
	
		
			19 lines
		
	
	
		
			434 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			434 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #pragma once 
 | |
| #include <stddef.h>
 | |
| //#include "../../multiboot.h"
 | |
| #include "../memoryinfo.h"
 | |
| 
 | |
| void initialise_available_regions(uint32_t memoryMapAddr, uint32_t memoryMapLastAddr, uint32_t* memoryBitMap, int* used_blocks);
 | |
| 
 | |
| /*
 | |
| void mapMultibootMemoryMap( MemoryInfo* memInfo , multiboot_info_t *mbt);
 | |
| */
 | |
| /**
 | |
|  * @brief Debug Verbose Functions
 | |
|  * 
 | |
|  * @param mmap 
 | |
|  */
 | |
| /*
 | |
| void print_Multiboot_memory_Map(multiboot_memory_map_t* mmap);
 | |
| */
 |