IN CONST VOID *Buffer\r
);\r
\r
-//\r
-//\r
-//\r
-typedef struct {\r
- UINT32 Offset;\r
- UINT16 Segment;\r
- UINT16 Reserved;\r
-} IA32_FAR_ADDRESS;\r
-\r
-extern IA32_FAR_ADDRESS gSmmJmpAddr;\r
-\r
extern CONST UINT8 gcSmmInitTemplate[];\r
extern CONST UINT16 gcSmmInitSize;\r
-extern UINT32 gSmmCr0;\r
-extern UINT32 gSmmCr3;\r
-extern UINT32 gSmmCr4;\r
-extern UINTN gSmmInitStack;\r
+X86_ASSEMBLY_PATCH_LABEL gPatchSmmCr0;\r
+extern UINT32 mSmmCr0;\r
+X86_ASSEMBLY_PATCH_LABEL gPatchSmmCr3;\r
+extern UINT32 mSmmCr4;\r
+X86_ASSEMBLY_PATCH_LABEL gPatchSmmCr4;\r
+X86_ASSEMBLY_PATCH_LABEL gPatchSmmInitStack;\r
\r
/**\r
Semaphore operation for all processor relocate SMMBase.\r
@retval EFI_UNSUPPORTED The processor does not support one or more\r
bytes of the memory resource range specified\r
by BaseAddress and Length.\r
- The bit mask of attributes is not support for\r
+ The bit mask of attributes is not supported for\r
the memory resource range specified by\r
BaseAddress and Length.\r
\r
@param BaseAddress The physical address that is the start address of\r
a memory region.\r
@param Length The size in bytes of the memory region.\r
- @param Attributes The bit mask of attributes to set for the memory\r
+ @param Attributes The bit mask of attributes to clear for the memory\r
region.\r
\r
- @retval EFI_SUCCESS The attributes were set for the memory region.\r
+ @retval EFI_SUCCESS The attributes were cleared for the memory region.\r
@retval EFI_INVALID_PARAMETER Length is zero.\r
Attributes specified an illegal combination of\r
- attributes that cannot be set together.\r
+ attributes that cannot be cleared together.\r
@retval EFI_UNSUPPORTED The processor does not support one or more\r
bytes of the memory resource range specified\r
by BaseAddress and Length.\r
- The bit mask of attributes is not support for\r
+ The bit mask of attributes is not supported for\r
the memory resource range specified by\r
BaseAddress and Length.\r
\r
);\r
\r
/**\r
- This function retrieve the attributes of the memory region specified by\r
+ This function retrieves the attributes of the memory region specified by\r
BaseAddress and Length. If different attributes are got from different part\r
of the memory region, EFI_NO_MAPPING will be returned.\r
\r
@retval EFI_UNSUPPORTED The processor does not support one or more\r
bytes of the memory resource range specified\r
by BaseAddress and Length.\r
- The bit mask of attributes is not support for\r
- the memory resource range specified by\r
- BaseAddress and Length.\r
\r
**/\r
EFI_STATUS\r
IN UINT64 *Attributes\r
);\r
\r
+/**\r
+ This function fixes up the address of the global variable or function\r
+ referred in SmmInit assembly files to be the absoute address.\r
+**/\r
+VOID\r
+EFIAPI\r
+PiSmmCpuSmmInitFixupAddress (\r
+ );\r
+\r
+/**\r
+ This function fixes up the address of the global variable or function\r
+ referred in SmiEntry assembly files to be the absoute address.\r
+**/\r
+VOID\r
+EFIAPI\r
+PiSmmCpuSmiEntryFixupAddress (\r
+ );\r
+\r
#endif\r