Home | History | Annotate | Download | only in IA32
      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 ASM_GLOBAL ASM_PFX(InterruptRedirectionTemplate)
     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 ASM_PFX(InterruptRedirectionTemplate):
     44   int     $0x8
     45   .byte   0xcf
     46   nop
     47   int     $0x9
     48   .byte   0xcf
     49   nop
     50   int     $0xa
     51   .byte   0xcf
     52   nop
     53   int     $0xb
     54   .byte   0xcf
     55   nop
     56   int     $0xc
     57   .byte   0xcf
     58   nop
     59   int     $0xd
     60   .byte   0xcf
     61   nop
     62   int     $0xe
     63   .byte   0xcf
     64   nop
     65   int     $0xf
     66   .byte   0xcf
     67   nop
     68