cca8cab1ae 
								
							 
						 
						
							
							
								
								Allocate a frame as a means of testing  
							
							 
							
							
							
						 
						
							2016-04-14 02:36:39 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								99d29e48ac 
								
							 
						 
						
							
							
								
								Fix stupid page allocator bitmap silliness  
							
							 
							
							
							
						 
						
							2016-04-14 02:36:26 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								58817e7ced 
								
							 
						 
						
							
							
								
								Figure out fill() and isFull()  
							
							 
							
							... 
							
							
							
							Stupid casting. 
							
						 
						
							2016-04-14 02:35:50 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e92718cad0 
								
							 
						 
						
							
							
								
								Dead simple frame allocator  
							
							 
							
							... 
							
							
							
							Looks for the first free page frame in the bitmap and returns it 
							
						 
						
							2016-04-14 01:38:36 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								1e02f3779d 
								
							 
						 
						
							
							
								
								Add number of pages as attribute of FrameAllocator  
							
							 
							
							
							
						 
						
							2016-04-14 01:38:02 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3d0ee684ba 
								
							 
						 
						
							
							
								
								Change pageSize and pageMask to usize from u32  
							
							 
							
							
							
						 
						
							2016-04-14 01:37:28 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9f115c3dea 
								
							 
						 
						
							
							
								
								Add Bitmap::isFull()  
							
							 
							
							
							
						 
						
							2016-04-14 01:36:41 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								eb7997c037 
								
							 
						 
						
							
							
								
								Use startPage, not start, to calculate initial bitmapIndex and bitmapOffset  
							
							 
							
							
							
						 
						
							2016-04-14 00:10:48 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								051dc27006 
								
							 
						 
						
							
							
								
								Remove pageSize from StartupInformation -- it is assumed  
							
							 
							
							
							
						 
						
							2016-04-13 23:41:28 -04:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								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