--- /dev/null
+/** @file\r
+ The library class provides platform variable cleanup services.\r
+\r
+Copyright (c) 2015, 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 _PLATFORM_VARIABLE_CLEANUP_LIB_\r
+#define _PLATFORM_VARIABLE_CLEANUP_LIB_\r
+\r
+#include <Guid/VarErrorFlag.h>\r
+\r
+typedef enum {\r
+ VarCleanupAll,\r
+ VarCleanupManually,\r
+ VarCleanupMax,\r
+} VAR_CLEANUP_TYPE;\r
+\r
+/**\r
+ Get last boot variable error flag.\r
+\r
+ @return Last boot variable error flag.\r
+\r
+**/\r
+VAR_ERROR_FLAG\r
+EFIAPI\r
+GetLastBootVarErrorFlag (\r
+ );\r
+\r
+/**\r
+ Platform variable cleanup.\r
+\r
+ @param[in] Flag Variable error flag.\r
+ @param[in] Type Variable cleanup type.\r
+ If it is VarCleanupManually, the interface must be called after console connected.\r
+\r
+ @retval EFI_SUCCESS No error or error processed.\r
+ @retval EFI_UNSUPPORTED The specified Flag or Type is not supported.\r
+ For example, system error may be not supported to process and Platform should have mechanism to reset system to manufacture mode.\r
+ Another, if system and user variables are wanted to be distinguished to process, the interface must be called after EndOfDxe.\r
+ @retval EFI_OUT_OF_RESOURCES Not enough resource to process the error.\r
+ @retval EFI_INVALID_PARAMETER The specified Flag or Type is an invalid value.\r
+ @retval Others Other failure occurs.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+PlatformVarCleanup (\r
+ IN VAR_ERROR_FLAG Flag,\r
+ IN VAR_CLEANUP_TYPE Type\r
+ );\r
+\r
+#endif\r
+\r