aboutsummaryrefslogtreecommitdiffstats
path: root/idt.hpp
blob: c9092dd8c2cb32f6c1a811f60f0b303e8032585b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef IDT_HPP
#define IDT_HPP

#include <cstddef>
#include <cstdint>

struct Registers
{
    std::uint32_t inum;
    std::uint32_t edi, esi, ebp, esp, ebx, edx, ecx, eax;
    std::uint32_t error;
    std::uint32_t eip, cs, eflags;
} __attribute__((packed));

using Callback = void (*)(const Registers&);

void idt_initialize();
void idt_register_callback(std::size_t num, Callback cb);

#endif // IDT_HPP