summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author npwoods <npwoods@alumni.carnegiemellon.edu>2017-05-03 21:22:14 -0400
committer Vas Crabb <cuavas@users.noreply.github.com>2017-05-04 11:22:14 +1000
commit19821fa25ad83f39d2218d02686edbbd176cb2a3 (patch)
tree1cf4b9592bad15823c8b8416b29d02562f5dbc86
parentbf0df09e413d1e05623885d309e21a2165ee8724 (diff)
[Imgtool] Fix to MT#6576 (#2275)
* [Imgtool] Fixed issue with 'listfilters' command * [Imgtool] Extremely basic fix to the Imgtool <==> CHD HD bridge This really needs _much_ more work
-rw-r--r--src/tools/imgtool/imghd.cpp5
-rw-r--r--src/tools/imgtool/imghd.h4
-rw-r--r--src/tools/imgtool/main.cpp4
-rw-r--r--src/tools/imgtool/stream.cpp2
-rw-r--r--src/tools/imgtool/stream.h2
5 files changed, 8 insertions, 9 deletions
diff --git a/src/tools/imgtool/imghd.cpp b/src/tools/imgtool/imghd.cpp
index ba1618951a9..17e47a7bf87 100644
--- a/src/tools/imgtool/imghd.cpp
+++ b/src/tools/imgtool/imghd.cpp
@@ -131,16 +131,15 @@ imgtoolerr_t imghd_open(imgtool::stream &stream, struct mess_hard_disk_file *har
imgtoolerr_t err = IMGTOOLERR_SUCCESS;
hard_disk->hard_disk = nullptr;
- hard_disk->chd = nullptr;
- chderr = hard_disk->chd->open(*stream.core_file(), stream.is_read_only());
+ chderr = hard_disk->chd.open(*stream.core_file(), !stream.is_read_only());
if (chderr)
{
err = map_chd_error(chderr);
goto done;
}
- hard_disk->hard_disk = hard_disk_open(hard_disk->chd);
+ hard_disk->hard_disk = hard_disk_open(&hard_disk->chd);
if (!hard_disk->hard_disk)
{
err = IMGTOOLERR_UNEXPECTED;
diff --git a/src/tools/imgtool/imghd.h b/src/tools/imgtool/imghd.h
index d2add05121d..d4ae341af1e 100644
--- a/src/tools/imgtool/imghd.h
+++ b/src/tools/imgtool/imghd.h
@@ -17,7 +17,7 @@ struct mess_hard_disk_file
{
imgtool::stream *stream;
hard_disk_file *hard_disk;
- chd_file *chd;
+ chd_file chd;
};
@@ -25,7 +25,7 @@ struct mess_hard_disk_file
imgtoolerr_t imghd_create(imgtool::stream &stream, uint32_t blocksize, uint32_t cylinders, uint32_t heads, uint32_t sectors, uint32_t seclen);
/* opens a hard disk given an Imgtool stream */
-imgtoolerr_t imghd_open(imgtool::stream &stream, struct mess_hard_disk_file *hard_disk);
+imgtoolerr_t imghd_open(imgtool::stream &stream, mess_hard_disk_file *hard_disk);
/* close a hard disk */
void imghd_close(struct mess_hard_disk_file *disk);
diff --git a/src/tools/imgtool/main.cpp b/src/tools/imgtool/main.cpp
index c6f3056e7f0..9559b687c9d 100644
--- a/src/tools/imgtool/main.cpp
+++ b/src/tools/imgtool/main.cpp
@@ -708,8 +708,8 @@ static int cmd_listfilters(const struct command *c, int argc, char *argv[])
for (i = 0; filters[i]; i++)
{
util::stream_format(std::wcout, L" %-11s%s\n",
- filter_get_info_string(filters[i], FILTINFO_STR_NAME),
- filter_get_info_string(filters[i], FILTINFO_STR_HUMANNAME));
+ wstring_from_utf8(filter_get_info_string(filters[i], FILTINFO_STR_NAME)),
+ wstring_from_utf8(filter_get_info_string(filters[i], FILTINFO_STR_HUMANNAME)));
}
return 0;
diff --git a/src/tools/imgtool/stream.cpp b/src/tools/imgtool/stream.cpp
index 0bcca455010..9a29180c9da 100644
--- a/src/tools/imgtool/stream.cpp
+++ b/src/tools/imgtool/stream.cpp
@@ -492,7 +492,7 @@ uint64_t imgtool::stream::fill(unsigned char b, uint64_t sz)
// is_read_only
//-------------------------------------------------
-int imgtool::stream::is_read_only()
+bool imgtool::stream::is_read_only()
{
return write_protect;
}
diff --git a/src/tools/imgtool/stream.h b/src/tools/imgtool/stream.h
index 4d968ca9551..2b7afbacd5e 100644
--- a/src/tools/imgtool/stream.h
+++ b/src/tools/imgtool/stream.h
@@ -50,7 +50,7 @@ namespace imgtool
static int file_crc(const char *fname, unsigned long *result);
// returns whether a stream is read only or not
- int is_read_only();
+ bool is_read_only();
private:
enum imgtype_t