summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2016-02-22 22:55:49 -0700
committerTom Rini <trini@konsulko.com>2016-03-14 19:18:27 -0400
commit3837ce65bd57991ebd7f8235db4040596d3125a4 (patch)
treeede2998fd140a6df42046f407add22c86ff14a18 /tools
parentd505a09c1e8fa512aeb3c077048d521f1be302ff (diff)
downloadu-boot-3837ce65bd57991ebd7f8235db4040596d3125a4.tar.gz
u-boot-3837ce65bd57991ebd7f8235db4040596d3125a4.tar.bz2
u-boot-3837ce65bd57991ebd7f8235db4040596d3125a4.zip
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>
Diffstat (limited to 'tools')
-rw-r--r--tools/imagetool.c22
-rw-r--r--tools/imagetool.h12
2 files changed, 34 insertions, 0 deletions
diff --git a/tools/imagetool.c b/tools/imagetool.c
index 4b0b73db52..351211cd53 100644
--- a/tools/imagetool.c
+++ b/tools/imagetool.c
@@ -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;
+}
diff --git a/tools/imagetool.h b/tools/imagetool.h
index e0397f7716..3cf42ac96a 100644
--- a/tools/imagetool.h
+++ b/tools/imagetool.h
@@ -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