);\r
}\r
\r
- /**\r
- Generate unreference token definition string for PCD emulated string. \r
- \r
- Maybe some PCD token definition in FPD but not used by any module or library, we \r
- should also generate token definition in autoge.h/autogen.c, because maybe some\r
- driver loaded in shell will use this PCD. \r
-\r
- @param token The token who want be generated autogen string.\r
- \r
- **/\r
- private void generateUnReferencePcdAutogenString(Token token) {\r
- hAutoGenString += String.format("#define _PCD_TOKEN_%s 0x%016x\r\n", \r
- token.cName, token.tokenNumber);\r
- switch (token.pcdType) {\r
- case FEATURE_FLAG:\r
- hAutoGenString += String.format(\r
- "#define _PCD_VALUE_%s %s\r\n", \r
- token.cName, \r
- token.datum.toString()\r
- );\r
- hAutoGenString += String.format(\r
- "extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n", \r
- token.cName\r
- );\r
- cAutoGenString += String.format(\r
- "GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",\r
- token.cName,\r
- token.cName\r
- );\r
- hAutoGenString += String.format(\r
- "#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",\r
- Token.GetAutogenDefinedatumTypeString(token.datumType),\r
- token.cName,\r
- token.cName\r
- );\r
- break;\r
- case FIXED_AT_BUILD:\r
- hAutoGenString += String.format(\r
- "#define _PCD_VALUE_%s %s\r\n", \r
- token.cName, \r
- token.datum.toString()\r
- );\r
- hAutoGenString += String.format(\r
- "extern const %s _gPcd_FixedAtBuild_%s;\r\n",\r
- Token.getAutogendatumTypeString(token.datumType),\r
- token.cName\r
- );\r
- cAutoGenString += String.format(\r
- "GLOBAL_REMOVE_IF_UNREFERENCED const %s _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",\r
- Token.getAutogendatumTypeString(token.datumType),\r
- token.cName,\r
- token.cName\r
- );\r
- hAutoGenString += String.format(\r
- "#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",\r
- Token.GetAutogenDefinedatumTypeString(token.datumType),\r
- token.cName,\r
- token.cName\r
- );\r
- break;\r
- case PATCHABLE_IN_MODULE:\r
- hAutoGenString += String.format(\r
- "#define _PCD_VALUE_%s %s\r\n", \r
- token.cName, \r
- token.datum.toString()\r
- );\r
- hAutoGenString += String.format(\r
- "extern %s _gPcd_BinaryPatch_%s;\r\n",\r
- Token.getAutogendatumTypeString(token.datumType),\r
- token.cName\r
- );\r
- cAutoGenString += String.format(\r
- "GLOBAL_REMOVE_IF_UNREFERENCED %s _gPcd_BinaryPatch_%s = _PCD_VALUE_%s;\r\n",\r
- Token.getAutogendatumTypeString(token.datumType),\r
- token.cName,\r
- token.cName\r
- );\r
- hAutoGenString += String.format(\r
- "#define _PCD_MODE_%s_%s _gPcd_BinaryPatch_%s\r\n",\r
- Token.GetAutogenDefinedatumTypeString(token.datumType),\r
- token.cName,\r
- token.cName\r
- );\r
- break;\r
- case DYNAMIC:\r
- hAutoGenString += String.format(\r
- "#define _PCD_MODE_%s_%s LibPcdGet%s(_PCD_TOKEN_%s)\r\n",\r
- Token.GetAutogenDefinedatumTypeString(token.datumType),\r
- token.cName,\r
- Token.getAutogenLibrarydatumTypeString(token.datumType),\r
- token.cName\r
- );\r
- break;\r
- case DYNAMIC_EX:\r
- break;\r
- default:\r
- ActionMessage.warning(this, \r
- "The PCD_TYPE setted by platform is unknown"\r
- );\r
- }\r
-\r
- hAutoGenString += "\r\n";\r
- cAutoGenString += "\r\n";\r
- }\r
- \r
/**\r
Test case function\r
\r