Kintsugi OS
0.2.0
x86 Monolithic OS
Loading...
Searching...
No Matches
isr.h
Go to the documentation of this file.
1
#ifndef ISR_H
2
#define ISR_H
3
4
#include "../kklibc/ctypes.h"
5
6
/* ISR зарезервированы для исключений процессора */
7
extern
void
isr0
();
8
extern
void
isr1
();
9
extern
void
isr2
();
10
extern
void
isr3
();
11
extern
void
isr4
();
12
extern
void
isr5
();
13
extern
void
isr6
();
14
extern
void
isr7
();
15
extern
void
isr8
();
16
extern
void
isr9
();
17
extern
void
isr10
();
18
extern
void
isr11
();
19
extern
void
isr12
();
20
extern
void
isr13
();
21
extern
void
isr14
();
22
extern
void
isr15
();
23
extern
void
isr16
();
24
extern
void
isr17
();
25
extern
void
isr18
();
26
extern
void
isr19
();
27
extern
void
isr20
();
28
extern
void
isr21
();
29
extern
void
isr22
();
30
extern
void
isr23
();
31
extern
void
isr24
();
32
extern
void
isr25
();
33
extern
void
isr26
();
34
extern
void
isr27
();
35
extern
void
isr28
();
36
extern
void
isr29
();
37
extern
void
isr30
();
38
extern
void
isr31
();
39
extern
void
irq0
();
40
extern
void
irq1
();
41
extern
void
irq2
();
42
extern
void
irq3
();
43
extern
void
irq4
();
44
extern
void
irq5
();
45
extern
void
irq6
();
46
extern
void
irq7
();
47
extern
void
irq8
();
48
extern
void
irq9
();
49
extern
void
irq10
();
50
extern
void
irq11
();
51
extern
void
irq12
();
52
extern
void
irq13
();
53
extern
void
irq14
();
54
extern
void
irq15
();
55
56
#define IRQ0 32
57
#define IRQ1 33
58
#define IRQ2 34
59
#define IRQ3 35
60
#define IRQ4 36
61
#define IRQ5 37
62
#define IRQ6 38
63
#define IRQ7 39
64
#define IRQ8 40
65
#define IRQ9 41
66
#define IRQ10 42
67
#define IRQ11 43
68
#define IRQ12 44
69
#define IRQ13 45
70
#define IRQ14 46
71
#define IRQ15 47
72
73
/* Структура для аггрегации регистров */
74
typedef
struct
{
75
u32
ds
;
/* сегмент данных */
76
u32
edi, esi, ebp, esp, ebx, edx, ecx,
eax
;
/* запушен pusha. */
77
u32
int_no,
err_code
;
/* Число прерывания и код ошибки */
78
u32
eip,
cs
, eflags, useresp, ss;
/* запушить процессором автоматически */
79
}
registers_t
;
80
85
void
isr_install
();
86
92
void
isr_handler
(
registers_t
r);
93
98
void
irq_install
();
99
100
typedef
void (*
isr_t
)(
registers_t
);
101
108
void
register_interrupt_handler
(
u8
n,
isr_t
handler);
109
110
#endif
u32
unsigned int u32
Definition
ctypes.h:11
u8
unsigned char u8
Definition
ctypes.h:15
isr12
void isr12()
isr_t
void(* isr_t)(registers_t)
Definition
isr.h:100
isr4
void isr4()
irq5
void irq5()
isr11
void isr11()
isr_handler
void isr_handler(registers_t r)
Обработчик ISR.
Definition
isr.c:119
isr3
void isr3()
irq2
void irq2()
irq11
void irq11()
isr26
void isr26()
isr23
void isr23()
isr24
void isr24()
isr10
void isr10()
irq12
void irq12()
irq6
void irq6()
irq15
void irq15()
isr20
void isr20()
irq9
void irq9()
register_interrupt_handler
void register_interrupt_handler(u8 n, isr_t handler)
Регистрация обработчика прерывания
Definition
isr.c:136
irq3
void irq3()
irq4
void irq4()
isr25
void isr25()
irq8
void irq8()
isr7
void isr7()
isr8
void isr8()
isr14
void isr14()
isr29
void isr29()
isr15
void isr15()
irq10
void irq10()
isr2
void isr2()
isr6
void isr6()
irq7
void irq7()
isr22
void isr22()
irq14
void irq14()
isr5
void isr5()
isr9
void isr9()
irq13
void irq13()
isr28
void isr28()
irq1
void irq1()
isr17
void isr17()
isr19
void isr19()
isr27
void isr27()
irq0
void irq0()
isr16
void isr16()
irq_install
void irq_install()
установка IRQ
Definition
isr.c:155
isr18
void isr18()
isr1
void isr1()
isr_install
void isr_install()
Обработка ISR.
Definition
isr.c:15
isr21
void isr21()
isr31
void isr31()
isr30
void isr30()
isr0
void isr0()
isr13
void isr13()
registers_t
Definition
isr.h:74
registers_t::cs
u32 cs
Definition
isr.h:78
registers_t::err_code
u32 err_code
Definition
isr.h:77
registers_t::eax
u32 eax
Definition
isr.h:76
registers_t::ds
u32 ds
Definition
isr.h:75
src
kernel
cpu
isr.h
Generated by
1.9.8