/** @file\r
TCG MOR (Memory Overwrite Request) Lock Control Driver.\r
\r
- This driver initilize MemoryOverwriteRequestControlLock variable.\r
+ This driver initializes MemoryOverwriteRequestControlLock variable.\r
This module will add Variable Hook and allow MemoryOverwriteRequestControlLock variable set only once.\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
+Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
#include "TcgMorLock.h"\r
\r
typedef struct {\r
- CHAR16 *VariableName;\r
- EFI_GUID *VendorGuid;\r
+ CHAR16 *VariableName;\r
+ EFI_GUID *VendorGuid;\r
} VARIABLE_TYPE;\r
\r
VARIABLE_TYPE mMorVariableType[] = {\r
- {MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME, &gEfiMemoryOverwriteControlDataGuid},\r
- {MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME, &gEfiMemoryOverwriteRequestControlLockGuid},\r
+ { MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME, &gEfiMemoryOverwriteControlDataGuid },\r
+ { MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME, &gEfiMemoryOverwriteRequestControlLockGuid },\r
};\r
\r
/**\r
**/\r
BOOLEAN\r
IsAnyMorVariable (\r
- IN CHAR16 *VariableName,\r
- IN EFI_GUID *VendorGuid\r
+ IN CHAR16 *VariableName,\r
+ IN EFI_GUID *VendorGuid\r
)\r
{\r
- UINTN Index;\r
+ UINTN Index;\r
\r
- for (Index = 0; Index < sizeof(mMorVariableType)/sizeof(mMorVariableType[0]); Index++) {\r
- if ((StrCmp (VariableName, mMorVariableType[Index].VariableName) == 0) && \r
- (CompareGuid (VendorGuid, mMorVariableType[Index].VendorGuid))) {\r
+ for (Index = 0; Index < sizeof (mMorVariableType)/sizeof (mMorVariableType[0]); Index++) {\r
+ if ((StrCmp (VariableName, mMorVariableType[Index].VariableName) == 0) &&\r
+ (CompareGuid (VendorGuid, mMorVariableType[Index].VendorGuid)))\r
+ {\r
return TRUE;\r
}\r
}\r
+\r
return FALSE;\r
}\r
\r
**/\r
BOOLEAN\r
IsMorLockVariable (\r
- IN CHAR16 *VariableName,\r
- IN EFI_GUID *VendorGuid\r
+ IN CHAR16 *VariableName,\r
+ IN EFI_GUID *VendorGuid\r
)\r
{\r
- if ((StrCmp (VariableName, MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME) == 0) && \r
- (CompareGuid (VendorGuid, &gEfiMemoryOverwriteRequestControlLockGuid))) {\r
+ if ((StrCmp (VariableName, MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME) == 0) &&\r
+ (CompareGuid (VendorGuid, &gEfiMemoryOverwriteRequestControlLockGuid)))\r
+ {\r
return TRUE;\r
}\r
+\r
return FALSE;\r
}\r
\r
@retval EFI_DEVICE_ERROR The variable could not be saved due to a hardware failure.\r
@retval EFI_WRITE_PROTECTED The variable in question is read-only.\r
@retval EFI_WRITE_PROTECTED The variable in question cannot be deleted.\r
- @retval EFI_SECURITY_VIOLATION The variable could not be written due to EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS\r
+ @retval EFI_SECURITY_VIOLATION The variable could not be written due to EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS\r
set but the AuthInfo does NOT pass the validation check carried\r
out by the firmware.\r
@retval EFI_NOT_FOUND The variable trying to be updated or deleted was not found.\r
EFI_STATUS\r
EFIAPI\r
SetVariableCheckHandlerMor (\r
- IN CHAR16 *VariableName,\r
- IN EFI_GUID *VendorGuid,\r
- IN UINT32 Attributes,\r
- IN UINTN DataSize,\r
- IN VOID *Data\r
+ IN CHAR16 *VariableName,\r
+ IN EFI_GUID *VendorGuid,\r
+ IN UINT32 Attributes,\r
+ IN UINTN DataSize,\r
+ IN VOID *Data\r
)\r
{\r
UINTN MorLockDataSize;\r
return EFI_SUCCESS;\r
}\r
\r
- MorLockDataSize = sizeof(MorLock);\r
- Status = InternalGetVariable (\r
- MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME,\r
- &gEfiMemoryOverwriteRequestControlLockGuid,\r
- NULL,\r
- &MorLockDataSize,\r
- &MorLock\r
- );\r
+ MorLockDataSize = sizeof (MorLock);\r
+ Status = InternalGetVariable (\r
+ MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME,\r
+ &gEfiMemoryOverwriteRequestControlLockGuid,\r
+ NULL,\r
+ &MorLockDataSize,\r
+ &MorLock\r
+ );\r
if (!EFI_ERROR (Status) && MorLock) {\r
//\r
// If lock, deny access\r
//\r
return EFI_INVALID_PARAMETER;\r
}\r
- \r
+\r
//\r
// Delete not OK\r
//\r
- if ((DataSize != sizeof(UINT8)) || (Data == NULL) || (Attributes == 0)) {\r
+ if ((DataSize != sizeof (UINT8)) || (Data == NULL) || (Attributes == 0)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
// check format\r
//\r
- if (IsMorLockVariable(VariableName, VendorGuid)) {\r
+ if (IsMorLockVariable (VariableName, VendorGuid)) {\r
//\r
// set to any other value not OK\r
//\r
return EFI_INVALID_PARAMETER;\r
}\r
}\r
+\r
//\r
// Or grant access\r
//\r
@param[in] ImageHandle Image handle of this driver.\r
@param[in] SystemTable A Pointer to the EFI System Table.\r
\r
- @retval EFI_SUCEESS \r
+ @retval EFI_SUCCESS\r
@return Others Some error occurs.\r
**/\r
EFI_STATUS\r
EFI_STATUS Status;\r
UINT8 Data;\r
\r
- Data = 0;\r
+ Data = 0;\r
Status = InternalSetVariable (\r
MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME,\r
&gEfiMemoryOverwriteRequestControlLockGuid,\r