From a93648d197df48fa46dd55f925ff70468bd81c71 Mon Sep 17 00:00:00 2001 From: Guilherme Maciel Ferreira Date: Thu, 15 Jan 2015 02:48:07 -0200 Subject: imagetool: replace image registration function by linker_lists feature The registration was introduced in commit f86ed6a8d52c99bb2d17d3cac1647edca0c4399c This commit also removes all registration functions, and the member "next" from image_type_params struct Signed-off-by: Guilherme Maciel Ferreira --- tools/imagetool.h | 80 +++++++++++++++++++++++++++---------------------------- 1 file changed, 40 insertions(+), 40 deletions(-) (limited to 'tools/imagetool.h') diff --git a/tools/imagetool.h b/tools/imagetool.h index 44d9380..8724cb5 100644 --- a/tools/imagetool.h +++ b/tools/imagetool.h @@ -19,6 +19,16 @@ #include #include #include + +/* 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 +#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_ */ -- cgit v1.1