| ;; @file | |
| ; Interrupt Redirection Template | |
| ; | |
| ; Copyright (c) 2016, Intel Corporation. All rights reserved.<BR> | |
| ; | |
| ; This program and the accompanying materials | |
| ; are licensed and made available under the terms and conditions | |
| ; of the BSD License which accompanies this distribution. The | |
| ; full text of the license may be found at | |
| ; http://opensource.org/licenses/bsd-license.php | |
| ; | |
| ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| ; | |
| ;; | |
| 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 | |