#pragma once

#include "kint.h"

struct gdt_entry
{
	ushort limit_low;
	ushort base_low;
	uchar base_middle;

	union {
		struct
		{
			uint a_p : 1;
			uint a_dpl : 2;
			uint a_dt : 1;
			uint a_type : 4;
		} __attribute__((packed));

		uchar access;
	};

	union {
		struct
		{
			uint g_g : 1;
			uint g_d : 1;
			uint g_zero : 2; /* includes A */
			uint g_len : 4;
		} __attribute__((packed));

		uchar granularity;
	};

	uchar base_high;
} __attribute__((packed));

struct gdt_pointer
{
	/* Upper 16 bits of selector limits */
	ushort limit;
	/* first struct gdt_entry */
	uint base;
} __attribute__((packed));

struct idt_entry
{
	ushort base_low;
	ushort selector;
	uchar zero;

	union {
		struct
		{
			uchar f_p : 1;
			uchar f_dpl : 2;
			uchar f_const : 5;
		} __attribute__((packed));

		uchar flags;
	};

	ushort base_high;
} __attribute__((packed));

#define IDT_F_CONST 0b00110

struct idt_pointer
{
	ushort limit;
	uint base;
} __attribute__((packed));

extern void isr0();
extern void isr1();
extern void isr2();
extern void isr3();
extern void isr4();
extern void isr5();
extern void isr6();
extern void isr7();
extern void isr8();
extern void isr9();
extern void isr10();
extern void isr11();
extern void isr12();
extern void isr13();
extern void isr14();
extern void isr15();
extern void isr16();
extern void isr17();
extern void isr18();
extern void isr19();
extern void isr20();
extern void isr21();
extern void isr22();
extern void isr23();
extern void isr24();
extern void isr25();
extern void isr26();
extern void isr27();
extern void isr28();
extern void isr29();
extern void isr30();
extern void isr31();

extern void irq0();
extern void irq1();
extern void irq2();
extern void irq3();
extern void irq4();
extern void irq5();
extern void irq6();
extern void irq7();
extern void irq8();
extern void irq9();
extern void irq10();
extern void irq11();
extern void irq12();
extern void irq13();
extern void irq14();
extern void irq15();

void init_descriptor_tables();
void init_idt();
void init_gdt();
