|
@@ -65,70 +65,6 @@ void mkimage_register (struct image_type_params *tparams)
|
|
|
debug ("Registered %s\n", tparams->name);
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * mkimage_get_type -
|
|
|
- *
|
|
|
- * It scans all registers image type supports
|
|
|
- * checks the input type_id for each supported image type
|
|
|
- *
|
|
|
- * if successful,
|
|
|
- * returns respective image_type_params pointer if success
|
|
|
- * if input type_id is not supported by any of image_type_support
|
|
|
- * returns NULL
|
|
|
- */
|
|
|
-struct image_type_params *mkimage_get_type(int type)
|
|
|
-{
|
|
|
- struct image_type_params *curr;
|
|
|
-
|
|
|
- for (curr = mkimage_tparams; curr != NULL; curr = curr->next) {
|
|
|
- if (curr->check_image_type) {
|
|
|
- if (!curr->check_image_type (type))
|
|
|
- return curr;
|
|
|
- }
|
|
|
- }
|
|
|
- return NULL;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * mkimage_verify_print_header -
|
|
|
- *
|
|
|
- * It scans mkimage_tparams link list,
|
|
|
- * verifies image_header for each supported image type
|
|
|
- * if verification is successful, prints respective header
|
|
|
- *
|
|
|
- * returns negative if input image format does not match with any of
|
|
|
- * supported image types
|
|
|
- */
|
|
|
-int mkimage_verify_print_header (void *ptr, struct stat *sbuf)
|
|
|
-{
|
|
|
- int retval = -1;
|
|
|
- struct image_type_params *curr;
|
|
|
-
|
|
|
- for (curr = mkimage_tparams; curr != NULL; curr = curr->next ) {
|
|
|
- if (curr->verify_header) {
|
|
|
- retval = curr->verify_header (
|
|
|
- (unsigned char *)ptr, sbuf->st_size,
|
|
|
- ¶ms);
|
|
|
-
|
|
|
- if (retval == 0) {
|
|
|
- /*
|
|
|
- * Print the image information
|
|
|
- * if verify is successful
|
|
|
- */
|
|
|
- if (curr->print_header)
|
|
|
- curr->print_header (ptr);
|
|
|
- else {
|
|
|
- fprintf (stderr,
|
|
|
- "%s: print_header undefined for %s\n",
|
|
|
- params.cmdname, curr->name);
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return retval;
|
|
|
-}
|
|
|
-
|
|
|
int
|
|
|
main (int argc, char **argv)
|
|
|
{
|
|
@@ -279,7 +215,7 @@ NXTARG: ;
|
|
|
usage ();
|
|
|
|
|
|
/* set tparams as per input type_id */
|
|
|
- tparams = mkimage_get_type(params.type);
|
|
|
+ tparams = imagetool_get_type(params.type, mkimage_tparams);
|
|
|
if (tparams == NULL) {
|
|
|
fprintf (stderr, "%s: unsupported type %s\n",
|
|
|
params.cmdname, genimg_get_type_name(params.type));
|
|
@@ -363,7 +299,8 @@ NXTARG: ;
|
|
|
* Print the image information for matched image type
|
|
|
* Returns the error code if not matched
|
|
|
*/
|
|
|
- retval = mkimage_verify_print_header (ptr, &sbuf);
|
|
|
+ retval = imagetool_verify_print_header(ptr, &sbuf,
|
|
|
+ tparams, ¶ms);
|
|
|
|
|
|
(void) munmap((void *)ptr, sbuf.st_size);
|
|
|
(void) close (ifd);
|
|
@@ -529,7 +466,8 @@ copy_file (int ifd, const char *datafile, int pad)
|
|
|
uint8_t zeros[4096];
|
|
|
int offset = 0;
|
|
|
int size;
|
|
|
- struct image_type_params *tparams = mkimage_get_type (params.type);
|
|
|
+ struct image_type_params *tparams = imagetool_get_type(params.type,
|
|
|
+ mkimage_tparams);
|
|
|
|
|
|
if (pad >= sizeof(zeros)) {
|
|
|
fprintf(stderr, "%s: Can't pad to %d\n",
|