tools: Add a function to obtain the size of a file

This will be used in mkimage when working out the required size of the FIT
based on the files to be placed into it.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2016-02-22 22:55:49 -07:00 committed by Tom Rini
parent d505a09c1e
commit 3837ce65bd
3 changed files with 36 additions and 2 deletions

View File

@ -164,7 +164,7 @@ skipping those for which keys cannot be found. Also add a comment.
.nf
.B mkimage -f kernel.its -k /public/signing-keys -K u-boot.dtb \\\\
.br
.B -c "Kernel 3.8 image for production devices" kernel.itb
.B -c """Kernel 3.8 image for production devices""" kernel.itb
.fi
.P
@ -175,7 +175,7 @@ with unavailable keys are skipped.
.nf
.B mkimage -F -k /secret/signing-keys -K u-boot.dtb \\\\
.br
.B -c "Kernel 3.8 image for production devices" kernel.itb
.B -c """Kernel 3.8 image for production devices""" kernel.itb
.fi
.SH HOMEPAGE

View File

@ -91,3 +91,25 @@ int imagetool_save_subimage(
return 0;
}
int imagetool_get_filesize(struct image_tool_params *params, const char *fname)
{
struct stat sbuf;
int fd;
fd = open(fname, O_RDONLY | O_BINARY);
if (fd < 0) {
fprintf(stderr, "%s: Can't open %s: %s\n",
params->cmdname, fname, strerror(errno));
return -1;
}
if (fstat(fd, &sbuf) < 0) {
fprintf(stderr, "%s: Can't stat %s: %s\n",
params->cmdname, fname, strerror(errno));
return -1;
}
close(fd);
return sbuf.st_size;
}

View File

@ -181,6 +181,18 @@ int imagetool_save_subimage(
ulong file_data,
ulong file_len);
/**
* imagetool_get_filesize() - Utility function to obtain the size of a file
*
* This function prints a message if an error occurs, showing the error that
* was obtained.
*
* @params: mkimage parameters
* @fname: filename to check
* @return size of file, or -ve value on error
*/
int imagetool_get_filesize(struct image_tool_params *params, const char *fname);
/*
* There is a c file associated with supported image type low level code
* for ex. default_image.c, fit_image.c