docs: def make_error_block(ec_info, data_block):
      """\
      Creates the error code words for the provided data block.
  
      :param ec_info: ECC information (number of blocks, number of code words etc.)
      :param data_block: Iterable of (integer) code words.
      """
      num_error_words = ec_info.num_total - ec_info.num_data
  
      error_block = bytearray(data_block)
      error_block.extend([0] * num_error_words)
  
      gen = consts.GEN_POLY[num_error_words]
      gen_log = consts.GALIOS_LOG
      gen_exp = consts.GALIOS_EXP
      len_data = len(data_block)
  
      # Extended synthetic division, see http://research.swtch.com/field
      for i in range(len_data):
          coef = error_block[i]
          if coef != 0:  # log(0) is undefined
              lcoef = gen_log[coef]
              for j in range(num_error_words):
                  error_block[i + j + 1] ^= gen_exp[lcoef + gen[j]]
      return error_block[len_data:]