diff options
author | 2016-05-28 00:16:31 +0200 | |
---|---|---|
committer | 2016-05-28 00:16:31 +0200 | |
commit | 32dbae106654aa89a4aca8ab92fae13b668121f2 (patch) | |
tree | 19d91fb17dc36d1f30277a79cc06d0cea8cb32a9 /src | |
parent | 33658a99b13eec17ab34336e8ee65c25a95678b7 (diff) | |
parent | 7c07222a256831d6cbc2098a8559cc23479bec37 (diff) | |
download | rust-x86-32dbae106654aa89a4aca8ab92fae13b668121f2.tar.gz rust-x86-32dbae106654aa89a4aca8ab92fae13b668121f2.tar.zst rust-x86-32dbae106654aa89a4aca8ab92fae13b668121f2.zip |
Merge pull request #13 from dschatzberg/additional_exceptions
This commit adds exceptions 15-20 as listed in Intel Volume 3 6.15
It also fixes exception 1 (the Debug Exception)
Diffstat (limited to 'src')
-rw-r--r-- | src/irq.rs | 50 |
1 files changed, 46 insertions, 4 deletions
@@ -25,7 +25,7 @@ impl fmt::Display for InterruptDescription { /// x86 External Interrupts (1-16). -pub static EXCEPTIONS: [InterruptDescription; 15] = [InterruptDescription { +pub static EXCEPTIONS: [InterruptDescription; 21] = [InterruptDescription { vector: 0, mnemonic: "#DE", description: "Divide Error", @@ -35,14 +35,14 @@ pub static EXCEPTIONS: [InterruptDescription; 15] = [InterruptDescription { InterruptDescription { vector: 1, mnemonic: "#DB", - description: "RESERVED", + description: "Debug", irqtype: "Fault/ Trap", - source: "For Intel use only.", + source: "Debug condition", }, InterruptDescription { vector: 2, mnemonic: "NMI", - description: "Interrupt", + description: "Nonmaskable Interrupt", irqtype: "Interrupt", source: "Nonmaskable external interrupt.", }, @@ -138,6 +138,48 @@ pub static EXCEPTIONS: [InterruptDescription; 15] = [InterruptDescription { description: "Page Fault", irqtype: "Fault", source: "Any memory reference.", + }, + InterruptDescription { + vector: 15, + mnemonic: "", + description: "RESERVED", + irqtype: "", + source: "None.", + }, + InterruptDescription { + vector: 16, + mnemonic: "#MF", + description: "x87 FPU Floating-Point", + irqtype: "Fault", + source: "x87 FPU instructions.", + }, + InterruptDescription { + vector: 17, + mnemonic: "#AC", + description: "Alignment Check", + irqtype: "Fault", + source: "Unaligned memory access.", + }, + InterruptDescription { + vector: 18, + mnemonic: "#MC", + description: "Machine Check", + irqtype: "Abort", + source: "Internal machine error.", + }, + InterruptDescription { + vector: 19, + mnemonic: "#XM", + description: "SIMD Floating-Point", + irqtype: "Fault", + source: "SSE SIMD instructions.", + }, + InterruptDescription { + vector: 20, + mnemonic: "#VE", + description: "Virtualization", + irqtype: "Fault", + source: "EPT violation.", }]; |