]> git.proxmox.com Git - mirror_edk2.git/blob - UefiCpuPkg/CpuDxe/Ia32/IvtAsm.S
Add CPU DXE driver for IA32 & X64 processor architectures.
[mirror_edk2.git] / UefiCpuPkg / CpuDxe / Ia32 / IvtAsm.S
1 #------------------------------------------------------------------------------
2 #
3 # Copyright (c) 2006 - 2009, Intel Corporation
4 # All rights reserved. This program and the accompanying materials
5 # are licensed and made available under the terms and conditions of the BSD License
6 # which accompanies this distribution. The full text of the license may be found at
7 # http://opensource.org/licenses/bsd-license.php
8 #
9 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 #
12 # Module Name:
13 #
14 # IvtAsm.S
15 #
16 # Abstract:
17 #
18 # Interrupt Vector Table
19 #
20 #------------------------------------------------------------------------------
21
22 #
23 # Interrupt Vector Table
24 #
25
26 .macro SingleIdtVectorMacro vectorNum
27 .intel_syntax
28 call ASM_PFX(CommonInterruptEntry)
29 .short \vectorNum
30 nop
31 .endm
32
33 .macro EightIdtVectors firstVectorNum
34 SingleIdtVectorMacro \firstVectorNum
35 SingleIdtVectorMacro "(\firstVectorNum+1)"
36 SingleIdtVectorMacro "(\firstVectorNum+2)"
37 SingleIdtVectorMacro "(\firstVectorNum+3)"
38 SingleIdtVectorMacro "(\firstVectorNum+4)"
39 SingleIdtVectorMacro "(\firstVectorNum+5)"
40 SingleIdtVectorMacro "(\firstVectorNum+6)"
41 SingleIdtVectorMacro "(\firstVectorNum+7)"
42 .endm
43
44 .macro SixtyFourIdtVectors firstVectorNum
45 EightIdtVectors \firstVectorNum
46 EightIdtVectors "(\firstVectorNum+0x08)"
47 EightIdtVectors "(\firstVectorNum+0x10)"
48 EightIdtVectors "(\firstVectorNum+0x18)"
49 EightIdtVectors "(\firstVectorNum+0x20)"
50 EightIdtVectors "(\firstVectorNum+0x28)"
51 EightIdtVectors "(\firstVectorNum+0x30)"
52 EightIdtVectors "(\firstVectorNum+0x38)"
53 .endm
54
55 ASM_GLOBAL ASM_PFX(AsmIdtVector00)
56 .align 8
57 ASM_PFX(AsmIdtVector00):
58 SixtyFourIdtVectors 0x00
59 SixtyFourIdtVectors 0x40
60 SixtyFourIdtVectors 0x80
61 SixtyFourIdtVectors 0xC0
62 ASM_GLOBAL ASM_PFX(AsmCommonIdtEnd)
63 ASM_PFX(AsmCommonIdtEnd):
64 .byte 0
65
66