summaryrefslogtreecommitdiff
path: root/dtc.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2008-05-16 13:22:09 +1000
committerJon Loeliger <jdl@jdl.com>2008-05-19 14:12:01 -0500
commita742aade6a28fbebf7a66448b40b983549897253 (patch)
tree05eb8d2b0dc7caf900ef112ec60b09b4393b51c8 /dtc.c
parentc26015443acaefe0780a3209932e5534cd84a330 (diff)
downloaddtc-a742aade6a28fbebf7a66448b40b983549897253.tar.gz
dtc: Make dt_from_blob() open its own input file, like the other input formats
Currently, main() has a variable for the input file. It used to be that main() would open the input based on command line arguments before passing it to the dt_from_*() function. However, only dt_from_blob() uses this. dt_from_source() opens its own file, and dt_from_fs() interprets the argument as as a directory and does its own opendir() call. Furthermore, main() opened the file with dtc_open_file() but closed it with a direct call to fclose(). Therefore, to improve the interface consistency between the dt_from_*() functions, make dt_from_blob() open and close its own files like the other dt_from_*() functions. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'dtc.c')
-rw-r--r--dtc.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/dtc.c b/dtc.c
index 9b0164c..267d581 100644
--- a/dtc.c
+++ b/dtc.c
@@ -118,7 +118,6 @@ int main(int argc, char *argv[])
int force = 0, check = 0;
const char *arg;
int opt;
- struct dtc_file *inf = NULL;
FILE *outf = NULL;
int outversion = DEFAULT_FDT_VERSION;
int boot_cpuid_phys = 0xfeedbeef;
@@ -186,19 +185,14 @@ int main(int argc, char *argv[])
fprintf(stderr, "DTC: %s->%s on file \"%s\"\n",
inform, outform, arg);
- if (streq(inform, "dts")) {
+ if (streq(inform, "dts"))
bi = dt_from_source(arg);
- } else if (streq(inform, "fs")) {
+ else if (streq(inform, "fs"))
bi = dt_from_fs(arg);
- } else if(streq(inform, "dtb")) {
- inf = dtc_open_file(arg, NULL);
- bi = dt_from_blob(inf->file);
- } else {
+ else if(streq(inform, "dtb"))
+ bi = dt_from_blob(arg);
+ else
die("Unknown input format \"%s\"\n", inform);
- }
-
- if (inf && inf->file != stdin)
- fclose(inf->file);
fill_fullpaths(bi->dt, "");
process_checks(force, bi);