diff options
Diffstat (limited to 'src/tools/imgtool/imghd.cpp')
-rw-r--r-- | src/tools/imgtool/imghd.cpp | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/src/tools/imgtool/imghd.cpp b/src/tools/imgtool/imghd.cpp index 17e47a7bf87..b868b692c63 100644 --- a/src/tools/imgtool/imghd.cpp +++ b/src/tools/imgtool/imghd.cpp @@ -53,14 +53,14 @@ imgtoolerr_t imghd_create(imgtool::stream &stream, uint32_t hunksize, uint32_t c chd_error rc; chd_codec_type compression[4] = { CHD_CODEC_NONE }; - /* sanity check args */ - if (hunksize >= 2048) + /* sanity check args -- see parse_hunk_size() in src/lib/util/chd.cpp */ + if (hunksize > (1024 * 1024)) { err = IMGTOOLERR_PARAMCORRUPT; return err; } if (hunksize <= 0) - hunksize = 1024; /* default value */ + hunksize = 4096; /* default value */ /* bail if we are read only */ if (stream.is_read_only()) @@ -80,15 +80,6 @@ imgtoolerr_t imghd_create(imgtool::stream &stream, uint32_t hunksize, uint32_t c return err; } - /* open the new hard drive */ - rc = chd.open(*stream.core_file()); - - if (rc != CHDERR_NONE) - { - err = map_chd_error(rc); - return err; - } - /* write the metadata */ const std::string metadata = string_format(HARD_DISK_METADATA_FORMAT, cylinders, heads, sectors, seclen); err = (imgtoolerr_t)chd.write_metadata(HARD_DISK_METADATA_TAG, 0, metadata); @@ -236,7 +227,7 @@ OPTION_GUIDE_START( mess_hd_create_optionguide ) OPTION_INT(mess_hd_createopts_seclen, "seclen", "Sector Bytes" ) OPTION_GUIDE_END -#define mess_hd_create_optionspecs "B[1]-2048;C1-[32]-65536;D1-[8]-64;E1-[128]-4096;F128/256/[512]/1024/2048/4096/8192/16384/32768/65536" +#define mess_hd_create_optionspecs "B1-[4]-2048;C1-[32]-65536;D1-[8]-64;E1-[128]-4096;F128/256/[512]/1024/2048/4096/8192/16384/32768/65536" void hd_get_info(const imgtool_class *imgclass, uint32_t state, union imgtoolinfo *info) @@ -267,5 +258,5 @@ static imgtoolerr_t mess_hd_image_create(imgtool::image &image, imgtool::stream: sectors = createoptions->lookup_int(mess_hd_createopts_sectors); seclen = createoptions->lookup_int(mess_hd_createopts_seclen); - return imghd_create(*stream.get(), blocksize, cylinders, heads, sectors, seclen); + return imghd_create(*stream.get(), blocksize * seclen, cylinders, heads, sectors, seclen); } |