]> git.baikalelectronics.ru Git - uboot.git/commit
fw_env: simplify logic & code paths in the fw_env_open()
authorRafał Miłecki <rafal@milecki.pl>
Wed, 12 Jan 2022 11:47:06 +0000 (12:47 +0100)
committerTom Rini <trini@konsulko.com>
Fri, 11 Feb 2022 16:29:23 +0000 (11:29 -0500)
commitf29add917e7f13f69262065f72fee6a37c2ae770
tree31ea9ef06fec4c1e0108321bc51af40a4eaa8799
parent1214ae91e949c8dd271407ff42b6476170f3323c
fw_env: simplify logic & code paths in the fw_env_open()

Environment variables can be stored in two formats:
1. Single entry with header containing CRC32
2. Two entries with extra flags field in each entry header

For that reason fw_env_open() has two main code paths and there are
pointers for CRC32/flags/data.

Previous implementation was a bit hard to follow:
1. It was checking for used format twice (in reversed order each time)
2. It was setting "environment" global struct fields to some temporary
   values that required extra comments explaining it

This change simplifies that code:
1. It introduces two clear code paths
2. It sets "environment" global struct fields values only once it really
   knows them

To be fair there are *two* crc32() calls now and an extra pointer
variable but that should be cheap enough and worth it.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
tools/env/fw_env.c