- Name "=" "STRING_TOKEN" "\(" VN:Number "\)" ","\r
- VarSize "=" N:Number ","\r
- Uuid "=" guidDefinition[Guid] << mCVfrDataStorage.DeclareEfiVarStore (SN->getText(), &Guid, _STOSID(VN->getText()), _STOU32(N->getText())); >>\r
- <<\r
- VSEObj.SetGuid (&Guid);\r
- _PCATCH(mCVfrDataStorage.GetVarStoreId(SN->getText(), &VarStoreId), SN);\r
+\r
+ (\r
+ Name "=" SN:StringIdentifier "," << StoreName = SN->getText(); >>\r
+ |\r
+ Name "=" "STRING_TOKEN" "\(" VN:Number "\)" "," \r
+ VarSize "=" N:Number "," << \r
+ IsUEFI23EfiVarstore = FALSE;\r
+ StoreName = gCVfrStringDB.GetVarStoreNameFormStringId(_STOSID(VN->getText()));\r
+ if (StoreName == NULL) {\r
+ _PCATCH (VFR_RETURN_UNSUPPORTED, VN->getLine(), "Can't get varstore name for this StringId!");\r
+ }\r
+ Size = _STOU32(N->getText());\r
+ switch (Size) {\r
+ case 1:\r
+ TypeName = (CHAR8 *) "UINT8";\r
+ break;\r
+ case 2:\r
+ TypeName = (CHAR8 *) "UINT16";\r
+ break;\r
+ case 4:\r
+ TypeName = (CHAR8 *) "UINT32";\r
+ break;\r
+ case 8:\r
+ TypeName = (CHAR8 *) "UINT64";\r
+ break; \r
+ default:\r
+ _PCATCH (VFR_RETURN_UNSUPPORTED, N);\r
+ break;\r
+ }\r
+ >>\r
+ )\r
+\r
+ Uuid "=" guidDefinition[Guid] << \r
+ if (IsUEFI23EfiVarstore) {\r
+ _PCATCH(mCVfrDataStorage.DeclareBufferVarStore (\r
+ StoreName,\r
+ &Guid,\r
+ &gCVfrVarDataTypeDB,\r
+ TypeName,\r
+ VarStoreId\r
+ ), LineNum); \r
+ _PCATCH(mCVfrDataStorage.GetVarStoreId(StoreName, &VarStoreId, &Guid), SN);\r
+ _PCATCH(gCVfrVarDataTypeDB.GetDataTypeSize(TypeName, &Size), LineNum);\r
+ } else {\r
+ _PCATCH(mCVfrDataStorage.DeclareBufferVarStore (\r
+ TN->getText(),\r
+ &Guid,\r
+ &gCVfrVarDataTypeDB,\r
+ TypeName,\r
+ VarStoreId\r
+ ), LineNum); \r
+ _PCATCH(mCVfrDataStorage.GetVarStoreId(TN->getText(), &VarStoreId, &Guid), VN);\r
+ _PCATCH(gCVfrVarDataTypeDB.GetDataTypeSize(TypeName, &Size), N->getLine());\r
+ }\r
+ VSEObj.SetGuid (&Guid); \r