[edk2-devel] [Patch v3 1/1] BaseTools: Add comments in StructurePcd DSC file.

Yuwei Chen yuwei.chen at intel.com
Tue Dec 8 05:01:23 UTC 2020


Yes,  the Max_Pcd_Len is not a complete limitation, it used as a location maker for adding comments in aligned format.
If the Pcd length is larger than the Max_Pcd_Len, the comment will not follow the aligned format rule, but just be added after the pcd value with 5 blanks.  

The reason I do not use the largest length of Pcd to be the limitation is: it will add one more time's loop for Pcd which I think would increase cost of time.

Thanks,
Yuwei

> -----Original Message-----
> From: gaoliming <gaoliming at byosoft.com.cn>
> Sent: Tuesday, December 8, 2020 12:48 PM
> To: devel at edk2.groups.io; Chen, Christine <yuwei.chen at intel.com>
> Subject: 回复: [edk2-devel] [Patch v3 1/1] BaseTools: Add comments in
> StructurePcd DSC file.
> 
> Yuwei:
>   What's purpose for Max_Pcd_Len? Does it mean PCD name length
> limitation?
> 
> Thanks
> Liming
> > -----邮件原件-----
> > 发件人: bounce+27952+68378+4905953+8761045 at groups.io
> > <bounce+27952+68378+4905953+8761045 at groups.io> 代表 Yuwei Chen
> > 发送时间: 2020年12月7日 15:58
> > 收件人: devel at edk2.groups.io
> > 抄送: Bob Feng <bob.c.feng at intel.com>; Liming Gao
> > <gaoliming at byosoft.com.cn>
> > 主题: [edk2-devel] [Patch v3 1/1] BaseTools: Add comments in
> > StructurePcd DSC file.
> >
> > Currently VFR files have variables comments which will not be added
> > into StructurePcd.dsc file. Thus, it is not convenient for developer
> > to Modify Pcds. To solve this problem, The comments will be modified
> > to user friendly format and added after the corresponding Pcd values
> > in StructurePcd.dsc file.
> >
> > Cc: Bob Feng <bob.c.feng at intel.com>
> > Cc: Liming Gao <gaoliming at byosoft.com.cn>
> > Signed-off-by: Yuwei Chen <yuwei.chen at intel.com>
> > ---
> >  BaseTools/Scripts/ConvertFceToStructurePcd.py | 15 ++++++++++++---
> >  1 file changed, 12 insertions(+), 3 deletions(-)
> >
> > diff --git a/BaseTools/Scripts/ConvertFceToStructurePcd.py
> > b/BaseTools/Scripts/ConvertFceToStructurePcd.py
> > index aeda3ff26dfe..867660fba9cf 100644
> > --- a/BaseTools/Scripts/ConvertFceToStructurePcd.py
> > +++ b/BaseTools/Scripts/ConvertFceToStructurePcd.py
> > @@ -52,6 +52,7 @@ infstatement = '''[Pcd]
> >
> >  SECTION='PcdsDynamicHii'
> >  PCD_NAME='gStructPcdTokenSpaceGuid.Pcd'
> > +Max_Pcd_Len = 100
> >
> >  WARNING=[]
> >  ERRORMSG=[]
> > @@ -278,6 +279,9 @@ class Config(object):
> >      part = []
> >      for x in section[1:]:
> >          line=x.split('\n')[0]
> > +        comment_list = value_re.findall(line) # the string \\... in
> "Q...." line
> > +        comment_list[0] = comment_list[0].replace('//', '')
> > +        comment = comment_list[0].strip()
> >          line=value_re.sub('',line) #delete \\... in "Q...." line
> >          list1=line.split(' ')
> >          value=self.value_parser(list1) @@ -289,7 +293,7 @@ class
> > Config(object):
> >            if attribute[0] in ['0x3','0x7']:
> >              offset = int(offset[0], 16)
> >              #help = help_re.findall(x)
> > -            text = offset, name[0], guid[0], value, attribute[0]
> > +            text = offset, name[0], guid[0], value, attribute[0],
> > + comment
> >              part.append(text)
> >      return(part)
> >
> > @@ -479,7 +483,7 @@ class mainprocess(object):
> >        tmp_id=[id_key] #['0_0',[(struct,[name...]),(struct,[name...])]]
> >        tmp_info={} #{name:struct}
> >        for section in config_dict[id_key]:
> > -        c_offset,c_name,c_guid,c_value,c_attribute = section
> > +        c_offset,c_name,c_guid,c_value,c_attribute,c_comment =
> > + section
> >          if c_name in efi_dict:
> >            struct = efi_dict[c_name]
> >
> >
> title='%s%s|L"%s"|%s|0x00||%s\n'%(PCD_NAME,c_name,c_name,self.guid.
> > guid_parser(c_guid),self.attribute_dict[c_attribute])
> > @@ -499,9 +503,14 @@ class mainprocess(object):
> >            if c_offset in struct_dict:
> >              offset_name=struct_dict[c_offset]
> >              info =
> > "%s%s.%s|%s\n"%(PCD_NAME,c_name,offset_name,c_value)
> > +            blank_length = Max_Pcd_Len - len(info)
> > +            if blank_length <= 0:
> > +                info_comment =
> > "%s%s.%s|%s%s# %s\n"%(PCD_NAME,c_name,offset_name,c_value,"
> > ",c_comment)
> > +            else:
> > +                info_comment =
> >
> "%s%s.%s|%s%s# %s\n"%(PCD_NAME,c_name,offset_name,c_value,blank
> _le
> > ngth*" ",c_comment)
> >              inf = "%s%s\n"%(PCD_NAME,c_name)
> >              inf_list.append(inf)
> > -            tmp_info[info]=title
> > +            tmp_info[info_comment]=title
> >            else:
> >              print("ERROR: Can't find offset %s with struct name
> > %s"%(c_offset,struct))
> >              ERRORMSG.append("ERROR: Can't find offset %s with name
> > %s"%(c_offset,struct))
> > --
> > 2.27.0.windows.1
> >
> >
> >
> > 
> >
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#68437): https://edk2.groups.io/g/devel/message/68437
Mute This Topic: https://groups.io/mt/78797417/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list