Disable interrupt when changing IDTR register.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10046 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
klu2 2010-02-23 07:32:20 +00:00
parent f18f2882e9
commit 28b5f7c062
5 changed files with 20 additions and 5 deletions

View File

@ -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

View File

@ -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

View File

@ -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
}
}

View File

@ -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

View File

@ -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