• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1## @file
2#  Interrupt Redirection Template
3#
4# Copyright (c) 2006, 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#text SEGMENT
18
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
45ASM_GLOBAL ASM_PFX(InterruptRedirectionTemplate)
46ASM_PFX(InterruptRedirectionTemplate):
47  int     $0x08
48  .byte      0x0cf          # IRET
49  nop
50  int     $0x09
51  .byte      0x0cf          # IRET
52  nop
53  int     $0x0a
54  .byte      0x0cf          # IRET
55  nop
56  int     $0x0b
57  .byte      0x0cf          # IRET
58  nop
59  int     $0x0c
60  .byte      0x0cf          # IRET
61  nop
62  int     $0x0d
63  .byte      0x0cf          # IRET
64  nop
65  int     $0x0e
66  .byte      0x0cf          # IRET
67  nop
68  int     $0x0f
69  .byte      0x0cf          # IRET
70  nop
71
72#END
73