diff options
author | 2023-10-10 14:33:42 +0000 | |
---|---|---|
committer | 2023-10-10 14:33:42 +0000 | |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/edk2/OvmfPkg/Csm/LegacyBiosDxe/X64 | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/edk2/OvmfPkg/Csm/LegacyBiosDxe/X64')
-rw-r--r-- | roms/edk2/OvmfPkg/Csm/LegacyBiosDxe/X64/InterruptTable.nasm | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/roms/edk2/OvmfPkg/Csm/LegacyBiosDxe/X64/InterruptTable.nasm b/roms/edk2/OvmfPkg/Csm/LegacyBiosDxe/X64/InterruptTable.nasm new file mode 100644 index 000000000..afc2f0e63 --- /dev/null +++ b/roms/edk2/OvmfPkg/Csm/LegacyBiosDxe/X64/InterruptTable.nasm @@ -0,0 +1,64 @@ +;; @file
+; Interrupt Redirection Template
+;
+; Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+;
+; SPDX-License-Identifier: BSD-2-Clause-Patent
+;
+;;
+
+ DEFAULT REL
+ SECTION .text
+
+;----------------------------------------------------------------------------
+; Procedure: InterruptRedirectionTemplate: Redirects interrupts 0x68-0x6F
+;
+; Input: None
+;
+; Output: None
+;
+; Prototype: VOID
+; InterruptRedirectionTemplate (
+; VOID
+; );
+;
+; Saves: None
+;
+; Modified: None
+;
+; Description: Contains the code that is copied into low memory (below 640K).
+; This code reflects interrupts 0x68-0x6f to interrupts 0x08-0x0f.
+; This template must be copied into low memory, and the IDT entries
+; 0x68-0x6F must be point to the low memory copy of this code. Each
+; entry is 4 bytes long, so IDT entries 0x68-0x6F can be easily
+; computed.
+;
+;----------------------------------------------------------------------------
+
+global ASM_PFX(InterruptRedirectionTemplate)
+ASM_PFX(InterruptRedirectionTemplate):
+ int 0x8
+ DB 0xcf ; IRET
+ nop
+ int 0x9
+ DB 0xcf ; IRET
+ nop
+ int 0xa
+ DB 0xcf ; IRET
+ nop
+ int 0xb
+ DB 0xcf ; IRET
+ nop
+ int 0xc
+ DB 0xcf ; IRET
+ nop
+ int 0xd
+ DB 0xcf ; IRET
+ nop
+ int 0xe
+ DB 0xcf ; IRET
+ nop
+ int 0xf
+ DB 0xcf ; IRET
+ nop
+
|