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