summaryrefslogtreecommitdiffhomepage
path: root/Private/HALKit/AMD64/HalHardwareInit.cpp
blob: adcacce438997b36f9c3ab0091e2d7d7110b7675 (plain)
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
32
33
/*
 *	========================================================
 *
 *	HCore
 * 	Copyright Mahrouss Logic, all rights reserved.
 *
 * 	========================================================
 */

#include <ArchKit/ArchKit.hpp>

// bugs = 0

extern "C" HCore::VoidPtr __EXEC_IVT;

static HCore::HAL::Register64* kIdtRegister;
static HCore::HAL::Register64* kGdtRegister;

namespace HCore {
bool ke_init_hal() {
  kIdtRegister = nullptr;
  kGdtRegister = nullptr;

  kIdtRegister = new HCore::HAL::Register64();
  kIdtRegister->Base = (UIntPtr)__EXEC_IVT;
  kIdtRegister->Limit = sizeof(HAL::Register64) * 256;

  HAL::IDTLoader idt;
  idt.Load(*kIdtRegister);

  return true;
}
}  // namespace HCore