]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/X86Thunk.c
Update copyright format
[mirror_edk2.git] / MdePkg / Library / BaseLib / X86Thunk.c
index 72c918756d3e645d1d38167a5f53ab64ec911931..5187d17617f6131e525c650a21466666dc184726 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
   Real Mode Thunk Functions for IA32 and x64.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation<BR>\r
-  All rights reserved. This program and the accompanying materials\r
+  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
   http://opensource.org/licenses/bsd-license.php\r
@@ -110,8 +110,8 @@ AsmGetThunk16Properties (
 \r
   Prepares all structures and code required to use AsmThunk16().\r
   \r
-  This interface is limited to be used in physical mode but can not be used in \r
-  virtual mode with paging.\r
+  This interface is limited to be used in either physical mode or virtual modes with paging enabled where the\r
+  virtual to physical mappings for ThunkContext.RealModeBuffer is mapped 1:1.\r
 \r
   If ThunkContext is NULL, then ASSERT().\r
 \r
@@ -230,8 +230,8 @@ AsmPrepareThunk16 (
   If both THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15 and THUNK_ATTRIBUTE_DISABLE_A20_MASK_KBD_CTRL are set in \r
   ThunkAttributes, then ASSERT().\r
 \r
-  This interface is limited to be used in physical mode but can not be used in \r
-  virtual mode with paging.\r
+  This interface is limited to be used in either physical mode or virtual modes with paging enabled where the\r
+  virtual to physical mappings for ThunkContext.RealModeBuffer is mapped 1:1.\r
   \r
   @param  ThunkContext  A pointer to the context structure that describes the\r
                         16-bit real mode code to call.\r
@@ -249,7 +249,9 @@ AsmThunk16 (
   ASSERT ((UINTN)ThunkContext->RealModeBuffer < 0x100000);\r
   ASSERT (ThunkContext->RealModeBufferSize >= m16Size);\r
   ASSERT ((UINTN)ThunkContext->RealModeBuffer + m16Size <= 0x100000);\r
-\r
+  ASSERT (((ThunkContext->ThunkAttributes & (THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15 | THUNK_ATTRIBUTE_DISABLE_A20_MASK_KBD_CTRL)) != \\r
+           (THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15 | THUNK_ATTRIBUTE_DISABLE_A20_MASK_KBD_CTRL)));\r
+           \r
   UpdatedRegs = InternalAsmThunk16 (\r
                   ThunkContext->RealModeState,\r
                   ThunkContext->RealModeBuffer\r
@@ -269,8 +271,8 @@ AsmThunk16 (
   real mode thunk, then it is more efficient if AsmPrepareThunk16() is called\r
   once and AsmThunk16() can be called for each 16-bit real mode thunk.\r
 \r
-  This interface is limited to be used in physical mode but can not be used in \r
-  virtual mode with paging.\r
+  This interface is limited to be used in either physical mode or virtual modes with paging enabled where the\r
+  virtual to physical mappings for ThunkContext.RealModeBuffer is mapped 1:1.\r
   \r
   See AsmPrepareThunk16() and AsmThunk16() for the detailed description and ASSERT() conditions.\r
 \r