imagetool: replace image registration function by linker_lists feature

The registration was introduced in commit f86ed6a8d5

This commit also removes all registration functions, and the member "next"
from image_type_params struct

Signed-off-by: Guilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
This commit is contained in:
Guilherme Maciel Ferreira
2015-01-15 02:48:07 -02:00
committed by Tom Rini
parent 067d156075
commit a93648d197
18 changed files with 254 additions and 376 deletions

View File

@@ -19,6 +19,16 @@
#include <time.h>
#include <unistd.h>
#include <u-boot/sha1.h>
/* define __KERNEL__ in order to get the definitions
* required by the linker list. This is probably not
* the best way to do this */
#ifndef __KERNEL__
#define __KERNEL__
#include <linker_lists.h>
#undef __KERNEL__
#endif /* __KERNEL__ */
#include "fdt_host.h"
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
@@ -127,29 +137,8 @@ struct image_type_params {
*/
int (*vrec_header) (struct image_tool_params *,
struct image_type_params *);
/* pointer to the next registered entry in linked list */
struct image_type_params *next;
};
/*
* Tool registration function.
*/
typedef void (*imagetool_register_t)(struct image_type_params *);
/*
* Initializes all image types with the given registration callback
* function.
* An image tool uses this function to initialize all image types.
*/
void register_image_tool(imagetool_register_t image_register);
/*
* Register a image type within a tool.
* An image type uses this function to register itself within
* all tools.
*/
void register_image_type(struct image_type_params *tparams);
/**
* imagetool_get_type() - find the image type params for a given image type
*
@@ -161,9 +150,7 @@ void register_image_type(struct image_type_params *tparams);
* if input type_id is not supported by any of image_type_support
* returns NULL
*/
struct image_type_params *imagetool_get_type(
int type,
struct image_type_params *tparams);
struct image_type_params *imagetool_get_type(int type);
/*
* imagetool_verify_print_header() - verifies the image header
@@ -201,24 +188,37 @@ int imagetool_save_datafile(
/*
* There is a c file associated with supported image type low level code
* for ex. default_image.c, fit_image.c
* init_xxx_type() is the only function referred by image tool core to avoid
* a single lined header file, you can define them here
*
* Supported image types init functions
*/
void init_default_image_type(void);
void init_atmel_image_type(void);
void init_pbl_image_type(void);
void init_ais_image_type(void);
void init_kwb_image_type(void);
void init_imx_image_type(void);
void init_mxs_image_type(void);
void init_fit_image_type(void);
void init_ubl_image_type(void);
void init_omap_image_type(void);
void init_socfpga_image_type(void);
void init_gpimage_type(void);
void pbl_load_uboot(int fd, struct image_tool_params *mparams);
#define U_BOOT_IMAGE_TYPE( \
_id, \
_name, \
_header_size, \
_header, \
_check_params, \
_verify_header, \
_print_header, \
_set_header, \
_extract_datafile, \
_check_image_type, \
_fflag_handle, \
_vrec_header \
) \
ll_entry_declare(struct image_type_params, _id, image_type) = { \
.name = _name, \
.header_size = _header_size, \
.hdr = _header, \
.check_params = _check_params, \
.verify_header = _verify_header, \
.print_header = _print_header, \
.set_header = _set_header, \
.extract_datafile = _extract_datafile, \
.check_image_type = _check_image_type, \
.fflag_handle = _fflag_handle, \
.vrec_header = _vrec_header \
}
#endif /* _IMAGETOOL_H_ */