diff options
author | klu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-02-23 07:32:20 +0000 |
---|---|---|
committer | klu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-02-23 07:32:20 +0000 |
commit | 28b5f7c06238b25732bf6f0c72c3d42b94abee66 (patch) | |
tree | 6c86c7db041010025e4b9f92efccb87f6ccbec79 /MdePkg | |
parent | f18f2882e95fe2158bd19cf6a9a6ca569cea93de (diff) | |
download | edk2-28b5f7c06238b25732bf6f0c72c3d42b94abee66.zip edk2-28b5f7c06238b25732bf6f0c72c3d42b94abee66.tar.gz edk2-28b5f7c06238b25732bf6f0c72c3d42b94abee66.tar.bz2 |
Disable interrupt when changing IDTR register.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10046 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg')
-rw-r--r-- | MdePkg/Library/BaseLib/Ia32/WriteIdtr.S | 5 | ||||
-rw-r--r-- | MdePkg/Library/BaseLib/Ia32/WriteIdtr.asm | 5 | ||||
-rw-r--r-- | MdePkg/Library/BaseLib/Ia32/WriteIdtr.c | 5 | ||||
-rw-r--r-- | MdePkg/Library/BaseLib/X64/WriteIdtr.S | 5 | ||||
-rw-r--r-- | MdePkg/Library/BaseLib/X64/WriteIdtr.asm | 5 |
5 files changed, 20 insertions, 5 deletions
diff --git a/MdePkg/Library/BaseLib/Ia32/WriteIdtr.S b/MdePkg/Library/BaseLib/Ia32/WriteIdtr.S index 1f4857e..e9fc03b 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteIdtr.S +++ b/MdePkg/Library/BaseLib/Ia32/WriteIdtr.S @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------
#
-# Copyright (c) 2006 - 2008, Intel Corporation
+# Copyright (c) 2006 - 2010, 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
@@ -31,5 +31,8 @@ ASM_GLOBAL ASM_PFX(InternalX86WriteIdtr)
ASM_PFX(InternalX86WriteIdtr):
movl 4(%esp), %eax
+ pushfl
+ cli
lidt (%eax)
+ popfl
ret
diff --git a/MdePkg/Library/BaseLib/Ia32/WriteIdtr.asm b/MdePkg/Library/BaseLib/Ia32/WriteIdtr.asm index 65fca40..76c3f13 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteIdtr.asm +++ b/MdePkg/Library/BaseLib/Ia32/WriteIdtr.asm @@ -1,6 +1,6 @@ ;------------------------------------------------------------------------------
;
-; Copyright (c) 2006, Intel Corporation
+; Copyright (c) 2006 - 2010, 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
@@ -34,7 +34,10 @@ ;------------------------------------------------------------------------------
InternalX86WriteIdtr PROC
mov eax, [esp + 4]
+ pushfd
+ cli
lidt fword ptr [eax]
+ popfd
ret
InternalX86WriteIdtr ENDP
diff --git a/MdePkg/Library/BaseLib/Ia32/WriteIdtr.c b/MdePkg/Library/BaseLib/Ia32/WriteIdtr.c index 33d2b29..d58520f 100644 --- a/MdePkg/Library/BaseLib/Ia32/WriteIdtr.c +++ b/MdePkg/Library/BaseLib/Ia32/WriteIdtr.c @@ -1,7 +1,7 @@ /** @file
AsmWriteIdtr function
- Copyright (c) 2006 - 2008, Intel Corporation<BR>
+ Copyright (c) 2006 - 2010, Intel Corporation<BR>
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
@@ -32,7 +32,10 @@ InternalX86WriteIdtr ( {
_asm {
mov eax, Idtr
+ pushfd
+ cli
lidt fword ptr [eax]
+ popfd
}
}
diff --git a/MdePkg/Library/BaseLib/X64/WriteIdtr.S b/MdePkg/Library/BaseLib/X64/WriteIdtr.S index 544ef79..3336550 100644 --- a/MdePkg/Library/BaseLib/X64/WriteIdtr.S +++ b/MdePkg/Library/BaseLib/X64/WriteIdtr.S @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------
#
-# Copyright (c) 2006 - 2009, Intel Corporation
+# Copyright (c) 2006 - 2010, 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
@@ -31,5 +31,8 @@ #------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(InternalX86WriteIdtr)
ASM_PFX(InternalX86WriteIdtr):
+ pushfq
+ cli
lidt (%rcx)
+ popfq
ret
diff --git a/MdePkg/Library/BaseLib/X64/WriteIdtr.asm b/MdePkg/Library/BaseLib/X64/WriteIdtr.asm index 2f6c081..a658fe3 100644 --- a/MdePkg/Library/BaseLib/X64/WriteIdtr.asm +++ b/MdePkg/Library/BaseLib/X64/WriteIdtr.asm @@ -1,6 +1,6 @@ ;------------------------------------------------------------------------------
;
-; Copyright (c) 2006, Intel Corporation
+; Copyright (c) 2006 - 2010, 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
@@ -31,7 +31,10 @@ ; );
;------------------------------------------------------------------------------
InternalX86WriteIdtr PROC
+ pushfq
+ cli
lidt fword ptr [rcx]
+ popfq
ret
InternalX86WriteIdtr ENDP
|