1;; @file 2; Interrupt Redirection Template 3; 4; Copyright (c) 2016, Intel Corporation. All rights reserved.<BR> 5; 6; This program and the accompanying materials 7; are licensed and made available under the terms and conditions 8; of the BSD License which accompanies this distribution. The 9; full text of the license may be found at 10; http://opensource.org/licenses/bsd-license.php 11; 12; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14; 15;; 16 17SECTION .text 18 19;---------------------------------------------------------------------------- 20; Procedure: InterruptRedirectionTemplate: Redirects interrupts 0x68-0x6F 21; 22; Input: None 23; 24; Output: None 25; 26; Prototype: VOID 27; InterruptRedirectionTemplate ( 28; VOID 29; ); 30; 31; Saves: None 32; 33; Modified: None 34; 35; Description: Contains the code that is copied into low memory (below 640K). 36; This code reflects interrupts 0x68-0x6f to interrupts 0x08-0x0f. 37; This template must be copied into low memory, and the IDT entries 38; 0x68-0x6F must be point to the low memory copy of this code. Each 39; entry is 4 bytes long, so IDT entries 0x68-0x6F can be easily 40; computed. 41; 42;---------------------------------------------------------------------------- 43 44global ASM_PFX(InterruptRedirectionTemplate) 45ASM_PFX(InterruptRedirectionTemplate): 46 int 0x8 47 DB 0xcf ; IRET 48 nop 49 int 0x9 50 DB 0xcf ; IRET 51 nop 52 int 0xa 53 DB 0xcf ; IRET 54 nop 55 int 0xb 56 DB 0xcf ; IRET 57 nop 58 int 0xc 59 DB 0xcf ; IRET 60 nop 61 int 0xd 62 DB 0xcf ; IRET 63 nop 64 int 0xe 65 DB 0xcf ; IRET 66 nop 67 int 0xf 68 DB 0xcf ; IRET 69 nop 70 71