--- /dev/null
+/** @file\r
+\r
+ Copyright (c) 2014 - 2016, 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
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef _FSP_COMMON_LIB_H_\r
+#define _FSP_COMMON_LIB_H_\r
+\r
+#include <FspGlobalData.h>\r
+#include <FspMeasurePointId.h>\r
+\r
+/**\r
+ This function sets the FSP global data pointer.\r
+\r
+ @param[in] FspData Fsp global data pointer.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspGlobalDataPointer (\r
+ IN FSP_GLOBAL_DATA *FspData\r
+ );\r
+\r
+/**\r
+ This function gets the FSP global data pointer.\r
+\r
+**/\r
+FSP_GLOBAL_DATA *\r
+EFIAPI\r
+GetFspGlobalDataPointer (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function gets back the FSP API first parameter passed by the bootlaoder.\r
+\r
+ @retval ApiParameter FSP API first parameter passed by the bootlaoder.\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetFspApiParameter (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function gets back the FSP API second parameter passed by the bootlaoder.\r
+\r
+ @retval ApiParameter FSP API second parameter passed by the bootlaoder.\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetFspApiParameter2 (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function sets the FSP API parameter in the stack.\r
+\r
+ @param[in] Value New parameter value.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspApiParameter (\r
+ IN UINT32 Value\r
+ );\r
+\r
+/**\r
+ This function set the API status code returned to the BootLoader.\r
+\r
+ @param[in] ReturnStatus Status code to return.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspApiReturnStatus (\r
+ IN UINT32 ReturnStatus\r
+ );\r
+\r
+/**\r
+ This function sets the context switching stack to a new stack frame.\r
+\r
+ @param[in] NewStackTop New core stack to be set.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspCoreStackPointer (\r
+ IN VOID *NewStackTop\r
+ );\r
+\r
+/**\r
+ This function sets the platform specific data pointer.\r
+\r
+ @param[in] PlatformData Fsp platform specific data pointer.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspPlatformDataPointer (\r
+ IN VOID *PlatformData\r
+ );\r
+\r
+/**\r
+ This function gets the platform specific data pointer.\r
+\r
+ @param[in] PlatformData Fsp platform specific data pointer.\r
+\r
+**/\r
+VOID *\r
+EFIAPI\r
+GetFspPlatformDataPointer (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function sets the UPD data pointer.\r
+\r
+ @param[in] UpdDataPtr UPD data pointer.\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspUpdDataPointer (\r
+ IN VOID *UpdDataPtr\r
+ );\r
+\r
+/**\r
+ This function gets the UPD data pointer.\r
+\r
+ @return UpdDataPtr UPD data pointer.\r
+**/\r
+VOID *\r
+EFIAPI\r
+GetFspUpdDataPointer (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function sets the memory init UPD data pointer.\r
+\r
+ @param[in] MemoryInitUpdPtr memory init UPD data pointer.\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspMemoryInitUpdDataPointer (\r
+ IN VOID *MemoryInitUpdPtr\r
+ );\r
+\r
+/**\r
+ This function gets the memory init UPD data pointer.\r
+\r
+ @return memory init UPD data pointer.\r
+**/\r
+VOID *\r
+EFIAPI\r
+GetFspMemoryInitUpdDataPointer (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function sets the silicon init UPD data pointer.\r
+\r
+ @param[in] SiliconInitUpdPtr silicon init UPD data pointer.\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspSiliconInitUpdDataPointer (\r
+ IN VOID *SiliconInitUpdPtr\r
+ );\r
+\r
+/**\r
+ This function gets the silicon init UPD data pointer.\r
+\r
+ @return silicon init UPD data pointer.\r
+**/\r
+VOID *\r
+EFIAPI\r
+GetFspSiliconInitUpdDataPointer (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ Set FSP measurement point timestamp.\r
+\r
+ @param[in] Id Measurement point ID.\r
+\r
+ @return performance timestamp.\r
+**/\r
+UINT64\r
+EFIAPI\r
+SetFspMeasurePoint (\r
+ IN UINT8 Id\r
+ );\r
+\r
+/**\r
+ This function gets the FSP info header pointer.\r
+\r
+ @retval FspInfoHeader FSP info header pointer\r
+**/\r
+FSP_INFO_HEADER *\r
+EFIAPI\r
+GetFspInfoHeader (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function sets the FSP info header pointer.\r
+\r
+ @param[in] FspInfoHeader FSP info header pointer\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspInfoHeader (\r
+ FSP_INFO_HEADER *FspInfoHeader\r
+ );\r
+\r
+/**\r
+ This function gets the FSP info header pointer from the API context.\r
+\r
+ @retval FspInfoHeader FSP info header pointer\r
+**/\r
+FSP_INFO_HEADER *\r
+EFIAPI\r
+GetFspInfoHeaderFromApiContext (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function gets the VPD data pointer.\r
+\r
+ @return VpdDataRgnPtr VPD data pointer.\r
+**/\r
+VOID *\r
+EFIAPI\r
+GetFspVpdDataPointer (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function gets FSP API calling mode.\r
+\r
+ @retval API calling mode\r
+**/\r
+UINT8\r
+EFIAPI\r
+GetFspApiCallingIndex (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function sets FSP API calling mode.\r
+\r
+ @param[in] Index API calling index\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspApiCallingIndex (\r
+ UINT8 Index\r
+ );\r
+\r
+/**\r
+ This function gets FSP Phase StatusCode.\r
+ \r
+ @retval StatusCode\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetPhaseStatusCode (\r
+ VOID\r
+ );\r
+\r
+\r
+/**\r
+ This function sets FSP Phase StatusCode.\r
+\r
+ @param[in] Mode Phase StatusCode\r
+**/\r
+VOID\r
+EFIAPI\r
+SetPhaseStatusCode (\r
+ UINT32 StatusCode\r
+ );\r
+\r
+/**\r
+ This function gets FSP CAR base.\r
+\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetFspCarBase (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function gets FSP CAR size.\r
+\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetFspCarSize (\r
+ VOID\r
+ );\r
+\r
+#endif\r