From e98f308994711b3bc22d70c782bdf800eb253a0f Mon Sep 17 00:00:00 2001 From: Eugeni Dodonov Date: Mon, 17 Oct 2011 17:48:18 -0200 Subject: [PATCH] Allow intel_dump_decode to read data from stdin. Signed-off-by: Eugeni Dodonov --- tools/intel_dump_decode.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tools/intel_dump_decode.c b/tools/intel_dump_decode.c index 012c9441..26d57f56 100644 --- a/tools/intel_dump_decode.c +++ b/tools/intel_dump_decode.c @@ -43,7 +43,10 @@ read_bin_file(uint32_t devid, const char * filename) uint32_t buf[16384]; int fd, offset, ret; - fd = open (filename, O_RDONLY); + if (!strcmp(filename, "-")) + fd = fileno(stdin); + else + fd = open (filename, O_RDONLY); if (fd < 0) { fprintf (stderr, "Failed to open %s: %s\n", filename, strerror (errno)); @@ -69,7 +72,11 @@ read_data_file(uint32_t devid, const char * filename) uint32_t offset, value; uint32_t gtt_offset = 0; - file = fopen (filename, "r"); + if (!strcmp(filename, "-")) + file = stdin; + else + file = fopen (filename, "r"); + if (file == NULL) { fprintf (stderr, "Failed to open %s: %s\n", filename, strerror (errno)); @@ -179,6 +186,11 @@ main (int argc, char *argv[]) } for (i = optind; i < argc; i++) { + /* For stdin input, let's read as data file */ + if (!strcmp(argv[i], "-")) { + read_data_file(devid, argv[i]); + continue; + } if (binary == 1) read_bin_file(devid, argv[i]); else if (binary == 0)