Xyris  0.5
Interrupts.h
Go to the documentation of this file.
1 /**
2  * @file Interrupts.h
3  * @author Keeton Feavel ([email protected])
4  * @brief Interrupt/Exception stub functions and handlers
5  * @version 0.1
6  * @date 2022-01-04
7  *
8  * @copyright Copyright the Xyris Contributors (c) 2022
9  *
10  */
11 #pragma once
12 #include <Arch/i686/regs.hpp>
13 
14 namespace Interrupts {
15 
16 extern "C" {
17 
18 // Exception stubs
19 void exception0();
20 void exception1();
21 void exception2();
22 void exception3();
23 void exception4();
24 void exception5();
25 void exception6();
26 void exception7();
27 void exception8();
28 void exception9();
29 void exception10();
30 void exception11();
31 void exception12();
32 void exception13();
33 void exception14();
34 void exception15();
35 void exception16();
36 void exception17();
37 void exception18();
38 void exception19();
39 void exception20();
40 void exception21();
41 void exception22();
42 void exception23();
43 void exception24();
44 void exception25();
45 void exception26();
46 void exception27();
47 void exception28();
48 void exception29();
49 void exception30();
50 void exception31();
51 
52 // Interrupt stubs
53 void interrupt0();
54 void interrupt1();
55 void interrupt2();
56 void interrupt3();
57 void interrupt4();
58 void interrupt5();
59 void interrupt6();
60 void interrupt7();
61 void interrupt8();
62 void interrupt9();
63 void interrupt10();
64 void interrupt11();
65 void interrupt12();
66 void interrupt13();
67 void interrupt14();
68 void interrupt15();
69 
70 /**
71  * @brief CPU exception handler. Must be available for each exception
72  * stub to be able to call.
73  *
74  * @param regs CPU registers structure
75  */
76 void exceptionHandler(struct registers* regs);
77 
78 /**
79  * @brief CPU interrupt handler. Must be available for each interrupt
80  * stub to be able to call.
81  *
82  * @param regs CPU registers structure
83  */
84 void interruptHandler(struct registers* regs);
85 
86 } // !extern "C"
87 
88 } // !namespace Interrupts
Interrupts::exception2
void exception2()
Interrupts::exception30
void exception30()
Interrupts::interrupt15
void interrupt15()
Interrupts::interrupt1
void interrupt1()
Interrupts::exception24
void exception24()
Interrupts::interrupt6
void interrupt6()
Interrupts::interruptHandler
void interruptHandler(struct registers *regs)
CPU interrupt handler. Must be available for each interrupt stub to be able to call.
Definition: isr.cpp:39
Interrupts::interrupt5
void interrupt5()
Interrupts::exception17
void exception17()
Interrupts::exception12
void exception12()
Interrupts::exception18
void exception18()
Interrupts
Definition: Interrupts.h:14
Interrupts::exception31
void exception31()
Interrupts::interrupt3
void interrupt3()
registers
A structure definining values for all x86 registers. Cannot be namespaced due to C linkage and ASM in...
Definition: regs.hpp:19
regs.hpp
i686 control register definitions. C & C++ compatible header.
Interrupts::exception19
void exception19()
Interrupts::interrupt8
void interrupt8()
Interrupts::exception7
void exception7()
Interrupts::interrupt10
void interrupt10()
Interrupts::exception16
void exception16()
Interrupts::exception0
void exception0()
Interrupts::interrupt13
void interrupt13()
Interrupts::exception5
void exception5()
Interrupts::exception1
void exception1()
Interrupts::interrupt4
void interrupt4()
Interrupts::exception26
void exception26()
Interrupts::exception10
void exception10()
Interrupts::interrupt12
void interrupt12()
Interrupts::exception4
void exception4()
Interrupts::interrupt0
void interrupt0()
Interrupts::exception9
void exception9()
Interrupts::exception14
void exception14()
Interrupts::exception8
void exception8()
Interrupts::exception27
void exception27()
Interrupts::exception28
void exception28()
Interrupts::exception13
void exception13()
Interrupts::exception21
void exception21()
Interrupts::exception15
void exception15()
Interrupts::interrupt2
void interrupt2()
Interrupts::exception23
void exception23()
Interrupts::interrupt11
void interrupt11()
Interrupts::exception29
void exception29()
Interrupts::exception3
void exception3()
Interrupts::exception11
void exception11()
Interrupts::exception22
void exception22()
Interrupts::exception25
void exception25()
Interrupts::exception6
void exception6()
Interrupts::interrupt14
void interrupt14()
Interrupts::exception20
void exception20()
Interrupts::interrupt7
void interrupt7()
Interrupts::exceptionHandler
void exceptionHandler(struct registers *regs)
CPU exception handler. Must be available for each exception stub to be able to call.
Definition: isr.cpp:29
Interrupts::interrupt9
void interrupt9()