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>
This commit is contained in:
Guilherme Maciel Ferreira 2013-12-01 12:43:10 -07:00 committed by Tom Rini
parent f1cc458cf3
commit f86ed6a8d5
14 changed files with 276 additions and 191 deletions

View file

@ -3,7 +3,7 @@
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include "mkimage.h"
#include "imagetool.h"
#include <image.h>
#include "pblimage.h"
@ -242,7 +242,7 @@ static void add_end_cmd(void)
}
}
void pbl_load_uboot(int ifd, struct mkimage_params *params)
void pbl_load_uboot(int ifd, struct image_tool_params *params)
{
FILE *fp_uboot;
int size;
@ -281,7 +281,7 @@ static int pblimage_check_image_types(uint8_t type)
}
static int pblimage_verify_header(unsigned char *ptr, int image_size,
struct mkimage_params *params)
struct image_tool_params *params)
{
struct pbl_header *pbl_hdr = (struct pbl_header *) ptr;
@ -308,7 +308,7 @@ static void pblimage_print_header(const void *ptr)
}
static void pblimage_set_header(void *ptr, struct stat *sbuf, int ifd,
struct mkimage_params *params)
struct image_tool_params *params)
{
/*nothing need to do, pbl_load_uboot takes care of whole file. */
}
@ -327,5 +327,5 @@ static struct image_type_params pblimage_params = {
void init_pbl_image_type(void)
{
pbl_size = 0;
mkimage_register(&pblimage_params);
register_image_type(&pblimage_params);
}