blob: 535997856779c384be6edf2f5919c7eeda6ce407 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include "PrimaryInit.h"
#include "idt/Idt.h"
// Function to test idt work. Should remove
void isr()
{
out::display << "The kernel has finished" << '\n';
};
void PrimaryInitialization::processorInitialize()
{
MngIdt &mngIdt = MngIdt::getInstance();
MngGdt &mngGdt = MngGdt::getInstance();
mngGdt.addDescriptor(DescSeg32::flatCodeKernel());
mngGdt.addDescriptor(DescSeg32::flatDataKernel());
mngGdt.loadGdt();
mngIdt.setDescriptor(
DescInterrupt32::InterruptKernelLong(
(uint32)isr,
mngGdt.getCodeSegmentKernel()),
0x20);
mngIdt.loadIdt();
};
void PrimaryInitialization::devicesInitialize()
{
out::display = VGADisplay();
};
|