#include <Library/DebugLib.h>\r
\r
typedef struct {\r
- UINT16 FeatureCode;\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER *Feature;\r
- UINTN FeatureSize;\r
+ UINT16 FeatureCode;\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER *Feature;\r
+ UINTN FeatureSize;\r
} TCG_FIND_FEATURE_CTX;\r
\r
/**\r
\r
@retval return the string info.\r
**/\r
-CHAR8*\r
+CHAR8 *\r
EFIAPI\r
-TcgMethodStatusString(\r
- UINT8 MethodStatus\r
+TcgMethodStatusString (\r
+ UINT8 MethodStatus\r
)\r
{\r
switch (MethodStatus) {\r
- #define C(status) case TCG_METHOD_STATUS_CODE_ ## status: return #status\r
- C(SUCCESS);\r
- C(NOT_AUTHORIZED);\r
- C(OBSOLETE);\r
- C(SP_BUSY);\r
- C(SP_FAILED);\r
- C(SP_DISABLED);\r
- C(SP_FROZEN);\r
- C(NO_SESSIONS_AVAILABLE);\r
- C(UNIQUENESS_CONFLICT);\r
- C(INSUFFICIENT_SPACE);\r
- C(INSUFFICIENT_ROWS);\r
- C(INVALID_PARAMETER);\r
- C(OBSOLETE2);\r
- C(OBSOLETE3);\r
- C(TPER_MALFUNCTION);\r
- C(TRANSACTION_FAILURE);\r
- C(RESPONSE_OVERFLOW);\r
- C(AUTHORITY_LOCKED_OUT);\r
- C(FAIL);\r
+ #define C(status) case TCG_METHOD_STATUS_CODE_ ## status: return #status\r
+ C (SUCCESS);\r
+ C (NOT_AUTHORIZED);\r
+ C (OBSOLETE);\r
+ C (SP_BUSY);\r
+ C (SP_FAILED);\r
+ C (SP_DISABLED);\r
+ C (SP_FROZEN);\r
+ C (NO_SESSIONS_AVAILABLE);\r
+ C (UNIQUENESS_CONFLICT);\r
+ C (INSUFFICIENT_SPACE);\r
+ C (INSUFFICIENT_ROWS);\r
+ C (INVALID_PARAMETER);\r
+ C (OBSOLETE2);\r
+ C (OBSOLETE3);\r
+ C (TPER_MALFUNCTION);\r
+ C (TRANSACTION_FAILURE);\r
+ C (RESPONSE_OVERFLOW);\r
+ C (AUTHORITY_LOCKED_OUT);\r
+ C (FAIL);\r
#undef C\r
}\r
+\r
return "unknown";\r
}\r
\r
-\r
/**\r
adds call token and method Header (invoking id, and method id).\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgStartMethodCall(\r
- TCG_CREATE_STRUCT *CreateStruct,\r
- TCG_UID InvokingId,\r
- TCG_UID MethodId\r
+TcgStartMethodCall (\r
+ TCG_CREATE_STRUCT *CreateStruct,\r
+ TCG_UID InvokingId,\r
+ TCG_UID MethodId\r
)\r
{\r
- NULL_CHECK(CreateStruct);\r
+ NULL_CHECK (CreateStruct);\r
\r
- if (CreateStruct->ComPacket == NULL ||\r
- CreateStruct->CurPacket == NULL ||\r
- CreateStruct->CurSubPacket == NULL\r
- ) {\r
+ if ((CreateStruct->ComPacket == NULL) ||\r
+ (CreateStruct->CurPacket == NULL) ||\r
+ (CreateStruct->CurSubPacket == NULL)\r
+ )\r
+ {\r
DEBUG ((DEBUG_INFO, "unexpected state: ComPacket=%p CurPacket=%p CurSubPacket=%p\n", CreateStruct->ComPacket, CreateStruct->CurPacket, CreateStruct->CurSubPacket));\r
return (TcgResultFailureInvalidAction);\r
}\r
\r
- ERROR_CHECK(TcgAddCall(CreateStruct));\r
- ERROR_CHECK(TcgAddTcgUid(CreateStruct, InvokingId));\r
- ERROR_CHECK(TcgAddTcgUid(CreateStruct, MethodId));\r
+ ERROR_CHECK (TcgAddCall (CreateStruct));\r
+ ERROR_CHECK (TcgAddTcgUid (CreateStruct, InvokingId));\r
+ ERROR_CHECK (TcgAddTcgUid (CreateStruct, MethodId));\r
\r
return TcgResultSuccess;\r
}\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgStartParameters(\r
- TCG_CREATE_STRUCT *CreateStruct\r
+TcgStartParameters (\r
+ TCG_CREATE_STRUCT *CreateStruct\r
)\r
{\r
- NULL_CHECK(CreateStruct);\r
+ NULL_CHECK (CreateStruct);\r
\r
- if (CreateStruct->ComPacket == NULL ||\r
- CreateStruct->CurPacket == NULL ||\r
- CreateStruct->CurSubPacket == NULL\r
- ) {\r
+ if ((CreateStruct->ComPacket == NULL) ||\r
+ (CreateStruct->CurPacket == NULL) ||\r
+ (CreateStruct->CurSubPacket == NULL)\r
+ )\r
+ {\r
DEBUG ((DEBUG_INFO, "unexpected state: ComPacket=%p CurPacket=%p CurSubPacket=%p\n", CreateStruct->ComPacket, CreateStruct->CurPacket, CreateStruct->CurSubPacket));\r
return (TcgResultFailureInvalidAction);\r
}\r
\r
- return TcgAddStartList(CreateStruct);\r
+ return TcgAddStartList (CreateStruct);\r
}\r
\r
/**\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgEndParameters(\r
- TCG_CREATE_STRUCT *CreateStruct\r
+TcgEndParameters (\r
+ TCG_CREATE_STRUCT *CreateStruct\r
)\r
{\r
- NULL_CHECK(CreateStruct);\r
+ NULL_CHECK (CreateStruct);\r
\r
- if (CreateStruct->ComPacket == NULL ||\r
- CreateStruct->CurPacket == NULL ||\r
- CreateStruct->CurSubPacket == NULL\r
- ) {\r
+ if ((CreateStruct->ComPacket == NULL) ||\r
+ (CreateStruct->CurPacket == NULL) ||\r
+ (CreateStruct->CurSubPacket == NULL)\r
+ )\r
+ {\r
DEBUG ((DEBUG_INFO, "unexpected state: ComPacket=%p CurPacket=%p CurSubPacket=%p\n", CreateStruct->ComPacket, CreateStruct->CurPacket, CreateStruct->CurSubPacket));\r
return (TcgResultFailureInvalidAction);\r
}\r
\r
- return TcgAddEndList(CreateStruct);\r
+ return TcgAddEndList (CreateStruct);\r
}\r
\r
/**\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgEndMethodCall(\r
- TCG_CREATE_STRUCT *CreateStruct\r
+TcgEndMethodCall (\r
+ TCG_CREATE_STRUCT *CreateStruct\r
)\r
{\r
- NULL_CHECK(CreateStruct);\r
+ NULL_CHECK (CreateStruct);\r
\r
- if (CreateStruct->ComPacket == NULL ||\r
- CreateStruct->CurPacket == NULL ||\r
- CreateStruct->CurSubPacket == NULL\r
- ) {\r
+ if ((CreateStruct->ComPacket == NULL) ||\r
+ (CreateStruct->CurPacket == NULL) ||\r
+ (CreateStruct->CurSubPacket == NULL)\r
+ )\r
+ {\r
DEBUG ((DEBUG_INFO, "unexpected state: ComPacket=%p CurPacket=%p CurSubPacket=%p\n", CreateStruct->ComPacket, CreateStruct->CurPacket, CreateStruct->CurSubPacket));\r
return (TcgResultFailureInvalidAction);\r
}\r
\r
- ERROR_CHECK(TcgAddEndOfData(CreateStruct));\r
+ ERROR_CHECK (TcgAddEndOfData (CreateStruct));\r
\r
- ERROR_CHECK(TcgAddStartList(CreateStruct));\r
- ERROR_CHECK(TcgAddUINT8(CreateStruct, 0x00)); // expected to complete properly\r
- ERROR_CHECK(TcgAddUINT8(CreateStruct, 0x00)); // reserved\r
- ERROR_CHECK(TcgAddUINT8(CreateStruct, 0x00)); // reserved\r
- ERROR_CHECK(TcgAddEndList(CreateStruct));\r
+ ERROR_CHECK (TcgAddStartList (CreateStruct));\r
+ ERROR_CHECK (TcgAddUINT8 (CreateStruct, 0x00)); // expected to complete properly\r
+ ERROR_CHECK (TcgAddUINT8 (CreateStruct, 0x00)); // reserved\r
+ ERROR_CHECK (TcgAddUINT8 (CreateStruct, 0x00)); // reserved\r
+ ERROR_CHECK (TcgAddEndList (CreateStruct));\r
\r
return TcgResultSuccess;\r
}\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgGetComIds(\r
- const TCG_PARSE_STRUCT *ParseStruct,\r
- UINT16 *ComId,\r
- UINT16 *ComIdExtension\r
+TcgGetComIds (\r
+ const TCG_PARSE_STRUCT *ParseStruct,\r
+ UINT16 *ComId,\r
+ UINT16 *ComIdExtension\r
)\r
{\r
- NULL_CHECK(ParseStruct);\r
- NULL_CHECK(ComId);\r
- NULL_CHECK(ComIdExtension);\r
+ NULL_CHECK (ParseStruct);\r
+ NULL_CHECK (ComId);\r
+ NULL_CHECK (ComIdExtension);\r
\r
if (ParseStruct->ComPacket == NULL) {\r
DEBUG ((DEBUG_INFO, "unexpected state: ComPacket=%p\n", ParseStruct->ComPacket));\r
return TcgResultFailureInvalidAction;\r
}\r
\r
- *ComId = SwapBytes16(ParseStruct->ComPacket->ComIDBE);\r
- *ComIdExtension = SwapBytes16(ParseStruct->ComPacket->ComIDExtensionBE);\r
+ *ComId = SwapBytes16 (ParseStruct->ComPacket->ComIDBE);\r
+ *ComIdExtension = SwapBytes16 (ParseStruct->ComPacket->ComIDExtensionBE);\r
\r
return TcgResultSuccess;\r
}\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgCheckComIds(\r
- const TCG_PARSE_STRUCT *ParseStruct,\r
- UINT16 ExpectedComId,\r
- UINT16 ExpectedComIdExtension\r
+TcgCheckComIds (\r
+ const TCG_PARSE_STRUCT *ParseStruct,\r
+ UINT16 ExpectedComId,\r
+ UINT16 ExpectedComIdExtension\r
)\r
{\r
- UINT16 ParseComId;\r
- UINT16 ParseComIdExtension;\r
+ UINT16 ParseComId;\r
+ UINT16 ParseComIdExtension;\r
\r
- ERROR_CHECK(TcgGetComIds(ParseStruct, &ParseComId, &ParseComIdExtension));\r
- if (ParseComId != ExpectedComId || ParseComIdExtension != ExpectedComIdExtension) {\r
+ ERROR_CHECK (TcgGetComIds (ParseStruct, &ParseComId, &ParseComIdExtension));\r
+ if ((ParseComId != ExpectedComId) || (ParseComIdExtension != ExpectedComIdExtension)) {\r
DEBUG ((DEBUG_INFO, "Com ID: Actual 0x%02X Expected 0x%02X\n", ParseComId, ExpectedComId));\r
DEBUG ((DEBUG_INFO, "Extended Com ID: 0x%02X Expected 0x%02X\n", ParseComIdExtension, ExpectedComIdExtension));\r
return TcgResultFailure;\r
}\r
+\r
return TcgResultSuccess;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgGetMethodStatus(\r
- const TCG_PARSE_STRUCT *ParseStruct,\r
- UINT8 *MethodStatus\r
+TcgGetMethodStatus (\r
+ const TCG_PARSE_STRUCT *ParseStruct,\r
+ UINT8 *MethodStatus\r
)\r
{\r
- TCG_PARSE_STRUCT TmpParseStruct;\r
- TCG_TOKEN TcgToken;\r
- UINT8 Reserved1, Reserved2;\r
-\r
- NULL_CHECK(ParseStruct);\r
- NULL_CHECK(MethodStatus);\r
-\r
- if (ParseStruct->ComPacket == NULL ||\r
- ParseStruct->CurPacket == NULL ||\r
- ParseStruct->CurSubPacket == NULL\r
- ) {\r
+ TCG_PARSE_STRUCT TmpParseStruct;\r
+ TCG_TOKEN TcgToken;\r
+ UINT8 Reserved1, Reserved2;\r
+\r
+ NULL_CHECK (ParseStruct);\r
+ NULL_CHECK (MethodStatus);\r
+\r
+ if ((ParseStruct->ComPacket == NULL) ||\r
+ (ParseStruct->CurPacket == NULL) ||\r
+ (ParseStruct->CurSubPacket == NULL)\r
+ )\r
+ {\r
DEBUG ((DEBUG_INFO, "unexpected state: ComPacket=%p CurPacket=%p CurSubPacket=%p\n", ParseStruct->ComPacket, ParseStruct->CurPacket, ParseStruct->CurSubPacket));\r
return TcgResultFailureInvalidAction;\r
}\r
\r
// duplicate ParseStruct, then don't need to "reset" location cur ptr\r
- CopyMem (&TmpParseStruct, ParseStruct, sizeof(TCG_PARSE_STRUCT));\r
+ CopyMem (&TmpParseStruct, ParseStruct, sizeof (TCG_PARSE_STRUCT));\r
\r
// method status list exists after the end method call in the subpacket\r
// skip tokens until ENDDATA is found\r
do {\r
- ERROR_CHECK(TcgGetNextToken(&TmpParseStruct, &TcgToken));\r
+ ERROR_CHECK (TcgGetNextToken (&TmpParseStruct, &TcgToken));\r
} while (TcgToken.Type != TcgTokenTypeEndOfData);\r
\r
// only reach here if enddata is found\r
// at this point, the curptr is pointing at method status list beginning\r
- ERROR_CHECK(TcgGetNextStartList(&TmpParseStruct));\r
- ERROR_CHECK(TcgGetNextUINT8(&TmpParseStruct, MethodStatus));\r
- ERROR_CHECK(TcgGetNextUINT8(&TmpParseStruct, &Reserved1));\r
- ERROR_CHECK(TcgGetNextUINT8(&TmpParseStruct, &Reserved2));\r
- ERROR_CHECK(TcgGetNextEndList(&TmpParseStruct));\r
+ ERROR_CHECK (TcgGetNextStartList (&TmpParseStruct));\r
+ ERROR_CHECK (TcgGetNextUINT8 (&TmpParseStruct, MethodStatus));\r
+ ERROR_CHECK (TcgGetNextUINT8 (&TmpParseStruct, &Reserved1));\r
+ ERROR_CHECK (TcgGetNextUINT8 (&TmpParseStruct, &Reserved2));\r
+ ERROR_CHECK (TcgGetNextEndList (&TmpParseStruct));\r
\r
if (Reserved1 != 0) {\r
DEBUG ((DEBUG_INFO, "Method status reserved1 = 0x%02X (expected 0)\n", Reserved1));\r
@retval Return the string for this type.\r
\r
**/\r
-CHAR8*\r
+CHAR8 *\r
EFIAPI\r
-TcgTokenTypeString(\r
+TcgTokenTypeString (\r
TCG_TOKEN_TYPE Type\r
)\r
{\r
case TcgTokenTypeEndTransaction: return "End Transaction";\r
case TcgTokenTypeEmptyAtom: return "Empty atom";\r
}\r
+\r
return "Unknown";\r
}\r
\r
-\r
/**\r
\r
Adds Start Session call to the data structure. This creates the entire ComPacket structure and\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgCreateStartSession(\r
- TCG_CREATE_STRUCT *CreateStruct,\r
- UINT32 *Size,\r
- UINT16 ComId,\r
- UINT16 ComIdExtension,\r
- UINT32 HostSessionId,\r
- TCG_UID SpId,\r
- BOOLEAN Write,\r
- UINT32 HostChallengeLength,\r
- const VOID *HostChallenge,\r
- TCG_UID HostSigningAuthority\r
+TcgCreateStartSession (\r
+ TCG_CREATE_STRUCT *CreateStruct,\r
+ UINT32 *Size,\r
+ UINT16 ComId,\r
+ UINT16 ComIdExtension,\r
+ UINT32 HostSessionId,\r
+ TCG_UID SpId,\r
+ BOOLEAN Write,\r
+ UINT32 HostChallengeLength,\r
+ const VOID *HostChallenge,\r
+ TCG_UID HostSigningAuthority\r
)\r
{\r
- ERROR_CHECK(TcgStartComPacket(CreateStruct, ComId, ComIdExtension));\r
- ERROR_CHECK(TcgStartPacket(CreateStruct, 0x0, 0x0, 0x0, 0x0, 0x0)) ;\r
- ERROR_CHECK(TcgStartSubPacket(CreateStruct, 0x0));\r
- ERROR_CHECK(TcgStartMethodCall(CreateStruct, TCG_UID_SMUID, TCG_UID_SM_START_SESSION));\r
- ERROR_CHECK(TcgStartParameters(CreateStruct));\r
- ERROR_CHECK(TcgAddUINT32(CreateStruct, HostSessionId));\r
- ERROR_CHECK(TcgAddTcgUid(CreateStruct, SpId));\r
- ERROR_CHECK(TcgAddBOOLEAN(CreateStruct, Write));\r
+ ERROR_CHECK (TcgStartComPacket (CreateStruct, ComId, ComIdExtension));\r
+ ERROR_CHECK (TcgStartPacket (CreateStruct, 0x0, 0x0, 0x0, 0x0, 0x0));\r
+ ERROR_CHECK (TcgStartSubPacket (CreateStruct, 0x0));\r
+ ERROR_CHECK (TcgStartMethodCall (CreateStruct, TCG_UID_SMUID, TCG_UID_SM_START_SESSION));\r
+ ERROR_CHECK (TcgStartParameters (CreateStruct));\r
+ ERROR_CHECK (TcgAddUINT32 (CreateStruct, HostSessionId));\r
+ ERROR_CHECK (TcgAddTcgUid (CreateStruct, SpId));\r
+ ERROR_CHECK (TcgAddBOOLEAN (CreateStruct, Write));\r
\r
// optional parameters\r
- if (HostChallenge != NULL && HostChallengeLength != 0) {\r
- ERROR_CHECK(TcgAddStartName(CreateStruct));\r
- ERROR_CHECK(TcgAddUINT8(CreateStruct, 0x00)); //TODO Create Enum for Method Optional Parameters?\r
- ERROR_CHECK(TcgAddByteSequence(CreateStruct, HostChallenge, HostChallengeLength, FALSE));\r
- ERROR_CHECK(TcgAddEndName(CreateStruct));\r
+ if ((HostChallenge != NULL) && (HostChallengeLength != 0)) {\r
+ ERROR_CHECK (TcgAddStartName (CreateStruct));\r
+ ERROR_CHECK (TcgAddUINT8 (CreateStruct, 0x00)); // TODO Create Enum for Method Optional Parameters?\r
+ ERROR_CHECK (TcgAddByteSequence (CreateStruct, HostChallenge, HostChallengeLength, FALSE));\r
+ ERROR_CHECK (TcgAddEndName (CreateStruct));\r
}\r
+\r
// optional parameters\r
if (HostSigningAuthority != 0) {\r
- ERROR_CHECK(TcgAddStartName(CreateStruct));\r
- ERROR_CHECK(TcgAddUINT8(CreateStruct, 0x03)); //TODO Create Enum for Method Optional Parameters?\r
- ERROR_CHECK(TcgAddTcgUid(CreateStruct, HostSigningAuthority));\r
- ERROR_CHECK(TcgAddEndName(CreateStruct));\r
+ ERROR_CHECK (TcgAddStartName (CreateStruct));\r
+ ERROR_CHECK (TcgAddUINT8 (CreateStruct, 0x03)); // TODO Create Enum for Method Optional Parameters?\r
+ ERROR_CHECK (TcgAddTcgUid (CreateStruct, HostSigningAuthority));\r
+ ERROR_CHECK (TcgAddEndName (CreateStruct));\r
}\r
\r
- ERROR_CHECK(TcgEndParameters(CreateStruct));\r
- ERROR_CHECK(TcgEndMethodCall(CreateStruct));\r
- ERROR_CHECK(TcgEndSubPacket(CreateStruct));\r
- ERROR_CHECK(TcgEndPacket(CreateStruct));\r
- ERROR_CHECK(TcgEndComPacket(CreateStruct, Size));\r
+ ERROR_CHECK (TcgEndParameters (CreateStruct));\r
+ ERROR_CHECK (TcgEndMethodCall (CreateStruct));\r
+ ERROR_CHECK (TcgEndSubPacket (CreateStruct));\r
+ ERROR_CHECK (TcgEndPacket (CreateStruct));\r
+ ERROR_CHECK (TcgEndComPacket (CreateStruct, Size));\r
\r
return TcgResultSuccess;\r
}\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgParseSyncSession(\r
+TcgParseSyncSession (\r
const TCG_PARSE_STRUCT *ParseStruct,\r
UINT16 ComId,\r
UINT16 ComIdExtension,\r
UINT32 *TperSessionId\r
)\r
{\r
- UINT8 MethodStatus;\r
- TCG_PARSE_STRUCT TmpParseStruct;\r
- UINT16 ParseComId;\r
- UINT16 ParseExtComId;\r
- TCG_UID InvokingUID;\r
- TCG_UID MethodUID;\r
- UINT32 RecvHostSessionId;\r
+ UINT8 MethodStatus;\r
+ TCG_PARSE_STRUCT TmpParseStruct;\r
+ UINT16 ParseComId;\r
+ UINT16 ParseExtComId;\r
+ TCG_UID InvokingUID;\r
+ TCG_UID MethodUID;\r
+ UINT32 RecvHostSessionId;\r
\r
- NULL_CHECK(ParseStruct);\r
- NULL_CHECK(TperSessionId);\r
+ NULL_CHECK (ParseStruct);\r
+ NULL_CHECK (TperSessionId);\r
\r
- CopyMem (&TmpParseStruct, ParseStruct, sizeof(TCG_PARSE_STRUCT));\r
+ CopyMem (&TmpParseStruct, ParseStruct, sizeof (TCG_PARSE_STRUCT));\r
\r
// verify method status is good\r
- ERROR_CHECK(TcgGetMethodStatus(&TmpParseStruct, &MethodStatus));\r
+ ERROR_CHECK (TcgGetMethodStatus (&TmpParseStruct, &MethodStatus));\r
METHOD_STATUS_ERROR_CHECK (MethodStatus, TcgResultFailure);\r
\r
// verify comids\r
- ERROR_CHECK(TcgGetComIds(&TmpParseStruct, &ParseComId, &ParseExtComId));\r
+ ERROR_CHECK (TcgGetComIds (&TmpParseStruct, &ParseComId, &ParseExtComId));\r
\r
if ((ComId != ParseComId) || (ComIdExtension != ParseExtComId)) {\r
DEBUG ((DEBUG_INFO, "unmatched comid (exp: 0x%X recv: 0x%X) or comid extension (exp: 0x%X recv: 0x%X)\n", ComId, ParseComId, ComIdExtension, ParseExtComId));\r
return TcgResultFailure;\r
}\r
- ERROR_CHECK(TcgGetNextCall(&TmpParseStruct));\r
- ERROR_CHECK(TcgGetNextTcgUid(&TmpParseStruct, &InvokingUID));\r
- ERROR_CHECK(TcgGetNextTcgUid(&TmpParseStruct, &MethodUID));\r
- ERROR_CHECK(TcgGetNextStartList(&TmpParseStruct));\r
- ERROR_CHECK(TcgGetNextUINT32(&TmpParseStruct, &RecvHostSessionId));\r
- ERROR_CHECK(TcgGetNextUINT32(&TmpParseStruct, TperSessionId));\r
- ERROR_CHECK(TcgGetNextEndList(&TmpParseStruct));\r
- ERROR_CHECK(TcgGetNextEndOfData(&TmpParseStruct));\r
+\r
+ ERROR_CHECK (TcgGetNextCall (&TmpParseStruct));\r
+ ERROR_CHECK (TcgGetNextTcgUid (&TmpParseStruct, &InvokingUID));\r
+ ERROR_CHECK (TcgGetNextTcgUid (&TmpParseStruct, &MethodUID));\r
+ ERROR_CHECK (TcgGetNextStartList (&TmpParseStruct));\r
+ ERROR_CHECK (TcgGetNextUINT32 (&TmpParseStruct, &RecvHostSessionId));\r
+ ERROR_CHECK (TcgGetNextUINT32 (&TmpParseStruct, TperSessionId));\r
+ ERROR_CHECK (TcgGetNextEndList (&TmpParseStruct));\r
+ ERROR_CHECK (TcgGetNextEndOfData (&TmpParseStruct));\r
\r
if (InvokingUID != TCG_UID_SMUID) {\r
DEBUG ((DEBUG_INFO, "Invoking UID did not match UID_SMUID\n"));\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgCreateEndSession(\r
- TCG_CREATE_STRUCT *CreateStruct,\r
- UINT32 *Size,\r
- UINT16 ComId,\r
- UINT16 ComIdExtension,\r
- UINT32 HostSessionId,\r
- UINT32 TpSessionId\r
+TcgCreateEndSession (\r
+ TCG_CREATE_STRUCT *CreateStruct,\r
+ UINT32 *Size,\r
+ UINT16 ComId,\r
+ UINT16 ComIdExtension,\r
+ UINT32 HostSessionId,\r
+ UINT32 TpSessionId\r
)\r
{\r
- ERROR_CHECK(TcgStartComPacket(CreateStruct, ComId, ComIdExtension));\r
- ERROR_CHECK(TcgStartPacket(CreateStruct, TpSessionId, HostSessionId, 0x0, 0x0, 0x0));\r
- ERROR_CHECK(TcgStartSubPacket(CreateStruct, 0x0));\r
- ERROR_CHECK(TcgAddEndOfSession(CreateStruct));\r
- ERROR_CHECK(TcgEndSubPacket(CreateStruct));\r
- ERROR_CHECK(TcgEndPacket(CreateStruct));\r
- ERROR_CHECK(TcgEndComPacket(CreateStruct, Size));\r
+ ERROR_CHECK (TcgStartComPacket (CreateStruct, ComId, ComIdExtension));\r
+ ERROR_CHECK (TcgStartPacket (CreateStruct, TpSessionId, HostSessionId, 0x0, 0x0, 0x0));\r
+ ERROR_CHECK (TcgStartSubPacket (CreateStruct, 0x0));\r
+ ERROR_CHECK (TcgAddEndOfSession (CreateStruct));\r
+ ERROR_CHECK (TcgEndSubPacket (CreateStruct));\r
+ ERROR_CHECK (TcgEndPacket (CreateStruct));\r
+ ERROR_CHECK (TcgEndComPacket (CreateStruct, Size));\r
\r
return TcgResultSuccess;\r
}\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgStartMethodSet(\r
- TCG_CREATE_STRUCT *CreateStruct,\r
- TCG_UID Row,\r
- UINT32 ColumnNumber\r
+TcgStartMethodSet (\r
+ TCG_CREATE_STRUCT *CreateStruct,\r
+ TCG_UID Row,\r
+ UINT32 ColumnNumber\r
)\r
{\r
- ERROR_CHECK(TcgStartMethodCall(CreateStruct, Row, TCG_UID_METHOD_SET));\r
- ERROR_CHECK(TcgStartParameters(CreateStruct));\r
- ERROR_CHECK(TcgAddStartName(CreateStruct));\r
- ERROR_CHECK(TcgAddUINT8(CreateStruct, 0x01)); // "Values"\r
- ERROR_CHECK(TcgAddStartList(CreateStruct));\r
- ERROR_CHECK(TcgAddStartName(CreateStruct));\r
- ERROR_CHECK(TcgAddUINT32(CreateStruct, ColumnNumber));\r
+ ERROR_CHECK (TcgStartMethodCall (CreateStruct, Row, TCG_UID_METHOD_SET));\r
+ ERROR_CHECK (TcgStartParameters (CreateStruct));\r
+ ERROR_CHECK (TcgAddStartName (CreateStruct));\r
+ ERROR_CHECK (TcgAddUINT8 (CreateStruct, 0x01)); // "Values"\r
+ ERROR_CHECK (TcgAddStartList (CreateStruct));\r
+ ERROR_CHECK (TcgAddStartName (CreateStruct));\r
+ ERROR_CHECK (TcgAddUINT32 (CreateStruct, ColumnNumber));\r
return TcgResultSuccess;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgEndMethodSet(\r
- TCG_CREATE_STRUCT *CreateStruct\r
+TcgEndMethodSet (\r
+ TCG_CREATE_STRUCT *CreateStruct\r
)\r
{\r
- ERROR_CHECK(TcgAddEndName(CreateStruct));\r
- ERROR_CHECK(TcgAddEndList(CreateStruct));\r
- ERROR_CHECK(TcgAddEndName(CreateStruct));\r
- ERROR_CHECK(TcgEndParameters(CreateStruct));\r
- ERROR_CHECK(TcgEndMethodCall(CreateStruct));\r
+ ERROR_CHECK (TcgAddEndName (CreateStruct));\r
+ ERROR_CHECK (TcgAddEndList (CreateStruct));\r
+ ERROR_CHECK (TcgAddEndName (CreateStruct));\r
+ ERROR_CHECK (TcgEndParameters (CreateStruct));\r
+ ERROR_CHECK (TcgEndMethodCall (CreateStruct));\r
return TcgResultSuccess;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgCreateSetCPin(\r
- TCG_CREATE_STRUCT *CreateStruct,\r
- UINT32 *Size,\r
- UINT16 ComId,\r
- UINT16 ComIdExtension,\r
- UINT32 TperSession,\r
- UINT32 HostSession,\r
- TCG_UID SidRow,\r
- const VOID *Password,\r
- UINT32 PasswordSize\r
+TcgCreateSetCPin (\r
+ TCG_CREATE_STRUCT *CreateStruct,\r
+ UINT32 *Size,\r
+ UINT16 ComId,\r
+ UINT16 ComIdExtension,\r
+ UINT32 TperSession,\r
+ UINT32 HostSession,\r
+ TCG_UID SidRow,\r
+ const VOID *Password,\r
+ UINT32 PasswordSize\r
)\r
{\r
// set new SID Password\r
- ERROR_CHECK(TcgStartComPacket(CreateStruct, ComId, ComIdExtension));\r
- ERROR_CHECK(TcgStartPacket(CreateStruct, TperSession, HostSession, 0x0, 0x0, 0x0));\r
- ERROR_CHECK(TcgStartSubPacket(CreateStruct, 0x0));\r
- ERROR_CHECK(TcgStartMethodSet(CreateStruct, SidRow, 0x03)); // "PIN"\r
- ERROR_CHECK(TcgAddByteSequence(CreateStruct, Password, PasswordSize, FALSE));\r
- ERROR_CHECK(TcgEndMethodSet(CreateStruct));\r
- ERROR_CHECK(TcgEndSubPacket(CreateStruct));\r
- ERROR_CHECK(TcgEndPacket(CreateStruct));\r
- ERROR_CHECK(TcgEndComPacket(CreateStruct, Size));\r
+ ERROR_CHECK (TcgStartComPacket (CreateStruct, ComId, ComIdExtension));\r
+ ERROR_CHECK (TcgStartPacket (CreateStruct, TperSession, HostSession, 0x0, 0x0, 0x0));\r
+ ERROR_CHECK (TcgStartSubPacket (CreateStruct, 0x0));\r
+ ERROR_CHECK (TcgStartMethodSet (CreateStruct, SidRow, 0x03)); // "PIN"\r
+ ERROR_CHECK (TcgAddByteSequence (CreateStruct, Password, PasswordSize, FALSE));\r
+ ERROR_CHECK (TcgEndMethodSet (CreateStruct));\r
+ ERROR_CHECK (TcgEndSubPacket (CreateStruct));\r
+ ERROR_CHECK (TcgEndPacket (CreateStruct));\r
+ ERROR_CHECK (TcgEndComPacket (CreateStruct, Size));\r
return TcgResultSuccess;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgSetAuthorityEnabled(\r
- TCG_CREATE_STRUCT *CreateStruct,\r
- UINT32 *Size,\r
- UINT16 ComId,\r
- UINT16 ComIdExtension,\r
- UINT32 TperSession,\r
- UINT32 HostSession,\r
- TCG_UID AuthorityUid,\r
- BOOLEAN Enabled\r
+TcgSetAuthorityEnabled (\r
+ TCG_CREATE_STRUCT *CreateStruct,\r
+ UINT32 *Size,\r
+ UINT16 ComId,\r
+ UINT16 ComIdExtension,\r
+ UINT32 TperSession,\r
+ UINT32 HostSession,\r
+ TCG_UID AuthorityUid,\r
+ BOOLEAN Enabled\r
)\r
{\r
- ERROR_CHECK(TcgStartComPacket(CreateStruct, ComId, ComIdExtension));\r
- ERROR_CHECK(TcgStartPacket(CreateStruct, TperSession, HostSession, 0x0, 0x0, 0x0));\r
- ERROR_CHECK(TcgStartSubPacket(CreateStruct, 0x0));\r
- ERROR_CHECK(TcgStartMethodSet(CreateStruct, AuthorityUid, 0x05)); // "Enabled"\r
- ERROR_CHECK(TcgAddBOOLEAN(CreateStruct, Enabled));\r
- ERROR_CHECK(TcgEndMethodSet(CreateStruct));\r
- ERROR_CHECK(TcgEndSubPacket(CreateStruct));\r
- ERROR_CHECK(TcgEndPacket(CreateStruct));\r
- ERROR_CHECK(TcgEndComPacket(CreateStruct, Size));\r
+ ERROR_CHECK (TcgStartComPacket (CreateStruct, ComId, ComIdExtension));\r
+ ERROR_CHECK (TcgStartPacket (CreateStruct, TperSession, HostSession, 0x0, 0x0, 0x0));\r
+ ERROR_CHECK (TcgStartSubPacket (CreateStruct, 0x0));\r
+ ERROR_CHECK (TcgStartMethodSet (CreateStruct, AuthorityUid, 0x05)); // "Enabled"\r
+ ERROR_CHECK (TcgAddBOOLEAN (CreateStruct, Enabled));\r
+ ERROR_CHECK (TcgEndMethodSet (CreateStruct));\r
+ ERROR_CHECK (TcgEndSubPacket (CreateStruct));\r
+ ERROR_CHECK (TcgEndPacket (CreateStruct));\r
+ ERROR_CHECK (TcgEndComPacket (CreateStruct, Size));\r
return TcgResultSuccess;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-TcgCreateSetAce(\r
- TCG_CREATE_STRUCT *CreateStruct,\r
- UINT32 *Size,\r
- UINT16 ComId,\r
- UINT16 ComIdExtension,\r
- UINT32 TperSession,\r
- UINT32 HostSession,\r
- TCG_UID AceRow,\r
- TCG_UID Authority1,\r
- BOOLEAN LogicalOperator,\r
- TCG_UID Authority2\r
+TcgCreateSetAce (\r
+ TCG_CREATE_STRUCT *CreateStruct,\r
+ UINT32 *Size,\r
+ UINT16 ComId,\r
+ UINT16 ComIdExtension,\r
+ UINT32 TperSession,\r
+ UINT32 HostSession,\r
+ TCG_UID AceRow,\r
+ TCG_UID Authority1,\r
+ BOOLEAN LogicalOperator,\r
+ TCG_UID Authority2\r
)\r
{\r
- UINT8 HalfUidAuthorityObjectRef[4];\r
- UINT8 HalfUidBooleanAce[4];\r
+ UINT8 HalfUidAuthorityObjectRef[4];\r
+ UINT8 HalfUidBooleanAce[4];\r
\r
HalfUidAuthorityObjectRef[0] = 0x0;\r
HalfUidAuthorityObjectRef[1] = 0x0;\r
HalfUidBooleanAce[2] = 0x4;\r
HalfUidBooleanAce[3] = 0xE;\r
\r
- ERROR_CHECK(TcgStartComPacket(CreateStruct, ComId, ComIdExtension));\r
- ERROR_CHECK(TcgStartPacket(CreateStruct, TperSession, HostSession, 0x0, 0x0, 0x0));\r
- ERROR_CHECK(TcgStartSubPacket(CreateStruct, 0x0));\r
- ERROR_CHECK(TcgStartMethodSet(CreateStruct, AceRow, 0x03)); // "BooleanExpr"\r
- ERROR_CHECK(TcgAddStartList(CreateStruct));\r
- ERROR_CHECK(TcgAddStartName(CreateStruct));\r
- ERROR_CHECK(TcgAddByteSequence(CreateStruct, HalfUidAuthorityObjectRef, sizeof(HalfUidAuthorityObjectRef), FALSE));\r
- ERROR_CHECK(TcgAddTcgUid(CreateStruct, Authority1));\r
- ERROR_CHECK(TcgAddEndName(CreateStruct));\r
- ERROR_CHECK(TcgAddStartName(CreateStruct));\r
- ERROR_CHECK(TcgAddByteSequence(CreateStruct, HalfUidAuthorityObjectRef, sizeof(HalfUidAuthorityObjectRef), FALSE));\r
- ERROR_CHECK(TcgAddTcgUid(CreateStruct, Authority2));\r
- ERROR_CHECK(TcgAddEndName(CreateStruct));\r
-\r
- ERROR_CHECK(TcgAddStartName(CreateStruct));\r
- ERROR_CHECK(TcgAddByteSequence(CreateStruct, HalfUidBooleanAce, sizeof(HalfUidBooleanAce), FALSE));\r
- ERROR_CHECK(TcgAddBOOLEAN(CreateStruct, LogicalOperator));\r
- ERROR_CHECK(TcgAddEndName(CreateStruct));\r
- ERROR_CHECK(TcgAddEndList(CreateStruct));\r
- ERROR_CHECK(TcgEndMethodSet(CreateStruct));\r
- ERROR_CHECK(TcgEndSubPacket(CreateStruct));\r
- ERROR_CHECK(TcgEndPacket(CreateStruct));\r
- ERROR_CHECK(TcgEndComPacket(CreateStruct, Size));\r
+ ERROR_CHECK (TcgStartComPacket (CreateStruct, ComId, ComIdExtension));\r
+ ERROR_CHECK (TcgStartPacket (CreateStruct, TperSession, HostSession, 0x0, 0x0, 0x0));\r
+ ERROR_CHECK (TcgStartSubPacket (CreateStruct, 0x0));\r
+ ERROR_CHECK (TcgStartMethodSet (CreateStruct, AceRow, 0x03)); // "BooleanExpr"\r
+ ERROR_CHECK (TcgAddStartList (CreateStruct));\r
+ ERROR_CHECK (TcgAddStartName (CreateStruct));\r
+ ERROR_CHECK (TcgAddByteSequence (CreateStruct, HalfUidAuthorityObjectRef, sizeof (HalfUidAuthorityObjectRef), FALSE));\r
+ ERROR_CHECK (TcgAddTcgUid (CreateStruct, Authority1));\r
+ ERROR_CHECK (TcgAddEndName (CreateStruct));\r
+ ERROR_CHECK (TcgAddStartName (CreateStruct));\r
+ ERROR_CHECK (TcgAddByteSequence (CreateStruct, HalfUidAuthorityObjectRef, sizeof (HalfUidAuthorityObjectRef), FALSE));\r
+ ERROR_CHECK (TcgAddTcgUid (CreateStruct, Authority2));\r
+ ERROR_CHECK (TcgAddEndName (CreateStruct));\r
+\r
+ ERROR_CHECK (TcgAddStartName (CreateStruct));\r
+ ERROR_CHECK (TcgAddByteSequence (CreateStruct, HalfUidBooleanAce, sizeof (HalfUidBooleanAce), FALSE));\r
+ ERROR_CHECK (TcgAddBOOLEAN (CreateStruct, LogicalOperator));\r
+ ERROR_CHECK (TcgAddEndName (CreateStruct));\r
+ ERROR_CHECK (TcgAddEndList (CreateStruct));\r
+ ERROR_CHECK (TcgEndMethodSet (CreateStruct));\r
+ ERROR_CHECK (TcgEndSubPacket (CreateStruct));\r
+ ERROR_CHECK (TcgEndPacket (CreateStruct));\r
+ ERROR_CHECK (TcgEndComPacket (CreateStruct, Size));\r
return TcgResultSuccess;\r
}\r
\r
**/\r
BOOLEAN\r
EFIAPI\r
-TcgEnumLevel0Discovery(\r
+TcgEnumLevel0Discovery (\r
const TCG_LEVEL0_DISCOVERY_HEADER *DiscoveryHeader,\r
TCG_LEVEL0_ENUM_CALLBACK Callback,\r
VOID *Context\r
)\r
{\r
- UINT32 BytesLeft;\r
- const UINT8 *DiscoveryBufferPtr;\r
- UINT32 FeatLength;\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER *Feat;\r
+ UINT32 BytesLeft;\r
+ const UINT8 *DiscoveryBufferPtr;\r
+ UINT32 FeatLength;\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER *Feat;\r
\r
//\r
// Total bytes including descriptors but not including the Length field\r
//\r
- BytesLeft = SwapBytes32(DiscoveryHeader->LengthBE);\r
+ BytesLeft = SwapBytes32 (DiscoveryHeader->LengthBE);\r
\r
//\r
// If discovery Header is not valid, exit\r
//\r
// Subtract the Length of the Header, except the Length field, which is not included\r
//\r
- BytesLeft -= (sizeof(TCG_LEVEL0_DISCOVERY_HEADER) - sizeof(DiscoveryHeader->LengthBE));\r
+ BytesLeft -= (sizeof (TCG_LEVEL0_DISCOVERY_HEADER) - sizeof (DiscoveryHeader->LengthBE));\r
\r
//\r
// Move ptr to first descriptor\r
//\r
- DiscoveryBufferPtr = (const UINT8*)DiscoveryHeader + sizeof(TCG_LEVEL0_DISCOVERY_HEADER);\r
+ DiscoveryBufferPtr = (const UINT8 *)DiscoveryHeader + sizeof (TCG_LEVEL0_DISCOVERY_HEADER);\r
\r
- while (BytesLeft > sizeof(TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER)) {\r
+ while (BytesLeft > sizeof (TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER)) {\r
//\r
// Pointer to beginning of descriptor (including common Header)\r
//\r
- Feat = (TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER*)DiscoveryBufferPtr;\r
+ Feat = (TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER *)DiscoveryBufferPtr;\r
\r
- FeatLength = Feat->Length + sizeof(TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER);\r
+ FeatLength = Feat->Length + sizeof (TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER);\r
\r
//\r
// Not enough bytes left for Feature descriptor\r
//\r
// Report the Feature to the callback\r
//\r
- if (Callback(DiscoveryHeader, Feat, FeatLength, Context)) {\r
+ if (Callback (DiscoveryHeader, Feat, FeatLength, Context)) {\r
return TRUE;\r
}\r
\r
//\r
// Descriptor Length only describes Data after common Header\r
//\r
- BytesLeft -= FeatLength;\r
+ BytesLeft -= FeatLength;\r
DiscoveryBufferPtr += FeatLength;\r
}\r
\r
**/\r
BOOLEAN\r
EFIAPI\r
-TcgFindFeatureCallback(\r
- const TCG_LEVEL0_DISCOVERY_HEADER *DiscoveryHeader,\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER *Feature,\r
- UINTN FeatureSize,\r
- VOID *Context\r
+TcgFindFeatureCallback (\r
+ const TCG_LEVEL0_DISCOVERY_HEADER *DiscoveryHeader,\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER *Feature,\r
+ UINTN FeatureSize,\r
+ VOID *Context\r
)\r
{\r
- TCG_FIND_FEATURE_CTX* FindCtx;\r
+ TCG_FIND_FEATURE_CTX *FindCtx;\r
\r
- FindCtx = (TCG_FIND_FEATURE_CTX*)Context;\r
- if ( SwapBytes16( Feature->FeatureCode_BE ) == FindCtx->FeatureCode ) {\r
- FindCtx->Feature = Feature;\r
+ FindCtx = (TCG_FIND_FEATURE_CTX *)Context;\r
+ if ( SwapBytes16 (Feature->FeatureCode_BE) == FindCtx->FeatureCode ) {\r
+ FindCtx->Feature = Feature;\r
FindCtx->FeatureSize = FeatureSize;\r
return TRUE; // done enumerating features\r
}\r
+\r
return FALSE; // continue enumerating\r
}\r
\r
\r
@retval return the Feature code data.\r
**/\r
-TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER*\r
+TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER *\r
EFIAPI\r
-TcgGetFeature(\r
+TcgGetFeature (\r
const TCG_LEVEL0_DISCOVERY_HEADER *DiscoveryHeader,\r
UINT16 FeatureCode,\r
UINTN *FeatureSize\r
)\r
{\r
- TCG_FIND_FEATURE_CTX FindCtx;\r
+ TCG_FIND_FEATURE_CTX FindCtx;\r
\r
FindCtx.FeatureCode = FeatureCode;\r
- FindCtx.Feature = NULL;\r
+ FindCtx.Feature = NULL;\r
FindCtx.FeatureSize = 0;\r
\r
- TcgEnumLevel0Discovery(DiscoveryHeader, TcgFindFeatureCallback, &FindCtx);\r
+ TcgEnumLevel0Discovery (DiscoveryHeader, TcgFindFeatureCallback, &FindCtx);\r
if (FeatureSize != NULL) {\r
*FeatureSize = FindCtx.FeatureSize;\r
}\r
+\r
return FindCtx.Feature;\r
}\r
\r
**/\r
BOOLEAN\r
EFIAPI\r
-TcgIsProtocolSupported(\r
- const TCG_SUPPORTED_SECURITY_PROTOCOLS *ProtocolList,\r
- UINT16 Protocol\r
+TcgIsProtocolSupported (\r
+ const TCG_SUPPORTED_SECURITY_PROTOCOLS *ProtocolList,\r
+ UINT16 Protocol\r
)\r
{\r
- UINT16 Index;\r
- UINT16 ListLength;\r
+ UINT16 Index;\r
+ UINT16 ListLength;\r
\r
- ListLength = SwapBytes16(ProtocolList->ListLength_BE);\r
+ ListLength = SwapBytes16 (ProtocolList->ListLength_BE);\r
\r
- if (ListLength > sizeof(ProtocolList->List)) {\r
+ if (ListLength > sizeof (ProtocolList->List)) {\r
DEBUG ((DEBUG_INFO, "WARNING: list Length is larger than max allowed Value; truncating\n"));\r
- ListLength = sizeof(ProtocolList->List);\r
+ ListLength = sizeof (ProtocolList->List);\r
}\r
\r
for (Index = 0; Index < ListLength; Index++) {\r
**/\r
BOOLEAN\r
EFIAPI\r
-TcgIsLocked(\r
- const TCG_LEVEL0_DISCOVERY_HEADER *Discovery\r
+TcgIsLocked (\r
+ const TCG_LEVEL0_DISCOVERY_HEADER *Discovery\r
)\r
{\r
- UINTN Size;\r
- TCG_LOCKING_FEATURE_DESCRIPTOR *LockDescriptor;\r
+ UINTN Size;\r
+ TCG_LOCKING_FEATURE_DESCRIPTOR *LockDescriptor;\r
\r
- Size = 0;\r
- LockDescriptor =(TCG_LOCKING_FEATURE_DESCRIPTOR*) TcgGetFeature (Discovery, TCG_FEATURE_LOCKING, &Size);\r
+ Size = 0;\r
+ LockDescriptor = (TCG_LOCKING_FEATURE_DESCRIPTOR *)TcgGetFeature (Discovery, TCG_FEATURE_LOCKING, &Size);\r
\r
- if (LockDescriptor != NULL && Size >= sizeof(*LockDescriptor)) {\r
+ if ((LockDescriptor != NULL) && (Size >= sizeof (*LockDescriptor))) {\r
DEBUG ((DEBUG_INFO, "locked: %d\n", LockDescriptor->Locked));\r
return LockDescriptor->Locked;\r
}\r