/* Update the default value in the block data which used as Bit VarStore */
VOID UpdateBlockDataArray(IN LIST_ENTRY *BlockLink)
/* Update the default value in the block data which used as Bit VarStore */
VOID UpdateBlockDataArray(IN LIST_ENTRY *BlockLink)
{
  LIST_ENTRY      *Link;
  LIST_ENTRY      *TempLink;
  IFR_BLOCK_DATA  *BlockData;
  IFR_BLOCK_DATA  *NextBlockData;
  UpdateDefaultValue (BlockLink);
  for (Link = BlockLink->ForwardLink; Link != BlockLink; Link = Link->ForwardLink) {
    BlockData = BASE_CR (Link, IFR_BLOCK_DATA, Entry);
    if (!BlockData->IsBitVar) {
      continue;
    }
    for (TempLink = Link->ForwardLink; TempLink != BlockLink; TempLink = TempLink->ForwardLink) {
      NextBlockData = BASE_CR (TempLink, IFR_BLOCK_DATA, Entry);
      if (!NextBlockData->IsBitVar || (NextBlockData->Offset >= BlockData->Offset + BlockData->Width) || (BlockData->Offset >= NextBlockData->Offset + NextBlockData->Width)) {
        continue;
      }
      MergeBlockDefaultValue (BlockData, NextBlockData);
    }
  }
}