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 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2b39ac909e 
								
							 
						 
						
							
							
								
								Implement kstd::CString::copy()  
							
							... 
							
							
							
							Clean up the rest of the CString stuff 
							
						 
						
							2016-03-20 03:34:37 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								a22cec7930 
								
							 
						 
						
							
							
								
								Print memory map information  
							
							
							
						 
						
							2016-03-20 00:43:26 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								84b0ab7613 
								
							 
						 
						
							
							
								
								Format tweaking...  
							
							
							
						 
						
							2016-03-20 00:42:44 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								4d7187e33e 
								
							 
						 
						
							
							
								
								Comment formatting  
							
							
							
						 
						
							2016-03-19 20:21:40 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ec74cb650c 
								
							 
						 
						
							
							
								
								Attempt to write an iterator for the multiboot memory map list  
							
							
							
						 
						
							2016-03-19 12:01:01 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								fad5a48e5b 
								
							 
						 
						
							
							
								
								Add compiler Attributes header file  
							
							
							
						 
						
							2016-03-19 04:05:23 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3afb47e573 
								
							 
						 
						
							
							
								
								Build Multiboot.cc  
							
							
							
						 
						
							2016-03-19 04:05:09 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3a40e246c2 
								
							 
						 
						
							
							
								
								Fix keyboard interrupt printing  
							
							
							
						 
						
							2016-03-19 04:04:59 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								100da19d28 
								
							 
						 
						
							
							
								
								Add Multiboot information struct and pass it in to kmain()  
							
							... 
							
							
							
							Print memory availability 
							
						 
						
							2016-03-19 03:45:23 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								98ad3282c1 
								
							 
						 
						
							
							
								
								Stubs from memory utilities  
							
							
							
						 
						
							2016-03-16 12:10:13 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7a15e00cc2 
								
							 
						 
						
							
							
								
								Add some system exception handlers and clean up assemply a bit  
							
							
							
						 
						
							2016-03-13 19:33:10 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								0948c0cc46 
								
							 
						 
						
							
							
								
								Use NonSpecificEOI instead of NOPEOI  
							
							
							
						 
						
							2016-03-13 19:19:39 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								10d006eb90 
								
							 
						 
						
							
							
								
								Move exception dispatch to InterruptHandler  
							
							
							
						 
						
							2016-03-13 19:18:55 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3e1993084d 
								
							 
						 
						
							
							
								
								Read the scancode from the keyboard buffer when keyboard interrupt received  
							
							... 
							
							
							
							*This* is why I couldn't get more that one keyboard interrupt. 
							
						 
						
							2016-03-13 19:14:37 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								cd39d95a1c 
								
							 
						 
						
							
							
								
								Move interrupt dispatch to InterruptHandler; make individual handlers private  
							
							
							
						 
						
							2016-03-13 18:44:13 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								683b79fa07 
								
							 
						 
						
							
							
								
								Make PIC::endOfInterrupt const  
							
							
							
						 
						
							2016-03-13 18:41:34 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								4e715c10af 
								
							 
						 
						
							
							
								
								More #define magic for ISRs  
							
							
							
						 
						
							2016-03-13 18:40:45 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2424ecaa30 
								
							 
						 
						
							
							
								
								Send EOI to PIC when we're done with a hardware interrupt  
							
							
							
						 
						
							2016-03-13 15:55:40 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								5e2c89e588 
								
							 
						 
						
							
							
								
								OMG INTERRUPTS ARE WORKING  
							
							... 
							
							
							
							The segment selector that you put in the interrupt table is a byte offset, and
*not* an index into the table. Now interrupts work!
But only one. And I think I know how to fix this... 
							
						 
						
							2016-03-13 15:54:25 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								1f6ce53e08 
								
							 
						 
						
							
							
								
								Add method to post an interrupt in software  
							
							
							
						 
						
							2016-03-13 15:47:50 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								cf8047f7be 
								
							 
						 
						
							
							
								
								Print descriptor table information when loading  
							
							
							
						 
						
							2016-03-13 15:47:11 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								fdc7232079 
								
							 
						 
						
							
							
								
								Code formatting  
							
							
							
						 
						
							2016-03-13 15:06:05 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2e262df414 
								
							 
						 
						
							
							
								
								Getting too fancy with my CString::length()  
							
							
							
						 
						
							2016-03-13 15:05:53 -04:00 
							
								 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d62bc7f9d4 
								
							 
						 
						
							
							
								
								Console::printFormat is a printf() style function  
							
							
							
						 
						
							2016-03-13 13:56:21 -04:00