tools: moved code common to all image tools to a separated module.
authorGuilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
Sun, 1 Dec 2013 19:43:10 +0000 (12:43 -0700)
committerTom Rini <trini@ti.com>
Fri, 13 Dec 2013 14:15:32 +0000 (09:15 -0500)
commitf86ed6a8d52c99bb2d17d3cac1647edca0c4399c
tree60918bb807d062bf1ee3771b2ac4ff1057ec5e7a
parentf1cc458cf3b1c972082b14c7901b43300634a78a
tools: moved code common to all image tools to a separated module.

In order to avoid duplicating code and keep only one point of modification,
the functions, structs and defines useful for "dumpimage" were moved from
"mkimage" to a common module called "imagetool".

This modification also weakens the coupling between image types (FIT, IMX, MXS,
and so on) and image tools (mkimage and dumpimage). Any tool may initialize the
"imagetool" through register_image_tool() function, while the image types
register themselves within an image tool using the register_image_type()
function:

                                                      +---------------+
                                               +------|   fit_image   |
 +--------------+          +-----------+       |      +---------------+
 |    mkimage   |--------> |           | <-----+
 +--------------+          |           |              +---------------+
                           | imagetool | <------------|    imximage   |
 +--------------+          |           |              +---------------+
 |  dumpimage   |--------> |           | <-----+
 +--------------+          +-----------+       |      +---------------+
                                               +------| default_image |
                                                      +---------------+

          register_image_tool()           register_image_type()

Also, the struct "mkimage_params" was renamed to "image_tool_params" to make
clear its general purpose.

Signed-off-by: Guilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
14 files changed:
tools/Makefile
tools/aisimage.c
tools/default_image.c
tools/fit_image.c
tools/imagetool.c [new file with mode: 0644]
tools/imagetool.h [new file with mode: 0644]
tools/imximage.c
tools/kwbimage.c
tools/mkimage.c
tools/mkimage.h
tools/mxsimage.c
tools/omapimage.c
tools/pblimage.c
tools/ublimage.c