]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/GenVar.py
BaseTools: PcdDataBase Optimization for multiple SkuIds
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / GenVar.py
index 98e1a4cdae7b4f9f4e3732ab2d501e1f6ac74a7b..7ee39796e345e043c70e8f7b495f2593c26b3fc0 100644 (file)
@@ -115,6 +115,9 @@ class VariableMgr(object):
 \r
         var_data = self.process_variable_data()\r
 \r
+        if not var_data:\r
+            return []\r
+\r
         pcds_default_data = var_data.get(("DEFAULT","STANDARD"))\r
         NvStoreDataBuffer = ""\r
         var_data_offset = collections.OrderedDict()\r
@@ -129,6 +132,11 @@ class VariableMgr(object):
             else:\r
                 var_attr_value = 0x07\r
 \r
+#             print "default var_name_buffer"\r
+#             print self.format_data(var_name_buffer)\r
+#             print "default var_buffer"\r
+#             print self.format_data(default_data)\r
+\r
             DataBuffer = self.AlignData(var_name_buffer + default_data)\r
 \r
             data_size = len(DataBuffer)\r
@@ -143,6 +151,8 @@ class VariableMgr(object):
 \r
         nv_default_part = self.AlignData(self.PACK_DEFAULT_DATA(0, 0, self.unpack_data(variable_storage_header_buffer+NvStoreDataBuffer)))\r
 \r
+#         print "default whole data \n",self.format_data(nv_default_part)\r
+\r
         data_delta_structure_buffer = ""\r
         for skuname,defaultstore in var_data:\r
             if (skuname,defaultstore) == ("DEFAULT","STANDARD"):\r
@@ -156,6 +166,9 @@ class VariableMgr(object):
                 delta_data_set.extend(delta_data)\r
 \r
             data_delta_structure_buffer += self.AlignData(self.PACK_DELTA_DATA(skuname,defaultstore,delta_data_set))\r
+#             print "delta data"\r
+#             print delta_data_set\r
+#             print self.format_data(self.AlignData(self.PACK_DELTA_DATA(skuname,defaultstore,delta_data_set)))\r
 \r
         return self.format_data(nv_default_part + data_delta_structure_buffer)\r
 \r
@@ -171,6 +184,8 @@ class VariableMgr(object):
         return final_data\r
 \r
     def calculate_delta(self, default, theother):\r
+#         print "default data \n", default\r
+#         print "other data \n",theother\r
         if len(default) - len(theother) != 0:\r
             EdkLogger.error("build", FORMAT_INVALID, 'The variable data length is not the same for the same PCD.')\r
         data_delta = []\r
@@ -182,11 +197,13 @@ class VariableMgr(object):
     def dump(self):\r
 \r
         default_var_bin = self.new_process_varinfo()\r
-        value_str = "{"\r
-        default_var_bin_strip = [ data.strip("""'""") for data in default_var_bin]\r
-        value_str += ",".join(default_var_bin_strip)\r
-        value_str += "}"\r
-        return value_str\r
+        if default_var_bin:\r
+            value_str = "{"\r
+            default_var_bin_strip = [ data.strip("""'""") for data in default_var_bin]\r
+            value_str += ",".join(default_var_bin_strip)\r
+            value_str += "}"\r
+            return value_str\r
+        return ""\r
 \r
     def PACK_VARIABLE_STORE_HEADER(self,size):\r
         #Signature: gEfiVariableGuid\r