4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync TITLE IvtAsm.asm:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;------------------------------------------------------------------------------
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;*
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;* Copyright (c) 2008 - 2009, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;* This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;* are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;* which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;* http://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;*
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;*
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;* IvtAsm.asm
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;*
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;* Abstract:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;*
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;------------------------------------------------------------------------------
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Base.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifdef MDE_CPU_IA32
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync .686
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync .model flat,C
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync .code
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;------------------------------------------------------------------------------
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync; Generic IDT Vector Handlers for the Host. They are all the same so they
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync; will compress really well.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync; By knowing the return address for Vector 00 you can can calculate the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync; vector number by looking at the call CommonInterruptEntry return address.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync; (return address - (AsmIdtVector00 + 5))/8 == IDT index
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync;------------------------------------------------------------------------------
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEXTRN CommonInterruptEntry:PROC
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncALIGN 8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncPUBLIC AsmIdtVector00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncAsmIdtVector00 LABEL BYTE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncREPEAT 256
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync call CommonInterruptEntry
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync dw ($ - AsmIdtVector00 - 5) / 8 ; vector number
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nop
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncENDM
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEND
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync