public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gao, Liming" <liming.gao@intel.com>
To: "Zhu, Yonghong" <yonghong.zhu@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [Patch] BaseTools: Enhance tool to generate EFI_HII_IIBT_DUPLICATE image block
Date: Wed, 19 Oct 2016 01:34:47 +0000	[thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14B49626D@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: <1476697533-5368-1-git-send-email-yonghong.zhu@intel.com>

Reviewed-by: Liming Gao <liming.gao@intel.com>

> -----Original Message-----
> From: Zhu, Yonghong
> Sent: Monday, October 17, 2016 5:46 PM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>
> Subject: [Patch] BaseTools: Enhance tool to generate
> EFI_HII_IIBT_DUPLICATE image block
> 
> When *.IDF file contains multiple definitions of image which point to the
> same image, current build tool generates multiple image blocks which
> contain the same image content.
> This patch enhance tool to generate EFI_HII_IIBT_DUPLICATE image blocks
> for non-first images for such case, to save the HII package size.
> 
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=145
> 
> Cc: Liming Gao <liming.gao@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Source/Python/AutoGen/GenC.py | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/BaseTools/Source/Python/AutoGen/GenC.py
> b/BaseTools/Source/Python/AutoGen/GenC.py
> index 8089e3a..de6eb0e 100644
> --- a/BaseTools/Source/Python/AutoGen/GenC.py
> +++ b/BaseTools/Source/Python/AutoGen/GenC.py
> @@ -1637,10 +1637,11 @@ def CreateIdfFileCode(Info, AutoGenC, StringH,
> IdfGenCFlag, IdfGenBinBuffer):
>              PaletteInfoOffset = 0
>              ImageBuffer = pack('x')
>              PaletteBuffer = pack('x')
>              BufferStr = ''
>              PaletteStr = ''
> +            FileDict = {}
>              for Idf in ImageFiles.ImageFilesDict:
>                  if ImageFiles.ImageFilesDict[Idf]:
>                      for FileObj in ImageFiles.ImageFilesDict[Idf]:
>                          for sourcefile in Info.SourceFileList:
>                              if FileObj.FileName == sourcefile.File:
> @@ -1661,10 +1662,23 @@ def CreateIdfFileCode(Info, AutoGenC, StringH,
> IdfGenCFlag, IdfGenBinBuffer):
>                              if (ValueStartPtr - len(DEFINE_STR + ID)) <= 0:
>                                  Line = DEFINE_STR + ' ' + ID + ' ' + DecToHexStr(Index, 4) +
> '\n'
>                              else:
>                                  Line = DEFINE_STR + ' ' + ID + ' ' * (ValueStartPtr -
> len(DEFINE_STR + ID)) + DecToHexStr(Index, 4) + '\n'
> 
> +                            if File not in FileDict:
> +                                FileDict[File] = Index
> +                            else:
> +                                DuplicateBlock = pack('B', EFI_HII_IIBT_DUPLICATE)
> +                                DuplicateBlock += pack('H', FileDict[File])
> +                                ImageBuffer += DuplicateBlock
> +                                BufferStr = WriteLine(BufferStr, '// %s: %s: %s' %
> (DecToHexStr(Index, 4), ID, DecToHexStr(Index, 4)))
> +                                TempBufferList = AscToHexList(DuplicateBlock)
> +                                BufferStr = WriteLine(BufferStr,
> CreateArrayItem(TempBufferList, 16) + '\n')
> +                                StringH.Append(Line)
> +                                Index += 1
> +                                continue
> +
>                              TmpFile = open(File.Path, 'rb')
>                              Buffer = TmpFile.read()
>                              TmpFile.close()
>                              if File.Ext.upper() == '.PNG':
>                                  TempBuffer = pack('B', EFI_HII_IIBT_IMAGE_PNG)
> --
> 2.6.1.windows.1



      reply	other threads:[~2016-10-19  1:34 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-17  9:45 [Patch] BaseTools: Enhance tool to generate EFI_HII_IIBT_DUPLICATE image block Yonghong Zhu
2016-10-19  1:34 ` Gao, Liming [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A89E2EF3DFEDB4C8BFDE51014F606A14B49626D@shsmsx102.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox