e58c29e15d
Define pointer integer types
2016-04-17 16:49:24 -04:00
d11120956e
Add Type::Pointer to printFormat()
2016-04-17 16:16:17 -04:00
f641b5fc8d
That goddamn auto&
...
Setting frames works now!
2016-04-16 01:26:05 -04:00
1daa3df74e
Remove all the range checking from Bitmap
2016-04-16 01:24:28 -04:00
99d3e85ba5
Namespace comment update
2016-04-14 10:42:47 -04:00
a212d6f9d0
>= in reserve method to catch that last chunk of frames
2016-04-14 10:42:37 -04:00
eb419802e2
Flatten the frame allocator routine
2016-04-14 10:42:14 -04:00
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