mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-27 08:33:10 +01:00 
			
		
		
		
	imagetool: make the image_save_datafile() available to all image types
Move the image_save_datafile() function from an U-Multi specific file (default_image.c) to a file common to all image types (image.c). And rename it to genimg_save_datafile(), to make clear it is useful for any image type. Signed-off-by: Guilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 Tom Rini
						Tom Rini
					
				
			
			
				
	
			
			
			
						parent
						
							0ca6691c2e
						
					
				
				
					commit
					067d156075
				
			| @@ -756,7 +756,7 @@ int genimg_get_format(const void *img_addr) | ||||
|  * genimg_get_image - get image from special storage (if necessary) | ||||
|  * @img_addr: image start address | ||||
|  * | ||||
|  * genimg_get_image() checks if provided image start adddress is located | ||||
|  * genimg_get_image() checks if provided image start address is located | ||||
|  * in a dataflash storage. If so, image is moved to a system RAM memory. | ||||
|  * | ||||
|  * returns: | ||||
|   | ||||
| @@ -117,32 +117,6 @@ static void image_set_header(void *ptr, struct stat *sbuf, int ifd, | ||||
| 	image_set_hcrc(hdr, checksum); | ||||
| } | ||||
|  | ||||
| static int image_save_datafile(struct image_tool_params *params, | ||||
| 			       ulong file_data, ulong file_len) | ||||
| { | ||||
| 	int dfd; | ||||
| 	const char *datafile = params->outfile; | ||||
|  | ||||
| 	dfd = open(datafile, O_RDWR | O_CREAT | O_TRUNC | O_BINARY, | ||||
| 		   S_IRUSR | S_IWUSR); | ||||
| 	if (dfd < 0) { | ||||
| 		fprintf(stderr, "%s: Can't open \"%s\": %s\n", | ||||
| 			params->cmdname, datafile, strerror(errno)); | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
| 	if (write(dfd, (void *)file_data, file_len) != (ssize_t)file_len) { | ||||
| 		fprintf(stderr, "%s: Write error on \"%s\": %s\n", | ||||
| 			params->cmdname, datafile, strerror(errno)); | ||||
| 		close(dfd); | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
| 	close(dfd); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static int image_extract_datafile(void *ptr, struct image_tool_params *params) | ||||
| { | ||||
| 	const image_header_t *hdr = (const image_header_t *)ptr; | ||||
| @@ -170,7 +144,7 @@ static int image_extract_datafile(void *ptr, struct image_tool_params *params) | ||||
| 	} | ||||
|  | ||||
| 	/* save the "data file" into the file system */ | ||||
| 	return image_save_datafile(params, file_data, file_len); | ||||
| 	return imagetool_save_datafile(params->outfile, file_data, file_len); | ||||
| } | ||||
|  | ||||
| /* | ||||
|   | ||||
| @@ -113,3 +113,30 @@ int imagetool_verify_print_header( | ||||
|  | ||||
| 	return retval; | ||||
| } | ||||
|  | ||||
| int imagetool_save_datafile( | ||||
| 	const char *file_name, | ||||
| 	ulong file_data, | ||||
| 	ulong file_len) | ||||
| { | ||||
| 	int dfd; | ||||
|  | ||||
| 	dfd = open(file_name, O_RDWR | O_CREAT | O_TRUNC | O_BINARY, | ||||
| 		   S_IRUSR | S_IWUSR); | ||||
| 	if (dfd < 0) { | ||||
| 		fprintf(stderr, "Can't open \"%s\": %s\n", | ||||
| 			file_name, strerror(errno)); | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
| 	if (write(dfd, (void *)file_data, file_len) != (ssize_t)file_len) { | ||||
| 		fprintf(stderr, "Write error on \"%s\": %s\n", | ||||
| 			file_name, strerror(errno)); | ||||
| 		close(dfd); | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
| 	close(dfd); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|   | ||||
| @@ -181,6 +181,23 @@ int imagetool_verify_print_header( | ||||
| 	struct image_type_params *tparams, | ||||
| 	struct image_tool_params *params); | ||||
|  | ||||
| /** | ||||
|  * imagetool_save_datafile - store data into a file | ||||
|  * @file_name: name of the destination file | ||||
|  * @file_data: data to be written | ||||
|  * @file_len: the amount of data to store | ||||
|  * | ||||
|  * imagetool_save_datafile() store file_len bytes of data pointed by file_data | ||||
|  * into the file name by file_name. | ||||
|  * | ||||
|  * returns: | ||||
|  *     zero in case of success or a negative value if fail. | ||||
|  */ | ||||
| int imagetool_save_datafile( | ||||
| 	const char *file_name, | ||||
| 	ulong file_data, | ||||
| 	ulong file_len); | ||||
|  | ||||
| /* | ||||
|  * There is a c file associated with supported image type low level code | ||||
|  * for ex. default_image.c, fit_image.c | ||||
|   | ||||
		Reference in New Issue
	
	Block a user