109ea7ce2e 
								
							 
						 
						
							
							
								
								Allocate space for a frame bitmap  
							
							 
							
							... 
							
							
							
							Basically there, but still some kinks to work out... 
							
						 
						
							2016-04-13 00:24:33 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								764297de59 
								
							 
						 
						
							
							
								
								A Bitmap class, basically a wrapper for bit shifting and masking  
							
							 
							
							
							
						 
						
							2016-04-13 00:22:58 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								57aaad7d22 
								
							 
						 
						
							
							
								
								Move memory map dump to MemoryManager::initialize  
							
							 
							
							
							
						 
						
							2016-04-13 00:21:57 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								93b11307fa 
								
							 
						 
						
							
							
								
								Add memory::pageAlignUp/Down functions  
							
							 
							
							
							
						 
						
							2016-04-13 00:21:28 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9ce71e5596 
								
							 
						 
						
							
							
								
								Add memorySize() method to StartupInformation  
							
							 
							
							
							
						 
						
							2016-04-09 15:23:01 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								4ad6ce98fc 
								
							 
						 
						
							
							
								
								Define pageSize = 4096  
							
							 
							
							
							
						 
						
							2016-04-09 15:22:25 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9f911e2197 
								
							 
						 
						
							
							
								
								Initialize the frame allocator  
							
							 
							
							... 
							
							
							
							Does not actually do anything yet... 
							
						 
						
							2016-04-09 13:51:47 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d8306cf995 
								
							 
						 
						
							
							
								
								Wrap PrintFormat in once block  
							
							 
							
							
							
						 
						
							2016-04-09 13:45:20 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								31cba1bdc8 
								
							 
						 
						
							
							
								
								Use my own int types for Multiboot  
							
							 
							
							
							
						 
						
							2016-04-09 13:33:20 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								95b524a94d 
								
							 
						 
						
							
							
								
								Use kernelSize() from StartupInformation instead of calculating kernel size directly  
							
							 
							
							
							
						 
						
							2016-04-09 13:30:45 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ef15019757 
								
							 
						 
						
							
							
								
								Move StartupInformation struct to its own file  
							
							 
							
							
							
						 
						
							2016-04-09 13:30:18 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								35997c61b6 
								
							 
						 
						
							
							
								
								Barebones for a FrameAllocator class  
							
							 
							
							
							
						 
						
							2016-04-03 20:02:34 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								75af75af4e 
								
							 
						 
						
							
							
								
								Fix up the build -- all the build errors  
							
							 
							
							
							
						 
						
							2016-03-29 12:07:10 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8411502db5 
								
							 
						 
						
							
							
								
								Fix up the build -- build PrintFormat from kstd  
							
							 
							
							
							
						 
						
							2016-03-29 12:04:40 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								014a18add0 
								
							 
						 
						
							
							
								
								Use printFormat from kstd instead of from Console  
							
							 
							
							
							
						 
						
							2016-03-29 12:00:49 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								31c13bcba2 
								
							 
						 
						
							
							
								
								Pass system kernel's console to the internal print() function  
							
							 
							
							
							
						 
						
							2016-03-29 11:56:06 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f8778d739c 
								
							 
						 
						
							
							
								
								Print address of multiboot information struct  
							
							 
							
							
							
						 
						
							2016-03-29 11:53:40 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7e266a2837 
								
							 
						 
						
							
							
								
								Move printFormat() to kstd  
							
							 
							
							
							
						 
						
							2016-03-29 11:53:16 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								27fd989245 
								
							 
						 
						
							
							
								
								Print kernel image size on a single line  
							
							 
							
							
							
						 
						
							2016-03-26 19:40:44 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								77ab0175da 
								
							 
						 
						
							
							
								
								Move Memory to memory/  
							
							 
							
							
							
						 
						
							2016-03-26 19:40:31 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9cb2debd3a 
								
							 
						 
						
							
							
								
								Property format the panic message  
							
							 
							
							
							
						 
						
							2016-03-25 02:15:17 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								354e15012e 
								
							 
						 
						
							
							
								
								Add a va_list printFormat  
							
							 
							
							
							
						 
						
							2016-03-25 02:09:49 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9680a2a9c5 
								
							 
						 
						
							
							
								
								Add the multiboot magic value to the startup info struct.  
							
							 
							
							
							
						 
						
							2016-03-25 01:39:07 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e05ac6bd85 
								
							 
						 
						
							
							
								
								Remove static multiboot information pointer  
							
							 
							
							
							
						 
						
							2016-03-25 01:37:26 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								73143f4e00 
								
							 
						 
						
							
							
								
								Get rid of the systemGDT()  
							
							 
							
							
							
						 
						
							2016-03-25 01:29:02 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6c91528fb2 
								
							 
						 
						
							
							
								
								Doc comments  
							
							 
							
							
							
						 
						
							2016-03-25 01:25:21 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								bcfba2c167 
								
							 
						 
						
							
							
								
								Move a bunch of init code to Kernel::initialize()  
							
							 
							
							... 
							
							
							
							- Kernel owns a MemoryManager, which is responsible for initializing the GDT.
- Kernel is passed a new StartupInformation struct (borrowed this one from
  Ghost) which contains a bunch of handy tidbits for setting things up.
- Cleaned out even more stuff from kmain() 
							
						 
						
							2016-03-25 01:21:49 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b9ece9bbcb 
								
							 
						 
						
							
							
								
								Add MemoryManager class  
							
							 
							
							... 
							
							
							
							This will be the top-level class for the memory manager subsystem.
Copy in some code from kmain() 
							
						 
						
							2016-03-25 01:21:37 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ddb4c30c62 
								
							 
						 
						
							
							
								
								Calculate size of the kernel based on symbols defined in the linker script  
							
							 
							
							... 
							
							
							
							Neat trick! 
							
						 
						
							2016-03-25 00:39:11 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								4daee62439 
								
							 
						 
						
							
							
								
								Remove console logging from interrupts and descriptors  
							
							 
							
							... 
							
							
							
							They will be back... 
							
						 
						
							2016-03-25 00:38:52 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c18af4d222 
								
							 
						 
						
							
							
								
								Use panic() for exceptions and interrupts  
							
							 
							
							
							
						 
						
							2016-03-23 01:57:25 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6aa4453f77 
								
							 
						 
						
							
							
								
								Allow clients to get the console from the kernel object  
							
							 
							
							
							
						 
						
							2016-03-23 01:42:52 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3ad5e67e66 
								
							 
						 
						
							
							
								
								Partial implementation of memory functions in kstd  
							
							 
							
							
							
						 
						
							2016-03-23 01:42:33 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								4919b802b9 
								
							 
						 
						
							
							
								
								Remove kearly() -- unnecessary  
							
							 
							
							
							
						 
						
							2016-03-23 01:02:15 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d191858a7e 
								
							 
						 
						
							
							
								
								Pass multiboot magic to kmain()  
							
							 
							
							
							
						 
						
							2016-03-23 01:01:30 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								522e788ebd 
								
							 
						 
						
							
							
								
								Give Kernel a console object  
							
							 
							
							
							
						 
						
							2016-03-23 00:56:00 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7f72106639 
								
							 
						 
						
							
							
								
								Return a reference to Kernel from systemKernel()  
							
							 
							
							
							
						 
						
							2016-03-23 00:55:42 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								abfcfd24cd 
								
							 
						 
						
							
							
								
								Add Kernel object  
							
							 
							
							... 
							
							
							
							- Implement halt()
- Call the system kernel halt() method at the end of kmain() 
							
						 
						
							2016-03-23 00:33:45 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9bf27a3115 
								
							 
						 
						
							
							
								
								Capitalize printFormat for %X  
							
							 
							
							
							
						 
						
							2016-03-20 17:14:33 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								17102e7e46 
								
							 
						 
						
							
							
								
								Convert Console::printFormat to use kstd format functions  
							
							 
							
							
							
						 
						
							2016-03-20 17:07:59 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2334d80225 
								
							 
						 
						
							
							
								
								Fixed the print functions. Yay!  
							
							 
							
							
							
						 
						
							2016-03-20 17:07:33 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c2a0d01995 
								
							 
						 
						
							
							
								
								Append libgcc to kernel build  
							
							 
							
							
							
						 
						
							2016-03-20 13:57:54 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b242a48282 
								
							 
						 
						
							
							
								
								Remove reference to console in Multiboot  
							
							 
							
							
							
						 
						
							2016-03-20 12:56:57 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6898153366 
								
							 
						 
						
							
							
								
								Use custom type names in Main.cc  
							
							 
							
							
							
						 
						
							2016-03-20 12:56:43 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b3d47319a9 
								
							 
						 
						
							
							
								
								Update Console::printFormat to new style  
							
							 
							
							
							
						 
						
							2016-03-20 12:56:28 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d2d7fac4df 
								
							 
						 
						
							
							
								
								Lots of CString clean up; attempt  #1  at implementing int to string conversion  
							
							 
							
							... 
							
							
							
							Long (64-bit) ints are hard to do on 32-bit... 
							
						 
						
							2016-03-20 12:56:07 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d8b05620cc 
								
							 
						 
						
							
							
								
								Print the memory map  
							
							 
							
							
							
						 
						
							2016-03-20 03:38:52 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								addf61ee7a 
								
							 
						 
						
							
							
								
								Add typedefs for standard types  
							
							 
							
							... 
							
							
							
							Rust style integer type names. So much easier to write out... 
							
						 
						
							2016-03-20 03:38:12 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								603e76078d 
								
							 
						 
						
							
							
								
								Set up %ebp for the temporary stack too  
							
							 
							
							
							
						 
						
							2016-03-20 03:37:45 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9c5460c1f5 
								
							 
						 
						
							
							
								
								Clean up Multiboot a bit  
							
							 
							
							... 
							
							
							
							Thanks to Aimee for helping out with figuring out the iterator. 
							
						 
						
							2016-03-20 03:37:20 -04:00