]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/PcdTools/org/tianocore/pcd/entity/UsageInstance.java
Fix track EDKT213: PCD value size should be specificed when generate const variable...
[mirror_edk2.git] / Tools / Source / PcdTools / org / tianocore / pcd / entity / UsageInstance.java
index 47638bcea6defbe2a265fdb28c73f7bc36a5cc78..24844531490dd35479d2983f8d74d6b466aa60f4 100644 (file)
@@ -193,20 +193,40 @@ public class UsageInstance {
 \r
         switch (modulePcdType) {\r
         case FEATURE_FLAG:\r
+            //\r
+            // Example autogen string for following generation:\r
+            // "extern const BOOLEAN _gPcd_FixedAtBuild_PcdSampleToken";\r
+            // \r
             hAutogenStr += String.format("extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",\r
                                          parentToken.cName);\r
+            //\r
+            // Example autogen string for following generation:\r
+            // "#define _PCD_GET_MODE_8_PcdSampleToken _gPcd_FixedAtBuild_PcdSampleToken";\r
+            // \r
             hAutogenStr += String.format("#define _PCD_GET_MODE_%s_%s  _gPcd_FixedAtBuild_%s\r\n",\r
                                          Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                          parentToken.cName,\r
                                          parentToken.cName);\r
+            //\r
+            // Example autogen string for following generation:\r
+            // "//#define _PCD_SET_MODE_8_PcdSampleToken ASSERT(FALSE) If is not allowed to set value...";\r
+            // \r
             hAutogenStr += String.format("//#define _PCD_SET_MODE_%s_%s ASSERT(FALSE) If is not allowed to set value for a FEATURE_FLAG PCD\r\n",\r
                                          Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                          parentToken.cName);\r
 \r
             if (!isBuildUsedLibrary) {\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_VALUE_PcdSampleToken 0x1000"\r
+                // \r
                 hAutogenStr += String.format("#define _PCD_VALUE_%s   %s\r\n",\r
                                              parentToken.cName,\r
                                              printDatum);\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdSampleToken = _PCD_VALUE_PcdSampleToken;"\r
+                // \r
                 cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",\r
                                              parentToken.cName,\r
                                              parentToken.cName);\r
@@ -214,47 +234,91 @@ public class UsageInstance {
             break;\r
         case FIXED_AT_BUILD:\r
             if (isByteArray) {\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "extern const BOOLEAN _gPcd_FixedAtBuild_PcdSampleToken";\r
+                // \r
                 hAutogenStr += String.format("extern const UINT8 _gPcd_FixedAtBuild_%s[];\r\n",\r
                                              parentToken.cName);\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_GET_MODE_8_PcdSampleToken (VOID*)_gPcd_FixedAtBuild_PcdSampleToken";\r
+                // \r
                 hAutogenStr += String.format("#define _PCD_GET_MODE_%s_%s  (VOID*)_gPcd_FixedAtBuild_%s\r\n",\r
                                              Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                              parentToken.cName,\r
                                              parentToken.cName);\r
             } else {\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "extern const UINT8 _gPcd_FixedAtBuild_PcdSampleToken";\r
+                // \r
                 hAutogenStr += String.format("extern const %s _gPcd_FixedAtBuild_%s;\r\n",\r
                                              Token.getAutogendatumTypeString(parentToken.datumType),\r
                                              parentToken.cName);\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_GET_MODE_8_PcdSampleToken _gPcd_FixedAtBuild_PcdSampleToken";\r
+                // \r
                 hAutogenStr += String.format("#define _PCD_GET_MODE_%s_%s  _gPcd_FixedAtBuild_%s\r\n",\r
                                              Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                              parentToken.cName,\r
                                              parentToken.cName);\r
             }\r
 \r
+            //\r
+            // Example autogen string for following generation:\r
+            // "//#define _PCD_SET_MODE_8_PcdSampleToken ASSERT(FALSE) If is not allowed to set value...";\r
+            // \r
             hAutogenStr += String.format("//#define _PCD_SET_MODE_%s_%s ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD\r\n",\r
                                          Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                          parentToken.cName);\r
             if (!isBuildUsedLibrary) {\r
                 if (parentToken.datumType == Token.DATUM_TYPE.POINTER) {\r
                     if (isByteArray) {\r
+                        //\r
+                        // Example autogen string for following generation:\r
+                        // "#define _PCD_VALUE_PcdSampleToken (VOID*)_gPcd_FixedAtBuild_PcdSampleToken"\r
+                        // \r
                         hAutogenStr += String.format("#define _PCD_VALUE_%s   (VOID*)_gPcd_FixedAtBuild_%s\r\n",\r
                                                      parentToken.cName,\r
                                                      parentToken.cName);\r
+                        //\r
+                        // Example autogen string for following generation:\r
+                        // "GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdSampleToken[] = 'dfdf';"\r
+                        // \r
                         cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_%s[] = %s;\r\n",\r
                                                      parentToken.cName,\r
                                                      printDatum);\r
                     } else {\r
+                        //\r
+                        // Example autogen string for following generation:\r
+                        // "#define _PCD_VALUE_PcdSampleToken 0x222"\r
+                        // \r
                         hAutogenStr += String.format("#define _PCD_VALUE_%s   %s\r\n",\r
                                                      parentToken.cName,\r
                                                      printDatum);\r
+                        //\r
+                        // Example autogen string for following generation:\r
+                        // "GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdSampleToken[] = _PCD_VALUE_PcdSampleToken;"\r
+                        // \r
                         cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED const %s _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",\r
                                                      Token.getAutogendatumTypeString(parentToken.datumType),\r
                                                      parentToken.cName,\r
                                                      parentToken.cName);\r
                     }\r
                 } else {\r
+                    //\r
+                    // Example autogen string for following generation:\r
+                    // "#define _PCD_VALUE_PcdSampleToken 0x222"\r
+                    // \r
                     hAutogenStr += String.format("#define _PCD_VALUE_%s   %s\r\n",\r
                                                  parentToken.cName,\r
                                                  printDatum);\r
+                    //\r
+                    // Example autogen string for following generation:\r
+                    // "GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdSampleToken[] = _PCD_VALUE_PcdSampleToken;"\r
+                    // \r
                     cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED const %s _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",\r
                                                  Token.getAutogendatumTypeString(parentToken.datumType),\r
                                                  parentToken.cName,\r
@@ -263,32 +327,56 @@ public class UsageInstance {
             }\r
             break;\r
         case PATCHABLE_IN_MODULE:\r
-            if (isByteArray) {\r
+            if (parentToken.datumType == Token.DATUM_TYPE.POINTER) {\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "extern UINT8 _gPcd_BinaryPatch_PcdSampleToken[];"\r
+                // \r
                 hAutogenStr += String.format("extern UINT8 _gPcd_BinaryPatch_%s[];\r\n",\r
                                              parentToken.cName);\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_GET_MODE_8_PcdSampleToken  (VOID*)_gPcd_BinaryPatch_PcdSampleToken"\r
+                // \r
                 hAutogenStr += String.format("#define _PCD_GET_MODE_%s_%s  (VOID*)_gPcd_BinaryPatch_%s\r\n",\r
                                              Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                              parentToken.cName,\r
                                              parentToken.cName);\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_SET_MODE_8_PcdSampleToken(SizeOfBuffer, Buffer) CopyMem (_gPcd_BinaryPatch_PcdSampleToken, (Buffer), (SizeOfBuffer))"\r
+                // \r
+                hAutogenStr += String.format("#define _PCD_PATCHABLE_%s_SIZE %d\r\n",\r
+                                             parentToken.cName,\r
+                                             parentToken.datumSize);\r
+                hAutogenStr += String.format("#define _PCD_SET_MODE_%s_%s(SizeOfBuffer, Buffer) "+\r
+                                             "LibPatchPcdSetPtr (_gPcd_BinaryPatch_%s, (UINTN)_PCD_PATCHABLE_%s_SIZE, "+\r
+                                             "(SizeOfBuffer), (Buffer))\r\n",\r
+                                             Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
+                                             parentToken.cName,\r
+                                             parentToken.cName,\r
+                                             parentToken.cName);\r
+\r
             } else {\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "extern UINT8 _gPcd_BinaryPatch_PcdSampleToken;"\r
+                // \r
                 hAutogenStr += String.format("extern %s _gPcd_BinaryPatch_%s;\r\n",\r
                                              Token.getAutogendatumTypeString(parentToken.datumType),\r
                                              parentToken.cName);\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_GET_MODE_8_PcdSampleToken  _gPcd_BinaryPatch_PcdSampleToken"\r
+                // \r
                 hAutogenStr += String.format("#define _PCD_GET_MODE_%s_%s  _gPcd_BinaryPatch_%s\r\n",\r
                                              Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                              parentToken.cName,\r
                                              parentToken.cName);\r
-            }\r
-\r
-            //\r
-            // Generate _PCD_SET_MODE_xx macro for using set BinaryPatch value via PcdSet macro\r
-            //\r
-            if (parentToken.datumType == Token.DATUM_TYPE.POINTER) {\r
-                hAutogenStr += String.format("#define _PCD_SET_MODE_%s_%s(SizeOfBuffer, Buffer) CopyMem (_gPcd_BinaryPatch_%s, (Buffer), (SizeOfBuffer))\r\n",\r
-                                             Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
-                                             parentToken.cName,\r
-                                             parentToken.cName);\r
-            } else {\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_SET_MODE_8_PcdSampleToken(Value) (_gPcd_BinaryPatch_PcdSampleToken = (Value))"\r
+                // \r
                 hAutogenStr += String.format("#define _PCD_SET_MODE_%s_%s(Value) (_gPcd_BinaryPatch_%s = (Value))\r\n",\r
                                              Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                              parentToken.cName,\r
@@ -296,14 +384,30 @@ public class UsageInstance {
             }\r
 \r
             if (!isBuildUsedLibrary) {\r
+                if (parentToken.datumType == Token.DATUM_TYPE.POINTER) {\r
+                    printDatum = parentToken.getByteArrayForPointerDatum(printDatum);\r
+                }\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_VALUE_PcdSampleToken   0x111"\r
+                // \r
                 hAutogenStr += String.format("#define _PCD_VALUE_%s   %s\r\n",\r
                                              parentToken.cName,\r
                                              printDatum);\r
-                if (isByteArray) {\r
-                    cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED UINT8 _gPcd_BinaryPatch_%s[] = _PCD_VALUE_%s;\r\n",\r
+                if (parentToken.datumType == Token.DATUM_TYPE.POINTER) {\r
+                    //\r
+                    // Example autogen string for following generation:\r
+                    // "GLOBAL_REMOVE_IF_UNREFERENCED UINT8 _gPcd_BinaryPatch_PcdSampleToken[] = _PCD_VALUE_PcdSampleToken;"\r
+                    // \r
+                    cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED UINT8 _gPcd_BinaryPatch_%s[%d] = _PCD_VALUE_%s;\r\n",\r
                                                  parentToken.cName,\r
+                                                 parentToken.datumSize,\r
                                                  parentToken.cName);\r
                 } else {\r
+                    //\r
+                    // Example autogen string for following generation:\r
+                    // "GLOBAL_REMOVE_IF_UNREFERENCED UINT8 _gPcd_BinaryPatch_PcdSampleToken[] = _PCD_VALUE_PcdSampleToken;"\r
+                    // \r
                     cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED %s _gPcd_BinaryPatch_%s = _PCD_VALUE_%s;\r\n",\r
                                                  Token.getAutogendatumTypeString(parentToken.datumType),\r
                                                  parentToken.cName,\r
@@ -313,18 +417,30 @@ public class UsageInstance {
 \r
             break;\r
         case DYNAMIC:\r
+            //\r
+            // Example autogen string for following generation:\r
+            // "#define _PCD_GET_MODE_8_PcdSampleToken  LibPcdGet%s(_PCD_TOKEN_PcdSampleToken)"\r
+            // \r
             hAutogenStr += String.format("#define _PCD_GET_MODE_%s_%s  LibPcdGet%s(_PCD_TOKEN_%s)\r\n",\r
                                          Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                          parentToken.cName,\r
                                          Token.getAutogenLibrarydatumTypeString(parentToken.datumType),\r
                                          parentToken.cName);\r
             if (parentToken.datumType == Token.DATUM_TYPE.POINTER) {\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_SET_MODE_8_PcdSampleToken(SizeOfBuffer, Buffer)  LibPcdSet%s(_PCD_TOKEN_PcdSampleToken, (SizeOfBuffer), (Buffer))"\r
+                // \r
                 hAutogenStr += String.format("#define _PCD_SET_MODE_%s_%s(SizeOfBuffer, Buffer)  LibPcdSet%s(_PCD_TOKEN_%s, (SizeOfBuffer), (Buffer))\r\n",\r
                                              Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                              parentToken.cName,\r
                                              Token.getAutogenLibrarydatumTypeString(parentToken.datumType),\r
                                              parentToken.cName);\r
             } else {\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_SET_MODE_8_PcdSampleToken(Value)  LibPcdSet%s(_PCD_TOKEN_PcdSampleToken, (Value))"\r
+                // \r
                 hAutogenStr += String.format("#define _PCD_SET_MODE_%s_%s(Value)  LibPcdSet%s(_PCD_TOKEN_%s, (Value))\r\n",\r
                                              Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                              parentToken.cName,\r
@@ -336,6 +452,10 @@ public class UsageInstance {
             guidStringCName = "_gPcd_TokenSpaceGuid_" +\r
                               parentToken.tokenSpaceName.toString().replaceAll("-", "_");\r
 \r
+            //\r
+            // Example autogen string for following generation:\r
+            // "#define _PCD_GET_MODE_8_PcdSampleToken LibPcdGetEx%s(&_gPcd_TokenSpaceGuid_00_00_00, _PCD_TOKEN_PcdSampleToken)"\r
+            // \r
             hAutogenStr += String.format("#define _PCD_GET_MODE_%s_%s LibPcdGetEx%s(&%s, _PCD_TOKEN_%s)\r\n",\r
                                          Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                          parentToken.cName,\r
@@ -344,6 +464,10 @@ public class UsageInstance {
                                          parentToken.cName);\r
 \r
             if (parentToken.datumType == Token.DATUM_TYPE.POINTER) {\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_SET_MODE_8_PcdSampleToken(SizeOfBuffer, Buffer) LibPcdSetEx%s(&_gPcd_TokenSpaceGuid_00_00_00, _PCD_TOKEN_PcdSampleToken, (SizeOfBuffer), (Buffer))"\r
+                // \r
                 hAutogenStr += String.format("#define _PCD_SET_MODE_%s_%s(SizeOfBuffer, Buffer) LibPcdSetEx%s(&%s, _PCD_TOKEN_%s, (SizeOfBuffer), (Buffer))\r\n",\r
                                              Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                              parentToken.cName,\r
@@ -351,6 +475,10 @@ public class UsageInstance {
                                              guidStringCName,\r
                                              parentToken.cName);\r
             } else {\r
+                //\r
+                // Example autogen string for following generation:\r
+                // "#define _PCD_SET_MODE_8_PcdSampleToken(Value) LibPcdSetEx%s(&_gPcd_TokenSpaceGuid_00_00_00, _PCD_TOKEN_PcdSampleToken, (Value))"\r
+                //\r
                 hAutogenStr += String.format("#define _PCD_SET_MODE_%s_%s(Value) LibPcdSetEx%s(&%s, _PCD_TOKEN_%s, (Value))\r\n",\r
                                              Token.GetAutogenDefinedatumTypeString(parentToken.datumType),\r
                                              parentToken.cName,\r