[U-Boot] [PATCH v5 0/20] Add environment call-back and flags capability

Tom Rini trini at ti.com
Fri Dec 14 17:05:51 CET 2012


On Tue, Dec 11, 2012 at 10:16:17PM -0600, Joe Hershberger wrote:

> When a variable with a registered callback is inserted, deleted, or
> overwritten the callback is called and gives the system an opportunity
> to do something in response to the change.  It also has the opportunuty
> to reject the change by returning non-zero.
> 
> The flags on variables can control their type as well as their allowed
> access.
> 
>         The format of the list is:
>                 type_attribute = [s|d|x|b|i|m]
>                 attributes = type_attribute
>                 entry = variable_name[:attributes]
>                 list = entry[,list]
> 
>         The type attributes are:
>                 s - String (default)
>                 d - Decimal
>                 x - Hexadecimal
>                 b - Boolean ([1yYtT|0nNfF])
>                 i - IP address
>                 m - MAC address
> 
>         The access attributes are:
>                 a - Any (default)
>                 r - Read-only
>                 o - Write-once
>                 c - Change-default
> 
> Changes in v5:
> - Manually relocate change_ok() pointer
> - Add support for CONFIG_NEEDS_MANUAL_RELOC boards
> - Fixed comment typo
> - Fixed callbacks command help
> - Compare current callback against pre-relocation address manually
> - Fixed out-of-bounds array access in env_flags_parse_vartype()
> - Fixed out-of-bounds array access in env_flags_parse_varaccess()
> 
> Changes in v4:
> - Prevent crash on relocation import
> - Fixed help text
> - Add help text for env flags command
> - Add force support to setenv
> - Implement delete
> 
> Changes in v3:
> - Rebase onto Gerlando Falauto's env patches
> - Refactor himport_r() and hsearch_r()'s parameters
> - Split hdelete_r() into the core delete and the validation before
> delete
> - Delete vars on failed insertion
> - Use Marek's linker lists instead of implementing it directly
> - Rebase onto latest master
> - Add flags parameter to callbacks
> - Implement reverse search in env_attr_lookup()
> - Fix space skipping in env_attr_lookup()
> - All errors coming back from hsearch_r() are no longer fatal.  Don't
> abort import on failed ENTER action.
> - Removed checkpatch.pl warning
> 
> Changes in v2:
> - Added much-needed documentation
> - Factored out prevch and nextch in env_attr_lookup()
> 
> Joe Hershberger (20):
>   Make linux kernel string funcs available to tools
>   env: Refactor do_apply to a flag
>   env: Consolidate common code in hsearch_r()
>   env: Refactor apply into change_ok
>   env: Use getenv_yesno() more generally
>   env: Hide '.' variables in env print by default
>   env: Add support for callbacks to environment vars
>   env: Add a command to view callbacks
>   env: Add a bootfile env handler
>   env: Add a baudrate env handler
>   env: Add a loadaddr env handler
>   env: Add a console env handler
>   env: Add a silent env handler
>   env: Add environment variable flags
>   tools/env: Add environment variable flags support
>   env: Add a command to display details about env flags
>   env: Add support for access control to .flags
>   env: Add setenv force support
>   env: Implement the env delete command
>   env: Handle write-once ethaddr and serial# generically
> 
>  README                          |  80 ++++++
>  arch/arm/lib/board.c            |   4 +-
>  arch/m68k/lib/board.c           |   3 +-
>  arch/microblaze/lib/board.c     |   4 +-
>  arch/powerpc/cpu/mpc85xx/mp.c   |   4 +-
>  arch/powerpc/lib/board.c        |   9 +-
>  arch/sparc/lib/board.c          |   3 +-
>  board/Marvell/db64360/db64360.c |  10 +-
>  board/Marvell/db64460/db64460.c |  10 +-
>  board/esd/cpci750/cpci750.c     |  10 +-
>  board/esd/pmc440/cmd_pmc440.c   |   2 +-
>  board/gw8260/gw8260.c           |  10 +-
>  board/prodrive/p3mx/p3mx.c      |  10 +-
>  common/Makefile                 |   6 +
>  common/cmd_nvedit.c             | 406 +++++++++++++++++------------
>  common/console.c                |  75 +++++-
>  common/env_attr.c               | 229 ++++++++++++++++
>  common/env_callback.c           | 144 +++++++++++
>  common/env_common.c             |  61 +++--
>  common/env_dataflash.c          |   2 +-
>  common/env_eeprom.c             |   2 +-
>  common/env_fat.c                |   2 +-
>  common/env_flags.c              | 560 ++++++++++++++++++++++++++++++++++++++++
>  common/env_flash.c              |   4 +-
>  common/env_mmc.c                |   2 +-
>  common/env_nand.c               |   4 +-
>  common/env_nvram.c              |   2 +-
>  common/env_onenand.c            |   2 +-
>  common/env_sf.c                 |   4 +-
>  common/image.c                  |  21 +-
>  doc/README.silent               |  14 +-
>  drivers/serial/serial.c         |  70 +++++
>  include/common.h                |   5 +
>  include/env_attr.h              |  55 ++++
>  include/env_callback.h          |  75 ++++++
>  include/env_default.h           |   8 +
>  include/env_flags.h             | 172 ++++++++++++
>  include/environment.h           |  15 +-
>  include/image.h                 |   1 -
>  include/linux/linux_string.h    |   8 +
>  include/linux/string.h          |   5 +-
>  include/search.h                |  37 ++-
>  lib/Makefile                    |   1 +
>  lib/hashtable.c                 | 244 +++++++++++------
>  lib/linux_string.c              |  51 ++++
>  lib/string.c                    |  39 ---
>  net/net.c                       |  49 ++--
>  tools/env/Makefile              |   3 +
>  tools/env/fw_env.c              |  92 +++++--
>  49 files changed, 2182 insertions(+), 447 deletions(-)
>  create mode 100644 common/env_attr.c
>  create mode 100644 common/env_callback.c
>  create mode 100644 common/env_flags.c
>  create mode 100644 include/env_attr.h
>  create mode 100644 include/env_callback.h
>  create mode 100644 include/env_flags.h
>  create mode 100644 include/linux/linux_string.h
>  create mode 100644 lib/linux_string.c

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121214/620a9b9d/attachment.pgp>


More information about the U-Boot mailing list