GitOS
Loading...
Searching...
No Matches
idt.h File Reference
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  idt_desc
struct  idtr_desc
struct  interrupt_frame

Macros

#define MAX_INTERRUPTS   256

Typedefs

typedef void(* ISR_HANDLER) (int int_no, struct interrupt_frame *frame)

Functions

struct idt_desc __attribute__ ((packed))
void idt_Init ()
 Initializes memory for IDT struct Sets default for all interrupts.
void idt_SetDescriptor (int int_no, void *address)
 Fills entry in IDT for specified Interrupt number Use before idt_Load().
int idt_SetHandler (int int_no, ISR_HANDLER handler)
 Sets handler for given interrupt number.
void idt_Load ()
 Loads Interrupt Descriptor Table.

Variables

uint16_t offset_low
uint16_t selector
uint8_t zero
uint8_t type_attr
uint16_t offset_high
uint16_t limit
uint32_t base
uint32_t error_code
uint32_t edi
uint32_t esi
uint32_t ebp
uint32_t reserved
uint32_t ebx
uint32_t edx
uint32_t ecx
uint32_t eax
uint32_t ip
uint32_t cs
uint32_t flags
uint32_t esp
uint32_t ss
const char * idt_InterruptLayoutString [32]

Macro Definition Documentation

◆ MAX_INTERRUPTS

#define MAX_INTERRUPTS   256

Typedef Documentation

◆ ISR_HANDLER

typedef void(* ISR_HANDLER) (int int_no, struct interrupt_frame *frame)

Function Documentation

◆ __attribute__()

struct idt_desc __attribute__ ( (packed) )

◆ idt_Init()

void idt_Init ( )

Initializes memory for IDT struct Sets default for all interrupts.

References idt_descriptors, idt_SetDescriptor(), idtr_descriptor, interrupt_pointer_table, MAX_INTERRUPTS, and memset().

◆ idt_Load()

void idt_Load ( )

Loads Interrupt Descriptor Table.

References idtr_descriptor.

◆ idt_SetDescriptor()

void idt_SetDescriptor ( int int_no,
void * address )

Fills entry in IDT for specified Interrupt number Use before idt_Load().

Parameters
int_noInterrupt number
addressPointer to interrupt handler

References idt_descriptors, idt_desc::offset_high, idt_desc::offset_low, idt_desc::selector, idt_desc::type_attr, and idt_desc::zero.

◆ idt_SetHandler()

int idt_SetHandler ( int int_no,
ISR_HANDLER handler )

Sets handler for given interrupt number.

Parameters
int_noInterrupt number
handlerHandler function
Returns
int Error code

References ALL_OK, EINVARG, interrupt_handlers, and MAX_INTERRUPTS.

Variable Documentation

◆ base

uint32_t base

◆ cs

uint32_t cs

◆ eax

uint32_t eax

◆ ebp

uint32_t ebp

◆ ebx

uint32_t ebx

◆ ecx

uint32_t ecx

◆ edi

uint32_t edi

◆ edx

uint32_t edx

◆ error_code

uint32_t error_code

◆ esi

uint32_t esi

◆ esp

uint32_t esp

◆ flags

uint32_t flags

◆ idt_InterruptLayoutString

const char* idt_InterruptLayoutString[32]
extern

◆ ip

uint32_t ip

◆ limit

uint16_t limit

◆ offset_high

uint16_t offset_high

◆ offset_low

uint16_t offset_low

◆ reserved

uint32_t reserved

◆ selector

uint16_t selector

◆ ss

uint32_t ss

◆ type_attr

uint8_t type_attr

◆ zero

uint8_t zero