]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Fix bugs in SmmBaseHelper driver.
authorrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 5 Jan 2010 09:28:48 +0000 (09:28 +0000)
committerrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 5 Jan 2010 09:28:48 +0000 (09:28 +0000)
1. Should use sizeof(EFI_SMM_CPU_SAVE_STATE) instead of sizeof (EFI_SMI_CPU_SAVE_STATE) to allocate buffer for CpuSaveState in Framework SMST;
2. The type of Width parameter for ReadSaveState() and WriteSaveState() functions of SMM CPU Protocol is UINTN instead of an enumeration type.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9678 6f19259b-4bc3-4df7-8a09-765794883524

EdkCompatibilityPkg/Compatibility/SmmBaseHelper/SmmBaseHelper.c

index 381f6ae2edbf9bda8e70b4641f7bb1a17465513f..3443ac63ab4f57d80c94f547b9edcd462f7516b4 100644 (file)
@@ -124,11 +124,11 @@ ConstructFrameworkSmst (
 \r
   Status = gSmst->SmmAllocatePool (\r
                     EfiRuntimeServicesData,\r
 \r
   Status = gSmst->SmmAllocatePool (\r
                     EfiRuntimeServicesData,\r
-                    gSmst->NumberOfCpus * sizeof (EFI_SMI_CPU_SAVE_STATE),\r
+                    gSmst->NumberOfCpus * sizeof (EFI_SMM_CPU_SAVE_STATE),\r
                     (VOID **)&FrameworkSmst->CpuSaveState\r
                     );\r
   ASSERT_EFI_ERROR (Status);\r
                     (VOID **)&FrameworkSmst->CpuSaveState\r
                     );\r
   ASSERT_EFI_ERROR (Status);\r
-  ZeroMem (FrameworkSmst->CpuSaveState, gSmst->NumberOfCpus * sizeof (EFI_SMI_CPU_SAVE_STATE));\r
+  ZeroMem (FrameworkSmst->CpuSaveState, gSmst->NumberOfCpus * sizeof (EFI_SMM_CPU_SAVE_STATE));\r
 \r
   ///\r
   /// Do not support floating point state now\r
 \r
   ///\r
   /// Do not support floating point state now\r
@@ -430,7 +430,7 @@ CallbackThunk (
       ///\r
       Status = mSmmCpu->ReadSaveState (\r
                           mSmmCpu,\r
       ///\r
       Status = mSmmCpu->ReadSaveState (\r
                           mSmmCpu,\r
-                          EFI_SMM_SAVE_STATE_IO_WIDTH_UINT32,\r
+                          (UINTN)sizeof (UINT32),\r
                           mCpuSaveStateConvTable[Index].Register,\r
                           CpuIndex,\r
                           ((UINT8 *)SaveState) + mCpuSaveStateConvTable[Index].Offset\r
                           mCpuSaveStateConvTable[Index].Register,\r
                           CpuIndex,\r
                           ((UINT8 *)SaveState) + mCpuSaveStateConvTable[Index].Offset\r
@@ -462,7 +462,7 @@ CallbackThunk (
     for (Index = 0; Index < sizeof (mCpuSaveStateConvTable) / sizeof (CPU_SAVE_STATE_CONVERSION); Index++) {\r
       Status = mSmmCpu->WriteSaveState (\r
                           mSmmCpu,\r
     for (Index = 0; Index < sizeof (mCpuSaveStateConvTable) / sizeof (CPU_SAVE_STATE_CONVERSION); Index++) {\r
       Status = mSmmCpu->WriteSaveState (\r
                           mSmmCpu,\r
-                          EFI_SMM_SAVE_STATE_IO_WIDTH_UINT32,\r
+                          (UINTN)sizeof (UINT32),\r
                           mCpuSaveStateConvTable[Index].Register,\r
                           CpuIndex,\r
                           ((UINT8 *)&mFrameworkSmst->CpuSaveState[CpuIndex].Ia32SaveState) + \r
                           mCpuSaveStateConvTable[Index].Register,\r
                           CpuIndex,\r
                           ((UINT8 *)&mFrameworkSmst->CpuSaveState[CpuIndex].Ia32SaveState) + \r