KernOS
|
contains all kernel initialization routines More...
Functions | |
void | SSE () |
initialize Streaming Single Instruction Multiple Data (SIMD) Extensions, (SSE) More... | |
void | gdt () |
creates global descriptor table and loads it into CPU More... | |
void | ctors () |
calls constructors on all global objects More... | |
void | idt () |
Creates interrupt descriptor table and loads to CPU. More... | |
void | pagetables () |
void | KMALLOC () |
Provides memory allocator with range of reserved memory address to manage. More... | |
void | PIT () |
Initializes programmable interval timer. More... | |
void | VGA () |
Clear VGA display, and print kernel banner. More... | |
void | PAGE () |
set up page directory, page table, and turn on paging More... | |
contains all kernel initialization routines
void INIT::ctors | ( | ) |
calls constructors on all global objects
as kernel is linked with -nostdlib, __do_global_ctors_aux are not called thus we have to call global constructors ourselves
Definition at line 29 of file global.cpp.
void INIT::gdt | ( | ) |
creates global descriptor table and loads it into CPU
void INIT::idt | ( | ) |
Creates interrupt descriptor table and loads to CPU.
1) Remaps Programmable interrupt controller's interrupt number
2) Assigns exceptions and interrupt handlers
Definition at line 126 of file interrupt.cpp.
void INIT::KMALLOC | ( | ) |
Provides memory allocator with range of reserved memory address to manage.
Definition at line 114 of file memoryallocator.cpp.
void INIT::PAGE | ( | ) |
set up page directory, page table, and turn on paging
Definition at line 76 of file virtualmemory.cpp.
void INIT::pagetables | ( | ) |
void INIT::PIT | ( | ) |
Initializes programmable interval timer.
1) Initializes 8254 Programmable Interrupt Timer
2) Installs timer interrupt handler
void INIT::SSE | ( | ) |
initialize Streaming Single Instruction Multiple Data (SIMD) Extensions, (SSE)
CPU control register 0 | bit | val | description | | 1 | MP | required for IA-32 support of SSE | | 2 | EM | clear to disable emulation of x87 FPU | CPU control register 4 | bit | val | description | | 9 | OSFXSR | set when OS provides facilities for saving/restoring SSE states using FXSAVE/FXRSTOR | | 10 | OSXMMEXCPT | set when OS provides SIMD floating point exception, #XF handler |