diff options
author | jljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-05-27 21:09:47 +0000 |
---|---|---|
committer | jljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-05-27 21:09:47 +0000 |
commit | a47463f28382bffcedacde0d96965977261d114a (patch) | |
tree | b526ec8f21e4a8a958957ccedb5eb1e0a56c45f7 /UefiCpuPkg/CpuDxe/Ia32/IvtAsm.S | |
parent | e50466da24377199d405f9ee6ac44b293f4548ae (diff) | |
download | edk2-platforms-a47463f28382bffcedacde0d96965977261d114a.tar.xz |
Add CPU DXE driver for IA32 & X64 processor architectures.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8395 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'UefiCpuPkg/CpuDxe/Ia32/IvtAsm.S')
-rwxr-xr-x | UefiCpuPkg/CpuDxe/Ia32/IvtAsm.S | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/UefiCpuPkg/CpuDxe/Ia32/IvtAsm.S b/UefiCpuPkg/CpuDxe/Ia32/IvtAsm.S new file mode 100755 index 0000000000..2a6341a989 --- /dev/null +++ b/UefiCpuPkg/CpuDxe/Ia32/IvtAsm.S @@ -0,0 +1,66 @@ +#------------------------------------------------------------------------------ +# +# Copyright (c) 2006 - 2009, Intel Corporation +# All rights reserved. This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +# Module Name: +# +# IvtAsm.S +# +# Abstract: +# +# Interrupt Vector Table +# +#------------------------------------------------------------------------------ + +# +# Interrupt Vector Table +# + +.macro SingleIdtVectorMacro vectorNum + .intel_syntax + call ASM_PFX(CommonInterruptEntry) + .short \vectorNum + nop +.endm + +.macro EightIdtVectors firstVectorNum + SingleIdtVectorMacro \firstVectorNum + SingleIdtVectorMacro "(\firstVectorNum+1)" + SingleIdtVectorMacro "(\firstVectorNum+2)" + SingleIdtVectorMacro "(\firstVectorNum+3)" + SingleIdtVectorMacro "(\firstVectorNum+4)" + SingleIdtVectorMacro "(\firstVectorNum+5)" + SingleIdtVectorMacro "(\firstVectorNum+6)" + SingleIdtVectorMacro "(\firstVectorNum+7)" +.endm + +.macro SixtyFourIdtVectors firstVectorNum + EightIdtVectors \firstVectorNum + EightIdtVectors "(\firstVectorNum+0x08)" + EightIdtVectors "(\firstVectorNum+0x10)" + EightIdtVectors "(\firstVectorNum+0x18)" + EightIdtVectors "(\firstVectorNum+0x20)" + EightIdtVectors "(\firstVectorNum+0x28)" + EightIdtVectors "(\firstVectorNum+0x30)" + EightIdtVectors "(\firstVectorNum+0x38)" +.endm + +ASM_GLOBAL ASM_PFX(AsmIdtVector00) +.align 8 +ASM_PFX(AsmIdtVector00): + SixtyFourIdtVectors 0x00 + SixtyFourIdtVectors 0x40 + SixtyFourIdtVectors 0x80 + SixtyFourIdtVectors 0xC0 +ASM_GLOBAL ASM_PFX(AsmCommonIdtEnd) +ASM_PFX(AsmCommonIdtEnd): + .byte 0 + + |