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
17    DEFAULT REL
18    SECTION .text
19
20;----------------------------------------------------------------------------
21; Procedure:    InterruptRedirectionTemplate: Redirects interrupts 0x68-0x6F
22;
23; Input:        None
24;
25; Output:       None
26;
27; Prototype:    VOID
28;               InterruptRedirectionTemplate (
29;                                VOID
30;                                );
31;
32; Saves:        None
33;
34; Modified:     None
35;
36; Description:  Contains the code that is copied into low memory (below 640K).
37;               This code reflects interrupts 0x68-0x6f to interrupts 0x08-0x0f.
38;               This template must be copied into low memory, and the IDT entries
39;               0x68-0x6F must be point to the low memory copy of this code.  Each
40;               entry is 4 bytes long, so IDT entries 0x68-0x6F can be easily
41;               computed.
42;
43;----------------------------------------------------------------------------
44
45global ASM_PFX(InterruptRedirectionTemplate)
46ASM_PFX(InterruptRedirectionTemplate):
47  int     0x8
48  DB      0xcf          ; IRET
49  nop
50  int     0x9
51  DB      0xcf          ; IRET
52  nop
53  int     0xa
54  DB      0xcf          ; IRET
55  nop
56  int     0xb
57  DB      0xcf          ; IRET
58  nop
59  int     0xc
60  DB      0xcf          ; IRET
61  nop
62  int     0xd
63  DB      0xcf          ; IRET
64  nop
65  int     0xe
66  DB      0xcf          ; IRET
67  nop
68  int     0xf
69  DB      0xcf          ; IRET
70  nop
71
72