diff options
author | 2016-10-16 10:07:32 -0400 | |
---|---|---|
committer | 2016-10-16 10:07:32 -0400 | |
commit | e9b551bac93ef97107d40fb80de65e69fa7577dd (patch) | |
tree | 8931439c6502135586758a63975bdb7f1d3029d9 /src | |
parent | cdec25b5b615d6a8b7f95377a7648a50476b210c (diff) |
[Imgtool] Bulk change: 'imgtool::image *' ==> 'imgtool::image &'
Diffstat (limited to 'src')
25 files changed, 577 insertions, 537 deletions
diff --git a/src/tools/imgtool/iflopimg.cpp b/src/tools/imgtool/iflopimg.cpp index 4863fd130a3..65762312197 100644 --- a/src/tools/imgtool/iflopimg.cpp +++ b/src/tools/imgtool/iflopimg.cpp @@ -102,7 +102,7 @@ struct imgtool_floppy_image -static imgtoolerr_t imgtool_floppy_open_internal(imgtool::image *image, imgtool::stream::ptr &&stream, int noclose) +static imgtoolerr_t imgtool_floppy_open_internal(imgtool::image &image, imgtool::stream::ptr &&stream, int noclose) { floperr_t ferr; imgtoolerr_t err = IMGTOOLERR_SUCCESS; @@ -110,12 +110,12 @@ static imgtoolerr_t imgtool_floppy_open_internal(imgtool::image *image, imgtool: struct imgtool_floppy_image *fimg; const imgtool_class *imgclass; const struct FloppyFormat *format; - imgtoolerr_t (*open)(imgtool::image *image, imgtool::stream *f); + imgtoolerr_t (*open)(imgtool::image &image, imgtool::stream *f); - fimg = (struct imgtool_floppy_image *) image->extra_bytes(); - imgclass = &image->module().imgclass; + fimg = (struct imgtool_floppy_image *) image.extra_bytes(); + imgclass = &image.module().imgclass; format = (const struct FloppyFormat *) imgclass->derived_param; - open = (imgtoolerr_t (*)(imgtool::image *, imgtool::stream *)) imgtool_get_info_ptr(imgclass, IMGTOOLINFO_PTR_FLOPPY_OPEN); + open = (imgtoolerr_t (*)(imgtool::image &, imgtool::stream *)) imgtool_get_info_ptr(imgclass, IMGTOOLINFO_PTR_FLOPPY_OPEN); // extract the pointer f = stream.release(); @@ -145,14 +145,14 @@ done: -static imgtoolerr_t imgtool_floppy_open(imgtool::image *image, imgtool::stream::ptr &&stream) +static imgtoolerr_t imgtool_floppy_open(imgtool::image &image, imgtool::stream::ptr &&stream) { return imgtool_floppy_open_internal(image, std::move(stream), FALSE); } -static imgtoolerr_t imgtool_floppy_create(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *opts) +static imgtoolerr_t imgtool_floppy_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *opts) { floperr_t ferr; imgtoolerr_t err = IMGTOOLERR_SUCCESS; @@ -160,14 +160,14 @@ static imgtoolerr_t imgtool_floppy_create(imgtool::image *image, imgtool::stream struct imgtool_floppy_image *fimg; const imgtool_class *imgclass; const struct FloppyFormat *format; - imgtoolerr_t (*create)(imgtool::image *, imgtool::stream *, util::option_resolution *); - imgtoolerr_t (*open)(imgtool::image *image, imgtool::stream *f); + imgtoolerr_t (*create)(imgtool::image &, imgtool::stream *, util::option_resolution *); + imgtoolerr_t (*open)(imgtool::image &, imgtool::stream *f); - fimg = (struct imgtool_floppy_image *) image->extra_bytes(); - imgclass = &image->module().imgclass; + fimg = (struct imgtool_floppy_image *) image.extra_bytes(); + imgclass = &image.module().imgclass; format = (const struct FloppyFormat *) imgclass->derived_param; - create = (imgtoolerr_t (*)(imgtool::image *, imgtool::stream *, util::option_resolution *)) imgtool_get_info_ptr(imgclass, IMGTOOLINFO_PTR_FLOPPY_CREATE); - open = (imgtoolerr_t (*)(imgtool::image *, imgtool::stream *)) imgtool_get_info_ptr(imgclass, IMGTOOLINFO_PTR_FLOPPY_OPEN); + create = (imgtoolerr_t (*)(imgtool::image &, imgtool::stream *, util::option_resolution *)) imgtool_get_info_ptr(imgclass, IMGTOOLINFO_PTR_FLOPPY_CREATE); + open = (imgtoolerr_t (*)(imgtool::image &, imgtool::stream *)) imgtool_get_info_ptr(imgclass, IMGTOOLINFO_PTR_FLOPPY_OPEN); // extract the pointer f = stream.release(); @@ -205,14 +205,14 @@ done: -static void imgtool_floppy_close(imgtool::image *img) +static void imgtool_floppy_close(imgtool::image &img) { floppy_close(imgtool_floppy(img)); } -static imgtoolerr_t imgtool_floppy_read_sector(imgtool::image *image, UINT32 track, UINT32 head, UINT32 sector, std::vector<UINT8> &buffer) +static imgtoolerr_t imgtool_floppy_read_sector(imgtool::image &image, UINT32 track, UINT32 head, UINT32 sector, std::vector<UINT8> &buffer) { floperr_t ferr; UINT32 sector_size; @@ -236,7 +236,7 @@ static imgtoolerr_t imgtool_floppy_read_sector(imgtool::image *image, UINT32 tra -static imgtoolerr_t imgtool_floppy_write_sector(imgtool::image *image, UINT32 track, UINT32 head, UINT32 sector, const void *buffer, size_t len, int ddam) +static imgtoolerr_t imgtool_floppy_write_sector(imgtool::image &image, UINT32 track, UINT32 head, UINT32 sector, const void *buffer, size_t len, int ddam) { floperr_t ferr; @@ -311,16 +311,16 @@ int imgtool_floppy_make_class(int index, imgtool_class *imgclass) -floppy_image_legacy *imgtool_floppy(imgtool::image *img) +floppy_image_legacy *imgtool_floppy(imgtool::image &img) { struct imgtool_floppy_image *fimg; - fimg = (struct imgtool_floppy_image *) img->extra_bytes(); + fimg = (struct imgtool_floppy_image *) img.extra_bytes(); return fimg->floppy; } -static imgtoolerr_t imgtool_floppy_transfer_sector_tofrom_stream(imgtool::image *img, int head, int track, int sector, int offset, size_t length, imgtool::stream &f, int direction) +static imgtoolerr_t imgtool_floppy_transfer_sector_tofrom_stream(imgtool::image &img, int head, int track, int sector, int offset, size_t length, imgtool::stream &f, int direction) { floperr_t err; floppy_image_legacy *floppy; @@ -353,23 +353,23 @@ done: -imgtoolerr_t imgtool_floppy_read_sector_to_stream(imgtool::image *img, int head, int track, int sector, int offset, size_t length, imgtool::stream &f) +imgtoolerr_t imgtool_floppy_read_sector_to_stream(imgtool::image &img, int head, int track, int sector, int offset, size_t length, imgtool::stream &f) { return imgtool_floppy_transfer_sector_tofrom_stream(img, head, track, sector, offset, length, f, 1); } -imgtoolerr_t imgtool_floppy_write_sector_from_stream(imgtool::image *img, int head, int track, int sector, int offset, size_t length, imgtool::stream &f) +imgtoolerr_t imgtool_floppy_write_sector_from_stream(imgtool::image &img, int head, int track, int sector, int offset, size_t length, imgtool::stream &f) { return imgtool_floppy_transfer_sector_tofrom_stream(img, head, track, sector, offset, length, f, 0); } -void *imgtool_floppy_extrabytes(imgtool::image *img) +void *imgtool_floppy_extrabytes(imgtool::image &img) { struct imgtool_floppy_image *fimg; - fimg = (struct imgtool_floppy_image *) img->extra_bytes(); + fimg = (struct imgtool_floppy_image *) img.extra_bytes(); return fimg + 1; } diff --git a/src/tools/imgtool/iflopimg.h b/src/tools/imgtool/iflopimg.h index 6981d20960d..078a1247ae3 100644 --- a/src/tools/imgtool/iflopimg.h +++ b/src/tools/imgtool/iflopimg.h @@ -29,13 +29,13 @@ enum int imgtool_floppy_make_class(int index, imgtool_class *imgclass); -floppy_image_legacy *imgtool_floppy(imgtool::image *img); +floppy_image_legacy *imgtool_floppy(imgtool::image &img); imgtoolerr_t imgtool_floppy_error(floperr_t err); -imgtoolerr_t imgtool_floppy_read_sector_to_stream(imgtool::image *img, int head, int track, int sector, int offset, size_t length, imgtool::stream &f); -imgtoolerr_t imgtool_floppy_write_sector_from_stream(imgtool::image *img, int head, int track, int sector, int offset, size_t length, imgtool::stream &f); +imgtoolerr_t imgtool_floppy_read_sector_to_stream(imgtool::image &img, int head, int track, int sector, int offset, size_t length, imgtool::stream &f); +imgtoolerr_t imgtool_floppy_write_sector_from_stream(imgtool::image &img, int head, int track, int sector, int offset, size_t length, imgtool::stream &f); -void *imgtool_floppy_extrabytes(imgtool::image *img); +void *imgtool_floppy_extrabytes(imgtool::image &img); #endif /* IFLOPIMG_H */ diff --git a/src/tools/imgtool/imghd.cpp b/src/tools/imgtool/imghd.cpp index 8c3e759a53b..623b4e4c525 100644 --- a/src/tools/imgtool/imghd.cpp +++ b/src/tools/imgtool/imghd.cpp @@ -218,7 +218,7 @@ const hard_disk_info *imghd_get_header(struct mess_hard_disk_file *disk) } -static imgtoolerr_t mess_hd_image_create(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions); +static imgtoolerr_t mess_hd_image_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions); enum { @@ -257,7 +257,7 @@ void hd_get_info(const imgtool_class *imgclass, UINT32 state, union imgtoolinfo -static imgtoolerr_t mess_hd_image_create(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions) +static imgtoolerr_t mess_hd_image_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions) { UINT32 blocksize, cylinders, heads, sectors, seclen; diff --git a/src/tools/imgtool/imgtool.cpp b/src/tools/imgtool/imgtool.cpp index 03f2eaed6e7..2ea415ba369 100644 --- a/src/tools/imgtool/imgtool.cpp +++ b/src/tools/imgtool/imgtool.cpp @@ -382,7 +382,7 @@ imgtoolerr_t imgtool::image::get_geometry(UINT32 *tracks, UINT32 *heads, UINT32 if (!module().get_geometry) return (imgtoolerr_t)(IMGTOOLERR_UNIMPLEMENTED | IMGTOOLERR_SRC_FUNCTIONALITY); - return module().get_geometry(this, tracks, heads, sectors); + return module().get_geometry(*this, tracks, heads, sectors); } @@ -398,7 +398,7 @@ imgtoolerr_t imgtool::image::read_sector(UINT32 track, UINT32 head, if (!module().read_sector) return (imgtoolerr_t)(IMGTOOLERR_UNIMPLEMENTED | IMGTOOLERR_SRC_FUNCTIONALITY); - return module().read_sector(this, track, head, sector, buffer); + return module().read_sector(*this, track, head, sector, buffer); } @@ -414,7 +414,7 @@ imgtoolerr_t imgtool::image::write_sector(UINT32 track, UINT32 head, if (!module().write_sector) return (imgtoolerr_t)(IMGTOOLERR_UNIMPLEMENTED | IMGTOOLERR_SRC_FUNCTIONALITY); - return module().write_sector(this, track, head, sector, buffer, len); + return module().write_sector(*this, track, head, sector, buffer, len); } @@ -445,7 +445,7 @@ imgtoolerr_t imgtool::image::read_block(UINT64 block, void *buffer) if (!module().read_block) return (imgtoolerr_t)(IMGTOOLERR_UNIMPLEMENTED | IMGTOOLERR_SRC_FUNCTIONALITY); - return module().read_block(this, buffer, block); + return module().read_block(*this, buffer, block); } @@ -459,7 +459,7 @@ imgtoolerr_t imgtool::image::write_block(UINT64 block, const void *buffer) if (!module().write_block) return (imgtoolerr_t)(IMGTOOLERR_UNIMPLEMENTED | IMGTOOLERR_SRC_FUNCTIONALITY); - return module().write_block(this, buffer, block); + return module().write_block(*this, buffer, block); } @@ -507,7 +507,7 @@ imgtoolerr_t imgtool::image::list_partitions(imgtool_partition_info *partitions, return (imgtoolerr_t)(IMGTOOLERR_UNIMPLEMENTED | IMGTOOLERR_SRC_FUNCTIONALITY); memset(partitions, '\0', sizeof(*partitions) * len); - return module().list_partitions(this, partitions, len); + return module().list_partitions(*this, partitions, len); } @@ -635,7 +635,7 @@ imgtoolerr_t imgtool::partition::open(imgtool::image &image, int partition_index // retrieve the info on the partitions memset(partition_info, '\0', sizeof(partition_info)); - err = image.module().list_partitions(&image, partition_info, ARRAY_LENGTH(partition_info)); + err = image.module().list_partitions(image, partition_info, ARRAY_LENGTH(partition_info)); if (err) return err; @@ -951,8 +951,8 @@ imgtoolerr_t imgtool::image::internal_open(const imgtool_module *module, const c // actually call create or open err = (read_or_write == OSD_FOPEN_RW_CREATE) - ? module->create(image.get(), std::move(stream), createopts) - : module->open(image.get(), std::move(stream)); + ? module->create(*image, std::move(stream), createopts) + : module->open(*image, std::move(stream)); if (err) { err = markerrorsource(err); @@ -1018,7 +1018,7 @@ imgtool::image::image(const imgtool_module &module, object_pool *pool, void *ext imgtool::image::~image() { if (m_okay_to_close && module().close) - module().close(this); + module().close(*this); pool_free_lib(m_pool); } @@ -1097,7 +1097,7 @@ imgtoolerr_t imgtool::image::info(char *string, size_t len) { string[0] = '\0'; if (module().info) - module().info(this, string, len); + module().info(*this, string, len); } return IMGTOOLERR_SUCCESS; } diff --git a/src/tools/imgtool/library.cpp b/src/tools/imgtool/library.cpp index 64e14722d68..e0bcd05efc7 100644 --- a/src/tools/imgtool/library.cpp +++ b/src/tools/imgtool/library.cpp @@ -69,16 +69,16 @@ void library::add_class(const imgtool_class *imgclass) module->tracks_are_called_cylinders = imgtool_get_info_int(imgclass, IMGTOOLINFO_INT_TRACKS_ARE_CALLED_CYLINDERS) ? 1 : 0; module->writing_untested = imgtool_get_info_int(imgclass, IMGTOOLINFO_INT_WRITING_UNTESTED) ? 1 : 0; module->creation_untested = imgtool_get_info_int(imgclass, IMGTOOLINFO_INT_CREATION_UNTESTED) ? 1 : 0; - module->open = (imgtoolerr_t (*)(imgtool::image *, imgtool::stream::ptr &&)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_OPEN); - module->create = (imgtoolerr_t (*)(imgtool::image *, imgtool::stream::ptr &&, util::option_resolution *)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_CREATE); - module->close = (void (*)(imgtool::image *)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_CLOSE); - module->info = (void (*)(imgtool::image *, char *, size_t)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_INFO); - module->read_sector = (imgtoolerr_t (*)(imgtool::image *, UINT32, UINT32, UINT32, std::vector<UINT8> &)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_READ_SECTOR); - module->write_sector = (imgtoolerr_t (*)(imgtool::image *, UINT32, UINT32, UINT32, const void *, size_t)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_WRITE_SECTOR); - module->get_geometry = (imgtoolerr_t (*)(imgtool::image *, UINT32 *, UINT32 *, UINT32 *))imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_GET_GEOMETRY); - module->read_block = (imgtoolerr_t (*)(imgtool::image *, void *, UINT64)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_READ_BLOCK); - module->write_block = (imgtoolerr_t (*)(imgtool::image *, const void *, UINT64)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_WRITE_BLOCK); - module->list_partitions = (imgtoolerr_t (*)(imgtool::image *, imgtool_partition_info *, size_t)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_LIST_PARTITIONS); + module->open = (imgtoolerr_t (*)(imgtool::image &, imgtool::stream::ptr &&)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_OPEN); + module->create = (imgtoolerr_t (*)(imgtool::image &, imgtool::stream::ptr &&, util::option_resolution *)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_CREATE); + module->close = (void (*)(imgtool::image &)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_CLOSE); + module->info = (void (*)(imgtool::image &, char *, size_t)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_INFO); + module->read_sector = (imgtoolerr_t (*)(imgtool::image &, UINT32, UINT32, UINT32, std::vector<UINT8> &)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_READ_SECTOR); + module->write_sector = (imgtoolerr_t (*)(imgtool::image &, UINT32, UINT32, UINT32, const void *, size_t)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_WRITE_SECTOR); + module->get_geometry = (imgtoolerr_t (*)(imgtool::image &, UINT32 *, UINT32 *, UINT32 *))imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_GET_GEOMETRY); + module->read_block = (imgtoolerr_t (*)(imgtool::image &, void *, UINT64)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_READ_BLOCK); + module->write_block = (imgtoolerr_t (*)(imgtool::image &, const void *, UINT64)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_WRITE_BLOCK); + module->list_partitions = (imgtoolerr_t (*)(imgtool::image &, imgtool_partition_info *, size_t)) imgtool_get_info_fct(imgclass, IMGTOOLINFO_PTR_LIST_PARTITIONS); module->block_size = imgtool_get_info_int(imgclass, IMGTOOLINFO_INT_BLOCK_SIZE); module->createimage_optguide = (const util::option_guide *) imgtool_get_info_ptr(imgclass, IMGTOOLINFO_PTR_CREATEIMAGE_OPTGUIDE); module->createimage_optspec = imgtool_library_strdup_allow_null((const char*)imgtool_get_info_ptr(imgclass, IMGTOOLINFO_STR_CREATEIMAGE_OPTSPEC)); diff --git a/src/tools/imgtool/library.h b/src/tools/imgtool/library.h index c4bfa48e4f7..474b9f4b0e1 100644 --- a/src/tools/imgtool/library.h +++ b/src/tools/imgtool/library.h @@ -254,11 +254,11 @@ union imgtoolinfo void * f; /* generic function pointers */ char * s; /* generic strings */ - imgtoolerr_t (*open) (imgtool::image *image, imgtool::stream::ptr &&stream); - void (*close) (imgtool::image *image); - imgtoolerr_t (*create) (imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *opts); - imgtoolerr_t (*create_partition) (imgtool::image *image, UINT64 first_block, UINT64 block_count); - void (*info) (imgtool::image *image, char *string, size_t len); + imgtoolerr_t (*open) (imgtool::image &image, imgtool::stream::ptr &&stream); + void (*close) (imgtool::image &image); + imgtoolerr_t (*create) (imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *opts); + imgtoolerr_t (*create_partition) (imgtool::image &image, UINT64 first_block, UINT64 block_count); + void (*info) (imgtool::image &image, char *string, size_t len); imgtoolerr_t (*begin_enum) (imgtool::directory *enumeration, const char *path); imgtoolerr_t (*next_enum) (imgtool::directory *enumeration, imgtool_dirent *ent); void (*close_enum) (imgtool::directory *enumeration); @@ -277,12 +277,12 @@ union imgtoolinfo imgtoolerr_t (*get_iconinfo) (imgtool::partition *partition, const char *path, imgtool_iconinfo *iconinfo); imgtoolerr_t (*suggest_transfer) (imgtool::partition *partition, const char *path, imgtool_transfer_suggestion *suggestions, size_t suggestions_length); imgtoolerr_t (*get_chain) (imgtool::partition *partition, const char *path, imgtool_chainent *chain, size_t chain_size); - imgtoolerr_t (*get_geometry) (imgtool::image *image, UINT32 *tracks, UINT32 *heads, UINT32 *sectors); - imgtoolerr_t (*read_sector) (imgtool::image *image, UINT32 track, UINT32 head, UINT32 sector, std::vector<UINT8> &buffer); - imgtoolerr_t (*write_sector) (imgtool::image *image, UINT32 track, UINT32 head, UINT32 sector, const void *buffer, size_t len, int ddam); - imgtoolerr_t (*read_block) (imgtool::image *image, void *buffer, UINT64 block); - imgtoolerr_t (*write_block) (imgtool::image *image, const void *buffer, UINT64 block); - imgtoolerr_t (*list_partitions) (imgtool::image *image, imgtool_partition_info *partitions, size_t len); + imgtoolerr_t (*get_geometry) (imgtool::image &image, UINT32 *tracks, UINT32 *heads, UINT32 *sectors); + imgtoolerr_t (*read_sector) (imgtool::image &image, UINT32 track, UINT32 head, UINT32 sector, std::vector<UINT8> &buffer); + imgtoolerr_t (*write_sector) (imgtool::image &image, UINT32 track, UINT32 head, UINT32 sector, const void *buffer, size_t len, int ddam); + imgtoolerr_t (*read_block) (imgtool::image &image, void *buffer, UINT64 block); + imgtoolerr_t (*write_block) (imgtool::image &image, const void *buffer, UINT64 block); + imgtoolerr_t (*list_partitions) (imgtool::image &image, imgtool_partition_info *partitions, size_t len); int (*approve_filename_char)(unicode_char ch); int (*make_class)(int index, imgtool_class *imgclass); @@ -347,16 +347,16 @@ struct imgtool_module unsigned int writing_untested : 1; /* used when we support writing, but not in main build */ unsigned int creation_untested : 1; /* used when we support creation, but not in main build */ - imgtoolerr_t (*open) (imgtool::image *image, imgtool::stream::ptr &&stream); - void (*close) (imgtool::image *image); - void (*info) (imgtool::image *image, char *string, size_t len); - imgtoolerr_t (*create) (imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *opts); - imgtoolerr_t (*get_geometry) (imgtool::image *image, UINT32 *track, UINT32 *heads, UINT32 *sectors); - imgtoolerr_t (*read_sector) (imgtool::image *image, UINT32 track, UINT32 head, UINT32 sector, std::vector<UINT8> &buffer); - imgtoolerr_t (*write_sector) (imgtool::image *image, UINT32 track, UINT32 head, UINT32 sector, const void *buffer, size_t len); - imgtoolerr_t (*read_block) (imgtool::image *image, void *buffer, UINT64 block); - imgtoolerr_t (*write_block) (imgtool::image *image, const void *buffer, UINT64 block); - imgtoolerr_t (*list_partitions)(imgtool::image *image, imgtool_partition_info *partitions, size_t len); + imgtoolerr_t (*open) (imgtool::image &image, imgtool::stream::ptr &&stream); + void (*close) (imgtool::image &image); + void (*info) (imgtool::image &image, char *string, size_t len); + imgtoolerr_t (*create) (imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *opts); + imgtoolerr_t (*get_geometry) (imgtool::image &image, UINT32 *track, UINT32 *heads, UINT32 *sectors); + imgtoolerr_t (*read_sector) (imgtool::image &image, UINT32 track, UINT32 head, UINT32 sector, std::vector<UINT8> &buffer); + imgtoolerr_t (*write_sector) (imgtool::image &image, UINT32 track, UINT32 head, UINT32 sector, const void *buffer, size_t len); + imgtoolerr_t (*read_block) (imgtool::image &image, void *buffer, UINT64 block); + imgtoolerr_t (*write_block) (imgtool::image &image, const void *buffer, UINT64 block); + imgtoolerr_t (*list_partitions)(imgtool::image &image, imgtool_partition_info *partitions, size_t len); UINT32 block_size; diff --git a/src/tools/imgtool/modules/amiga.cpp b/src/tools/imgtool/modules/amiga.cpp index ed2080bb994..021f44c6ca8 100644 --- a/src/tools/imgtool/modules/amiga.cpp +++ b/src/tools/imgtool/modules/amiga.cpp @@ -230,11 +230,11 @@ struct amiga_iterator *****************************************************************************/ -static imgtoolerr_t amiga_image_read_sector(imgtool::image* img, +static imgtoolerr_t amiga_image_read_sector(imgtool::image &img, UINT32 track, UINT32 head, UINT32 sector, void *buf, size_t len); -static imgtoolerr_t amiga_image_read_sector(imgtool::image* img, +static imgtoolerr_t amiga_image_read_sector(imgtool::image &img, UINT32 track, UINT32 head, UINT32 sector, std::vector<UINT8> &buffer); -static imgtoolerr_t amiga_image_write_sector(imgtool::image* img, +static imgtoolerr_t amiga_image_write_sector(imgtool::image &img, UINT32 track, UINT32 head, UINT32 sector, const void *buf, size_t len, int ddam); @@ -398,10 +398,17 @@ static UINT32 block_checksum(UINT8 *buffer, int length) } +/* Get Amiga floppy data */ +static amiga_floppy *get_amiga_floppy(imgtool::image &image) +{ + return (amiga_floppy *)image.extra_bytes(); +} + + /* Returns the total number of blocks in the image */ -static int get_total_blocks(imgtool::image *img) +static int get_total_blocks(imgtool::image &img) { - amiga_floppy *f = (amiga_floppy *)img->extra_bytes(); + amiga_floppy *f = get_amiga_floppy(img); return 2 * 80 * f->sectors; } @@ -418,12 +425,12 @@ static void find_block(amiga_floppy *f, int block, int *track, /* Generic read block */ -static imgtoolerr_t read_block(imgtool::image *img, int block, UINT8 *buffer) +static imgtoolerr_t read_block(imgtool::image &img, int block, UINT8 *buffer) { imgtoolerr_t ret; int track, head, sector; - find_block((amiga_floppy *) img->extra_bytes(), block, &track, &head, §or); + find_block(get_amiga_floppy(img), block, &track, &head, §or); /* get block from image */ ret = amiga_image_read_sector(img, track, head, sector, buffer, BSIZE); @@ -434,12 +441,12 @@ static imgtoolerr_t read_block(imgtool::image *img, int block, UINT8 *buffer) /* Generic write block */ -static imgtoolerr_t write_block(imgtool::image *img, int block, const UINT8 *buffer) +static imgtoolerr_t write_block(imgtool::image &img, int block, const UINT8 *buffer) { imgtoolerr_t ret; int track, head, sector; - find_block((amiga_floppy *)img->extra_bytes(), block, &track, &head, §or); + find_block(get_amiga_floppy(img), block, &track, &head, §or); /* write block to image */ ret = amiga_image_write_sector(img, track, head, sector, buffer, BSIZE, 0); @@ -450,7 +457,7 @@ static imgtoolerr_t write_block(imgtool::image *img, int block, const UINT8 *buf /* Return the type a block */ -static sec_type get_block_type(imgtool::image *img, int block) +static sec_type get_block_type(imgtool::image &img, int block) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -474,7 +481,7 @@ static sec_type get_block_type(imgtool::image *img, int block) /* Read a bitmap block */ -static imgtoolerr_t read_bitmap_block(imgtool::image *img, int block, bitmap_block *bm) +static imgtoolerr_t read_bitmap_block(imgtool::image &img, int block, bitmap_block *bm) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -492,7 +499,7 @@ static imgtoolerr_t read_bitmap_block(imgtool::image *img, int block, bitmap_blo /* Write a bitmap block */ -static imgtoolerr_t write_bitmap_block(imgtool::image *img, int block, const bitmap_block *bm) +static imgtoolerr_t write_bitmap_block(imgtool::image &img, int block, const bitmap_block *bm) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -530,7 +537,7 @@ static imgtoolerr_t read_bitmap_ext_block(imgtool::image *img, int block, bitmap /* Read the root block */ -static imgtoolerr_t read_root_block(imgtool::image *img, root_block *root) +static imgtoolerr_t read_root_block(imgtool::image &img, root_block *root) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -558,7 +565,7 @@ static imgtoolerr_t read_root_block(imgtool::image *img, root_block *root) } -static imgtoolerr_t write_root_block(imgtool::image *img, const root_block *root) +static imgtoolerr_t write_root_block(imgtool::image &img, const root_block *root) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -595,7 +602,7 @@ static imgtoolerr_t write_root_block(imgtool::image *img, const root_block *root /* Read a file block */ -static imgtoolerr_t read_file_block(imgtool::image *img, int block, file_block *fb) +static imgtoolerr_t read_file_block(imgtool::image &img, int block, file_block *fb) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -629,7 +636,7 @@ static imgtoolerr_t read_file_block(imgtool::image *img, int block, file_block * } -static imgtoolerr_t read_file_ext_block(imgtool::image *img, int block, file_ext_block *fe) +static imgtoolerr_t read_file_ext_block(imgtool::image &img, int block, file_ext_block *fe) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -650,7 +657,7 @@ static imgtoolerr_t read_file_ext_block(imgtool::image *img, int block, file_ext } -static imgtoolerr_t read_data_block(imgtool::image *img, int block, data_block *d) +static imgtoolerr_t read_data_block(imgtool::image &img, int block, data_block *d) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -672,7 +679,7 @@ static imgtoolerr_t read_data_block(imgtool::image *img, int block, data_block * /* Read a directory block */ -static imgtoolerr_t read_dir_block(imgtool::image *img, int block, dir_block *db) +static imgtoolerr_t read_dir_block(imgtool::image &img, int block, dir_block *db) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -702,7 +709,7 @@ static imgtoolerr_t read_dir_block(imgtool::image *img, int block, dir_block *db } -static imgtoolerr_t write_dir_block(imgtool::image *img, int block, const dir_block *db) +static imgtoolerr_t write_dir_block(imgtool::image &img, int block, const dir_block *db) { UINT8 buffer[BSIZE]; @@ -735,7 +742,7 @@ static imgtoolerr_t write_dir_block(imgtool::image *img, int block, const dir_bl } -static imgtoolerr_t read_hardlink_block(imgtool::image *img, int block, hardlink_block *hl) +static imgtoolerr_t read_hardlink_block(imgtool::image &img, int block, hardlink_block *hl) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -763,7 +770,7 @@ static imgtoolerr_t read_hardlink_block(imgtool::image *img, int block, hardlink } -static imgtoolerr_t read_softlink_block(imgtool::image *img, int block, softlink_block *sl) +static imgtoolerr_t read_softlink_block(imgtool::image &img, int block, softlink_block *sl) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -790,7 +797,7 @@ static imgtoolerr_t read_softlink_block(imgtool::image *img, int block, softlink /* Returns the disk type */ -static disk_type get_disk_type(imgtool::image *img) +static disk_type get_disk_type(imgtool::image &img) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -812,7 +819,7 @@ static disk_type get_disk_type(imgtool::image *img) /* Returns TRUE if the disk is formatted with the FastFileSystem */ -static int is_ffs(imgtool::image *img) +static int is_ffs(imgtool::image &img) { disk_type t = get_disk_type(img); @@ -823,7 +830,7 @@ static int is_ffs(imgtool::image *img) /* Returns TRUE if the disk uses the international mode */ -static int is_intl(imgtool::image *img) +static int is_intl(imgtool::image &img) { disk_type t = get_disk_type(img); @@ -844,7 +851,7 @@ static int is_dirc(imgtool::image *img) } #endif -static imgtoolerr_t get_hash_table(imgtool::image *img, int block, UINT32 *ht) +static imgtoolerr_t get_hash_table(imgtool::image &img, int block, UINT32 *ht) { imgtoolerr_t ret; @@ -884,7 +891,7 @@ static imgtoolerr_t get_hash_table(imgtool::image *img, int block, UINT32 *ht) } -static imgtoolerr_t set_hash_table(imgtool::image *img, int block, const UINT32 *ht) +static imgtoolerr_t set_hash_table(imgtool::image &img, int block, const UINT32 *ht) { UINT8 buffer[BSIZE]; imgtoolerr_t ret; @@ -910,7 +917,7 @@ static imgtoolerr_t get_root_hash_table(imgtool::image *img, UINT32 *ht) } #endif -static imgtoolerr_t get_blockname(imgtool::image *img, int block, char *dest) +static imgtoolerr_t get_blockname(imgtool::image &img, int block, char *dest) { UINT8 buffer[BSIZE]; imgtoolerr_t ret; @@ -927,7 +934,7 @@ static imgtoolerr_t get_blockname(imgtool::image *img, int block, char *dest) } -static imgtoolerr_t get_hash_chain(imgtool::image *img, int block, UINT32 *chain) +static imgtoolerr_t get_hash_chain(imgtool::image &img, int block, UINT32 *chain) { UINT8 buffer[BSIZE]; imgtoolerr_t ret; @@ -943,7 +950,7 @@ static imgtoolerr_t get_hash_chain(imgtool::image *img, int block, UINT32 *chain } -static imgtoolerr_t set_hash_chain(imgtool::image *img, int block, UINT32 chain) +static imgtoolerr_t set_hash_chain(imgtool::image &img, int block, UINT32 chain) { UINT8 buffer[BSIZE]; imgtoolerr_t ret; @@ -963,7 +970,7 @@ static imgtoolerr_t set_hash_chain(imgtool::image *img, int block, UINT32 chain) } -static imgtoolerr_t walk_hash_chain(imgtool::image *img, const char *path, int start_block, int *prev_block, int *block) +static imgtoolerr_t walk_hash_chain(imgtool::image &img, const char *path, int start_block, int *prev_block, int *block) { imgtoolerr_t err; UINT32 hash_chain; @@ -1065,7 +1072,7 @@ static imgtoolerr_t walk_hash_chain(imgtool::image *img, const char *path, int s /* Returns the block number for a dir/file/link entry given as NUL delimited * list of path parts, for example "dir1\0dir2\0dir3" returns the block number * for directory "dir3" */ -static imgtoolerr_t find_entry(imgtool::image *img, const char *path, int start_block, int *block) +static imgtoolerr_t find_entry(imgtool::image &img, const char *path, int start_block, int *block) { imgtoolerr_t ret; const char *next_path; @@ -1127,7 +1134,7 @@ static imgtoolerr_t find_entry(imgtool::image *img, const char *path, int start_ } -static imgtoolerr_t get_block_chksum(imgtool::image *img, int block, UINT32 *chksum, int bitmap) +static imgtoolerr_t get_block_chksum(imgtool::image &img, int block, UINT32 *chksum, int bitmap) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -1153,7 +1160,7 @@ static imgtoolerr_t get_block_chksum(imgtool::image *img, int block, UINT32 *chk } -static imgtoolerr_t fix_chksum(imgtool::image *img, int block, int bitmap) +static imgtoolerr_t fix_chksum(imgtool::image &img, int block, int bitmap) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -1185,20 +1192,20 @@ static imgtoolerr_t fix_chksum(imgtool::image *img, int block, int bitmap) } -static imgtoolerr_t fix_block_chksum(imgtool::image *img, int block) +static imgtoolerr_t fix_block_chksum(imgtool::image &img, int block) { return fix_chksum(img, block, FALSE); } -static imgtoolerr_t fix_bitmap_chksum(imgtool::image *img, int block) +static imgtoolerr_t fix_bitmap_chksum(imgtool::image &img, int block) { return fix_chksum(img, block, TRUE); } /* Set a block as used */ -static imgtoolerr_t bitmap_mark(imgtool::image *img, int block, int used) +static imgtoolerr_t bitmap_mark(imgtool::image &img, int block, int used) { imgtoolerr_t ret; bitmap_block bm; @@ -1242,19 +1249,19 @@ static imgtoolerr_t bitmap_mark(imgtool::image *img, int block, int used) } -static imgtoolerr_t bitmap_mark_used(imgtool::image *img, int block) +static imgtoolerr_t bitmap_mark_used(imgtool::image &img, int block) { return bitmap_mark(img, block, TRUE); } -static imgtoolerr_t bitmap_mark_free(imgtool::image *img, int block) +static imgtoolerr_t bitmap_mark_free(imgtool::image &img, int block) { return bitmap_mark(img, block, FALSE); } -static imgtoolerr_t update_block_modified_date(imgtool::image *img, int block) +static imgtoolerr_t update_block_modified_date(imgtool::image &img, int block) { UINT8 buffer[BSIZE]; imgtoolerr_t ret; @@ -1281,7 +1288,7 @@ static imgtoolerr_t update_block_modified_date(imgtool::image *img, int block) } -static imgtoolerr_t clear_hash_table_entry(imgtool::image *img, int parent, char *filename) +static imgtoolerr_t clear_hash_table_entry(imgtool::image &img, int parent, char *filename) { imgtoolerr_t ret; UINT32 ht[TSIZE], chain; @@ -1401,7 +1408,7 @@ static imgtoolerr_t walk_bitmap_ext_blocks(imgtool::image *img, int start, int * /* Searches for a block marked as free * TODO: bm_ext support for HDs */ -static imgtoolerr_t find_free_block(imgtool::image *img, int *block) +static imgtoolerr_t find_free_block(imgtool::image &img, int *block) { imgtoolerr_t ret; root_block root; @@ -1434,7 +1441,7 @@ static imgtoolerr_t find_free_block(imgtool::image *img, int *block) } -static imgtoolerr_t add_entry(imgtool::image *img, int parent, int block) +static imgtoolerr_t add_entry(imgtool::image &img, int parent, int block) { imgtoolerr_t ret; UINT32 ht[TSIZE]; @@ -1469,7 +1476,7 @@ static imgtoolerr_t add_entry(imgtool::image *img, int parent, int block) /* Recursively create new directory entries */ -static imgtoolerr_t makedir(imgtool::image *img, const char *path, int parent) +static imgtoolerr_t makedir(imgtool::image &img, const char *path, int parent) { imgtoolerr_t ret; dir_block dir; @@ -1523,7 +1530,7 @@ static imgtoolerr_t makedir(imgtool::image *img, const char *path, int parent) /* Recursively checks the path parts and creates directories for them */ -static imgtoolerr_t checkdir(imgtool::image *img, const char *path, int parent) +static imgtoolerr_t checkdir(imgtool::image &img, const char *path, int parent) { imgtoolerr_t ret; int block; @@ -1567,7 +1574,7 @@ static imgtoolerr_t checkdir(imgtool::image *img, const char *path, int parent) /* Writes the file data from the specified block into the stream */ -static imgtoolerr_t write_file_block_data(imgtool::image *img, int block, int size, imgtool::stream &destf) +static imgtoolerr_t write_file_block_data(imgtool::image &img, int block, int size, imgtool::stream &destf) { imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -1615,7 +1622,7 @@ static imgtoolerr_t write_file_block_data(imgtool::image *img, int block, int si } -static imgtoolerr_t walk_data_block_ptr(imgtool::image *img, UINT32 *ptr, int *filesize, imgtool::stream *destf, bool write) +static imgtoolerr_t walk_data_block_ptr(imgtool::image &img, UINT32 *ptr, int *filesize, imgtool::stream *destf, bool write) { int i, blocksize = is_ffs(img) ? BSIZE : BSIZE-24; imgtoolerr_t ret; @@ -1646,20 +1653,20 @@ static imgtoolerr_t walk_data_block_ptr(imgtool::image *img, UINT32 *ptr, int *f } -static imgtoolerr_t write_data_block_ptr(imgtool::image *img, UINT32 *ptr, int *filesize, imgtool::stream &destf) +static imgtoolerr_t write_data_block_ptr(imgtool::image &img, UINT32 *ptr, int *filesize, imgtool::stream &destf) { return walk_data_block_ptr(img, ptr, filesize, &destf, true); } /* Marks all blocks pointed to by the data block pointers as free */ -static imgtoolerr_t clear_data_block_ptr(imgtool::image *img, UINT32 *ptr, int *filesize) +static imgtoolerr_t clear_data_block_ptr(imgtool::image &img, UINT32 *ptr, int *filesize) { return walk_data_block_ptr(img, ptr, filesize, nullptr, false); } -static imgtoolerr_t walk_file_ext_data(imgtool::image *img, int block, int *filesize, imgtool::stream *destf, int write) +static imgtoolerr_t walk_file_ext_data(imgtool::image &img, int block, int *filesize, imgtool::stream *destf, int write) { file_ext_block file_ext; imgtoolerr_t ret; @@ -1698,20 +1705,20 @@ static imgtoolerr_t walk_file_ext_data(imgtool::image *img, int block, int *file } -static imgtoolerr_t write_file_ext_data(imgtool::image *img, int block, int *filesize, imgtool::stream *destf) +static imgtoolerr_t write_file_ext_data(imgtool::image &img, int block, int *filesize, imgtool::stream *destf) { return walk_file_ext_data(img, block, filesize, destf, TRUE); } -static imgtoolerr_t clear_file_ext_data(imgtool::image *img, int block, int *filesize) +static imgtoolerr_t clear_file_ext_data(imgtool::image &img, int block, int *filesize) { return walk_file_ext_data(img, block, filesize, NULL, FALSE); } /* Updates the disk alteration date stored in the root block */ -static imgtoolerr_t update_disk_alteration_date(imgtool::image *img) +static imgtoolerr_t update_disk_alteration_date(imgtool::image &img) { imgtoolerr_t ret; root_block root; @@ -1742,9 +1749,9 @@ static imgtoolerr_t update_disk_alteration_date(imgtool::image *img) *****************************************************************************/ -static imgtoolerr_t amiga_image_open(imgtool::image *img, imgtool::stream::ptr &&stream) +static imgtoolerr_t amiga_image_open(imgtool::image &img, imgtool::stream::ptr &&stream) { - amiga_floppy *f = (amiga_floppy *) img->extra_bytes(); + amiga_floppy *f = get_amiga_floppy(img); UINT64 size = stream->size(); f->sectors = size/BSIZE/80/2; @@ -1759,15 +1766,15 @@ static imgtoolerr_t amiga_image_open(imgtool::image *img, imgtool::stream::ptr & } -static void amiga_image_exit(imgtool::image *img) +static void amiga_image_exit(imgtool::image &img) { - amiga_floppy *f = (amiga_floppy *)img->extra_bytes(); + amiga_floppy *f = get_amiga_floppy(img); if (f->stream) delete f->stream; } -static void amiga_image_info(imgtool::image *img, char *string, size_t len) +static void amiga_image_info(imgtool::image &img, char *string, size_t len) { imgtoolerr_t ret; root_block root; @@ -1799,9 +1806,9 @@ static void amiga_image_info(imgtool::image *img, char *string, size_t len) } -static imgtoolerr_t amiga_image_read_sector(imgtool::image* img, UINT32 track, UINT32 head, UINT32 sector, void *buf, size_t len) +static imgtoolerr_t amiga_image_read_sector(imgtool::image &img, UINT32 track, UINT32 head, UINT32 sector, void *buf, size_t len) { - amiga_floppy *f = (amiga_floppy *) img->extra_bytes(); + amiga_floppy *f = get_amiga_floppy(img); /* skip ahead to the area we want to read */ f->stream->seek(track * (head+1) * f->sectors * BSIZE + sector * BSIZE, SEEK_CUR); @@ -1818,7 +1825,7 @@ static imgtoolerr_t amiga_image_read_sector(imgtool::image* img, UINT32 track, U } -static imgtoolerr_t amiga_image_read_sector(imgtool::image* img, +static imgtoolerr_t amiga_image_read_sector(imgtool::image &img, UINT32 track, UINT32 head, UINT32 sector, std::vector<UINT8> &buffer) { try { buffer.resize(BSIZE); } @@ -1828,9 +1835,9 @@ static imgtoolerr_t amiga_image_read_sector(imgtool::image* img, } -static imgtoolerr_t amiga_image_write_sector(imgtool::image* img, UINT32 track, UINT32 head, UINT32 sector, const void *buf, size_t len, int ddam) +static imgtoolerr_t amiga_image_write_sector(imgtool::image &img, UINT32 track, UINT32 head, UINT32 sector, const void *buf, size_t len, int ddam) { - amiga_floppy *f = (amiga_floppy *) img->extra_bytes(); + amiga_floppy *f = get_amiga_floppy(img); /* skip ahead to the area we want to write */ f->stream->seek(track * (head+1) * f->sectors * BSIZE + sector * BSIZE, SEEK_CUR); @@ -1850,7 +1857,7 @@ static imgtoolerr_t amiga_image_write_sector(imgtool::image* img, UINT32 track, static imgtoolerr_t amiga_image_beginenum(imgtool::directory *enumeration, const char *path) { - int blocks = get_total_blocks(&enumeration->image()); + int blocks = get_total_blocks(enumeration->image()); imgtoolerr_t ret; amiga_iterator *iter; @@ -1864,7 +1871,7 @@ static imgtoolerr_t amiga_image_beginenum(imgtool::directory *enumeration, const if (path[0]) { /* search for the directory block, start with the root block */ - ret = find_entry(&enumeration->image(), path, blocks/2, &iter->block); + ret = find_entry(enumeration->image(), path, blocks/2, &iter->block); if (ret) return ret; } else @@ -1892,7 +1899,7 @@ static imgtoolerr_t amiga_image_nextenum(imgtool::directory *enumeration, imgtoo } /* get hash table */ - ret = get_hash_table(&enumeration->image(), iter->block, ht); + ret = get_hash_table(enumeration->image(), iter->block, ht); if (ret) return ret; /* skip empty hash table entries */ @@ -1910,14 +1917,14 @@ static imgtoolerr_t amiga_image_nextenum(imgtool::directory *enumeration, imgtoo /* get block number */ block = (iter->next_block == 0) ? ht[iter->ht_index] : iter->next_block; - switch (get_block_type(&enumeration->image(), block)) + switch (get_block_type(enumeration->image(), block)) { case ST_FILE: { file_block file; /* get block */ - ret = read_file_block(&enumeration->image(), block, &file); + ret = read_file_block(enumeration->image(), block, &file); if (ret) return ret; /* fill directory entry */ @@ -1937,7 +1944,7 @@ static imgtoolerr_t amiga_image_nextenum(imgtool::directory *enumeration, imgtoo dir_block dir; /* get block */ - ret = read_dir_block(&enumeration->image(), block, &dir); + ret = read_dir_block(enumeration->image(), block, &dir); if (ret) return ret; /* fill directory entry */ @@ -1957,7 +1964,7 @@ static imgtoolerr_t amiga_image_nextenum(imgtool::directory *enumeration, imgtoo softlink_block sl; /* get block */ - ret = read_softlink_block(&enumeration->image(), block, &sl); + ret = read_softlink_block(enumeration->image(), block, &sl); if (ret) return ret; /* fill directory entry */ @@ -1981,14 +1988,14 @@ static imgtoolerr_t amiga_image_nextenum(imgtool::directory *enumeration, imgtoo hardlink_block hl; /* get block */ - ret = read_hardlink_block(&enumeration->image(), block, &hl); + ret = read_hardlink_block(enumeration->image(), block, &hl); if (ret) return ret; /* get filesize from linked file */ if (!ent->directory) { file_block file; - ret = read_file_block(&enumeration->image(), hl.real_entry, &file); + ret = read_file_block(enumeration->image(), hl.real_entry, &file); if (ret) return ret; ent->filesize = file.byte_size; } @@ -2031,7 +2038,7 @@ static void amiga_image_closeenum(imgtool::directory *enumeration) static imgtoolerr_t amiga_image_freespace(imgtool::partition *partition, UINT64 *size) { imgtoolerr_t ret; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); const int data_size = is_ffs(image) ? BSIZE : BSIZE-24; root_block root; bitmap_block bm; @@ -2084,7 +2091,7 @@ static imgtoolerr_t amiga_image_freespace(imgtool::partition *partition, UINT64 static imgtoolerr_t amiga_image_readfile(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &destf) { - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); imgtoolerr_t ret; file_block file; int filesize, block; @@ -2121,7 +2128,7 @@ static imgtoolerr_t amiga_image_readfile(imgtool::partition *partition, const ch * cleared, but the bitmap blocks are updated. */ static imgtoolerr_t amiga_image_deletefile(imgtool::partition *partition, const char *fname) { - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); imgtoolerr_t ret; int parent, block; char filename[31]; @@ -2198,9 +2205,9 @@ static imgtoolerr_t amiga_image_writefile(imgtool::partition *partition, const c } -static imgtoolerr_t amiga_image_create(imgtool::image *img, imgtool::stream::ptr &&stream, util::option_resolution *opts) +static imgtoolerr_t amiga_image_create(imgtool::image &img, imgtool::stream::ptr &&stream, util::option_resolution *opts) { - amiga_floppy *f = (amiga_floppy *) img->extra_bytes(); + amiga_floppy *f = get_amiga_floppy(img); const std::string &dskname = opts->lookup_string('N'); imgtoolerr_t ret; UINT8 buffer[BSIZE]; @@ -2306,7 +2313,7 @@ static imgtoolerr_t amiga_image_create(imgtool::image *img, imgtool::stream::ptr static imgtoolerr_t amiga_image_createdir(imgtool::partition *partition, const char *path) { - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); imgtoolerr_t ret; /* Create directories */ diff --git a/src/tools/imgtool/modules/bml3.cpp b/src/tools/imgtool/modules/bml3.cpp index 853b771896a..94a076a72ba 100644 --- a/src/tools/imgtool/modules/bml3.cpp +++ b/src/tools/imgtool/modules/bml3.cpp @@ -76,14 +76,14 @@ static imgtoolerr_t bml3_diskimage_deletefile(imgtool::partition *partition, con Imgtool module code *********************************************************************/ -static bml3_diskinfo *bml3_get_diskinfo(imgtool::image *image) +static bml3_diskinfo *bml3_get_diskinfo(imgtool::image &image) { return (bml3_diskinfo *) imgtool_floppy_extrabytes(image); } -static int max_dirents(imgtool::image *image) +static int max_dirents(imgtool::image &image) { bml3_diskinfo *info = bml3_get_diskinfo(image); return (16 * info->heads + 1 - info->dirent_start_sector)*(info->sector_size/32); @@ -91,7 +91,7 @@ static int max_dirents(imgtool::image *image) -static void dirent_location(imgtool::image *image, int index_loc, UINT8 *head, UINT8 *track, UINT8 *sector, UINT8 *offset) +static void dirent_location(imgtool::image &image, int index_loc, UINT8 *head, UINT8 *track, UINT8 *sector, UINT8 *offset) { bml3_diskinfo *info = bml3_get_diskinfo(image); *track = 20; @@ -107,7 +107,7 @@ static void dirent_location(imgtool::image *image, int index_loc, UINT8 *head, U -static floperr_t get_bml3_dirent(imgtool::image *f, int index_loc, struct bml3_dirent *ent) +static floperr_t get_bml3_dirent(imgtool::image &f, int index_loc, struct bml3_dirent *ent) { floperr_t err; UINT8 head, track, sector, offset; @@ -139,7 +139,7 @@ static floperr_t get_bml3_dirent(imgtool::image *f, int index_loc, struct bml3_d -static floperr_t put_bml3_dirent(imgtool::image *f, int index_loc, const struct bml3_dirent *ent) +static floperr_t put_bml3_dirent(imgtool::image &f, int index_loc, const struct bml3_dirent *ent) { floperr_t err; UINT8 head, track, sector, offset; @@ -194,7 +194,7 @@ static void get_dirent_fname(char *fnamebuf, const struct bml3_dirent *ent) -static imgtoolerr_t lookup_bml3_file(imgtool::image *f, const char *fname, struct bml3_dirent *ent, int *position) +static imgtoolerr_t lookup_bml3_file(imgtool::image &f, const char *fname, struct bml3_dirent *ent, int *position) { int i; floperr_t ferr; @@ -229,7 +229,7 @@ static imgtoolerr_t lookup_bml3_file(imgtool::image *f, const char *fname, struc -static UINT8 get_granule_count(imgtool::image *img) +static UINT8 get_granule_count(imgtool::image &img) { // UINT16 tracks; UINT16 disk_granules; @@ -245,7 +245,7 @@ static UINT8 get_granule_count(imgtool::image *img) } /* granule_map must be an array of MAX_GRANULEMAP_SIZE bytes */ -static floperr_t get_granule_map(imgtool::image *img, UINT8 *granule_map, UINT8 *granule_count) +static floperr_t get_granule_map(imgtool::image &img, UINT8 *granule_map, UINT8 *granule_count) { bml3_diskinfo *info = bml3_get_diskinfo(img); UINT8 count; @@ -260,7 +260,7 @@ static floperr_t get_granule_map(imgtool::image *img, UINT8 *granule_map, UINT8 -static floperr_t put_granule_map(imgtool::image *img, const UINT8 *granule_map, UINT8 granule_count) +static floperr_t put_granule_map(imgtool::image &img, const UINT8 *granule_map, UINT8 granule_count) { bml3_diskinfo *info = bml3_get_diskinfo(img); return floppy_write_sector(imgtool_floppy(img), 0, 20, info->fat_start_sector, info->fat_start_offset, granule_map, granule_count, 0); /* TODO: pass ddam argument from imgtool */ @@ -269,7 +269,7 @@ static floperr_t put_granule_map(imgtool::image *img, const UINT8 *granule_map, -static void granule_location(imgtool::image *image, UINT8 granule, UINT8 *head, UINT8 *track, UINT8 *sector) +static void granule_location(imgtool::image &image, UINT8 granule, UINT8 *head, UINT8 *track, UINT8 *sector) { bml3_diskinfo *info = bml3_get_diskinfo(image); UINT16 abs_track = granule * info->granule_sectors / 16; @@ -283,7 +283,7 @@ static void granule_location(imgtool::image *image, UINT8 granule, UINT8 *head, -static imgtoolerr_t transfer_granule(imgtool::image *img, UINT8 granule, int length, imgtool::stream &f, imgtoolerr_t (*proc)(imgtool::image *, int, int, int, int, size_t, imgtool::stream &)) +static imgtoolerr_t transfer_granule(imgtool::image &img, UINT8 granule, int length, imgtool::stream &f, imgtoolerr_t (*proc)(imgtool::image &, int, int, int, int, size_t, imgtool::stream &)) { imgtoolerr_t err = IMGTOOLERR_SUCCESS; UINT8 head, track, sector; @@ -294,21 +294,21 @@ static imgtoolerr_t transfer_granule(imgtool::image *img, UINT8 granule, int len } -static imgtoolerr_t transfer_from_granule(imgtool::image *img, UINT8 granule, int length, imgtool::stream &destf) +static imgtoolerr_t transfer_from_granule(imgtool::image &img, UINT8 granule, int length, imgtool::stream &destf) { return transfer_granule(img, granule, length, destf, imgtool_floppy_read_sector_to_stream); } -static imgtoolerr_t transfer_to_granule(imgtool::image *img, UINT8 granule, int length, imgtool::stream &sourcef) +static imgtoolerr_t transfer_to_granule(imgtool::image &img, UINT8 granule, int length, imgtool::stream &sourcef) { return transfer_granule(img, granule, length, sourcef, imgtool_floppy_write_sector_from_stream); } -static floperr_t read_granule(imgtool::image *img, UINT8 granule, int offset, int length, UINT8 *buf) +static floperr_t read_granule(imgtool::image &img, UINT8 granule, int offset, int length, UINT8 *buf) { UINT8 head, track, sector; granule_location(img, granule, &head, &track, §or); @@ -317,7 +317,7 @@ static floperr_t read_granule(imgtool::image *img, UINT8 granule, int offset, in -static floperr_t write_granule(imgtool::image *img, UINT8 granule, int offset, int length, const UINT8 *buf) +static floperr_t write_granule(imgtool::image &img, UINT8 granule, int offset, int length, const UINT8 *buf) { UINT8 head, track, sector; granule_location(img, granule, &head, &track, §or); @@ -326,7 +326,7 @@ static floperr_t write_granule(imgtool::image *img, UINT8 granule, int offset, i -static imgtoolerr_t list_granules(struct bml3_dirent *ent, imgtool::image *img, struct granule_list_t *granule_list) +static imgtoolerr_t list_granules(struct bml3_dirent *ent, imgtool::image &img, struct granule_list_t *granule_list) { floperr_t ferr; UINT8 max_granules; @@ -368,7 +368,7 @@ static imgtoolerr_t list_granules(struct bml3_dirent *ent, imgtool::image *img, -static imgtoolerr_t get_file_size(struct bml3_dirent *ent, imgtool::image *img, const struct granule_list_t *granule_list, size_t *size) +static imgtoolerr_t get_file_size(struct bml3_dirent *ent, imgtool::image &img, const struct granule_list_t *granule_list, size_t *size) { floperr_t ferr; size_t last_sector_bytes = 0; @@ -422,7 +422,7 @@ static imgtoolerr_t get_file_size(struct bml3_dirent *ent, imgtool::image *img, -static imgtoolerr_t process_bml3_file(struct bml3_dirent *ent, imgtool::image *img, imgtool::stream *destf, size_t *size) +static imgtoolerr_t process_bml3_file(struct bml3_dirent *ent, imgtool::image &img, imgtool::stream *destf, size_t *size) { imgtoolerr_t err; size_t remaining_size, granule_size; @@ -498,7 +498,7 @@ static imgtoolerr_t prepare_dirent(UINT8 variant, struct bml3_dirent *ent, const -static imgtoolerr_t bml3_diskimage_open(imgtool::image *image, imgtool::stream::ptr &&dummy) +static imgtoolerr_t bml3_diskimage_open(imgtool::image &image, imgtool::stream::ptr &&dummy) { // imgtoolerr_t err; floperr_t ferr; @@ -556,9 +556,8 @@ static imgtoolerr_t bml3_diskimage_nextenum(imgtool::directory *enumeration, img struct bml3_direnum *rsenum; struct bml3_dirent rsent; char fname[13]; - imgtool::image *image; + imgtool::image &image(enumeration->image()); - image = &enumeration->image(); rsenum = (struct bml3_direnum *) enumeration->extra_bytes(); /* Did we hit the end of file before? */ @@ -620,7 +619,7 @@ static imgtoolerr_t bml3_diskimage_freespace(imgtool::partition *partition, UINT size_t s = 0; UINT8 granule_count; UINT8 granule_map[MAX_GRANULEMAP_SIZE]; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); bml3_diskinfo *info = bml3_get_diskinfo(image); ferr = get_granule_map(image, granule_map, &granule_count); @@ -638,7 +637,7 @@ static imgtoolerr_t bml3_diskimage_freespace(imgtool::partition *partition, UINT -static imgtoolerr_t delete_entry(imgtool::image *img, struct bml3_dirent *ent, int pos) +static imgtoolerr_t delete_entry(imgtool::image &img, struct bml3_dirent *ent, int pos) { floperr_t ferr; unsigned char g, i; @@ -678,7 +677,7 @@ static imgtoolerr_t bml3_diskimage_readfile(imgtool::partition *partition, const imgtoolerr_t err; struct bml3_dirent ent; size_t size; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); err = lookup_bml3_file(img, fname, &ent, nullptr); if (err) @@ -700,7 +699,7 @@ static imgtoolerr_t bml3_diskimage_writefile(imgtool::partition *partition, cons { floperr_t ferr; imgtoolerr_t err; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); bml3_diskinfo *info = bml3_get_diskinfo(img); struct bml3_dirent ent, ent2; size_t i; @@ -820,7 +819,7 @@ static imgtoolerr_t bml3_diskimage_writefile(imgtool::partition *partition, cons static imgtoolerr_t bml3_diskimage_deletefile(imgtool::partition *partition, const char *fname) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); int pos = 0; struct bml3_dirent ent; @@ -836,7 +835,7 @@ static imgtoolerr_t bml3_diskimage_deletefile(imgtool::partition *partition, con static imgtoolerr_t bml3_diskimage_suggesttransfer(imgtool::partition *partition, const char *fname, imgtool_transfer_suggestion *suggestions, size_t suggestions_length) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); struct bml3_dirent ent; int pos; diff --git a/src/tools/imgtool/modules/concept.cpp b/src/tools/imgtool/modules/concept.cpp index 7d5d65f1914..1c0822e4860 100644 --- a/src/tools/imgtool/modules/concept.cpp +++ b/src/tools/imgtool/modules/concept.cpp @@ -126,9 +126,9 @@ struct concept_iterator }; -static imgtoolerr_t concept_image_init(imgtool::image *img, imgtool::stream::ptr &&stream); -static void concept_image_exit(imgtool::image *img); -static void concept_image_info(imgtool::image *img, char *string, size_t len); +static imgtoolerr_t concept_image_init(imgtool::image &img, imgtool::stream::ptr &&stream); +static void concept_image_exit(imgtool::image &img); +static void concept_image_info(imgtool::image &img, char *string, size_t len); static imgtoolerr_t concept_image_beginenum(imgtool::directory *enumeration, const char *path); static imgtoolerr_t concept_image_nextenum(imgtool::directory *enumeration, imgtool_dirent *ent); static void concept_image_closeenum(imgtool::directory *enumeration); @@ -169,6 +169,11 @@ void concept_get_info(const imgtool_class *imgclass, UINT32 state, union imgtool } } +static concept_image *get_concept_image(imgtool::image &image) +{ + return (concept_image *)image.extra_bytes(); +} + /* read_physical_record @@ -260,9 +265,9 @@ static int get_catalog_entry(concept_image *image, const unsigned char *filename /* Open a file as a concept_image. */ -static imgtoolerr_t concept_image_init(imgtool::image *img, imgtool::stream::ptr &&stream) +static imgtoolerr_t concept_image_init(imgtool::image &img, imgtool::stream::ptr &&stream) { - concept_image *image = (concept_image *) img->extra_bytes(); + concept_image *image = get_concept_image(img); int reply; int i; unsigned totphysrecs; @@ -294,9 +299,9 @@ static imgtoolerr_t concept_image_init(imgtool::image *img, imgtool::stream::ptr /* close a concept_image */ -static void concept_image_exit(imgtool::image *img) +static void concept_image_exit(imgtool::image &img) { - /*concept_image *image = (concept_image *) img->extra_bytes();*/ + /*concept_image *image = get_concept_image(img);*/ } /* @@ -304,9 +309,9 @@ static void concept_image_exit(imgtool::image *img) Currently returns the volume name */ -static void concept_image_info(imgtool::image *img, char *string, size_t len) +static void concept_image_info(imgtool::image &img, char *string, size_t len) { - concept_image *image = (concept_image *) img->extra_bytes(); + concept_image *image = get_concept_image(img); char vol_name[8]; memcpy(vol_name, image->dev_dir.vol_hdr.volname + 1, image->dev_dir.vol_hdr.volname[0]); @@ -401,8 +406,8 @@ static void concept_image_closeenum(imgtool::directory *enumeration) */ static imgtoolerr_t concept_image_freespace(imgtool::partition *partition, UINT64 *size) { - imgtool::image *img = &partition->image(); - concept_image *image = (concept_image*) img; + imgtool::image &img(partition->image()); + concept_image *image = get_concept_image(img); int free_blocks; int i; @@ -427,8 +432,8 @@ static imgtoolerr_t concept_image_freespace(imgtool::partition *partition, UINT6 */ static imgtoolerr_t concept_image_readfile(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &destf) { - imgtool::image *img = &partition->image(); - concept_image *image = (concept_image *) img->extra_bytes(); + imgtool::image &img(partition->image()); + concept_image *image = get_concept_image(img); size_t filename_len = strlen(filename); unsigned char concept_fname[16]; int catalog_index; diff --git a/src/tools/imgtool/modules/cybiko.cpp b/src/tools/imgtool/modules/cybiko.cpp index b72816ff92e..ab2806a5e83 100644 --- a/src/tools/imgtool/modules/cybiko.cpp +++ b/src/tools/imgtool/modules/cybiko.cpp @@ -58,6 +58,11 @@ enum #define FILE_HEADER_SIZE 0x48 +static cybiko_file_system *get_cfs(imgtool::image &image) +{ + return (cybiko_file_system*)image.extra_bytes(); +} + // 2208988800 is the number of seconds between 1900/01/01 and 1970/01/01 static time_t time_crack( UINT32 cfs_time) @@ -345,9 +350,9 @@ static int flash_option_to_flash_type( int option) } } -static imgtoolerr_t cybiko_image_open(imgtool::image *image, imgtool::stream::ptr &&stream) +static imgtoolerr_t cybiko_image_open(imgtool::image &image, imgtool::stream::ptr &&stream) { - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + cybiko_file_system *cfs = get_cfs(image); int flash_type; // init flash_type = flash_size_to_flash_type(stream->size()); @@ -358,15 +363,15 @@ static imgtoolerr_t cybiko_image_open(imgtool::image *image, imgtool::stream::pt return IMGTOOLERR_SUCCESS; } -static void cybiko_image_close( imgtool::image *image) +static void cybiko_image_close(imgtool::image &image) { - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + cybiko_file_system *cfs = get_cfs(image); delete cfs->stream; } -static imgtoolerr_t cybiko_image_create( imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *opts) +static imgtoolerr_t cybiko_image_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *opts) { - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + cybiko_file_system *cfs = get_cfs(image); int flash_type; // init flash_type = flash_option_to_flash_type(opts->lookup_int('F')); @@ -386,8 +391,8 @@ static imgtoolerr_t cybiko_image_begin_enum( imgtool::directory *enumeration, co static imgtoolerr_t cybiko_image_next_enum( imgtool::directory *enumeration, imgtool_dirent *ent) { - imgtool::image *image = &enumeration->image(); - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + imgtool::image &image(enumeration->image()); + cybiko_file_system *cfs = get_cfs(image); cybiko_iter *iter = (cybiko_iter*)enumeration->extra_bytes(); UINT8 buffer[MAX_PAGE_SIZE]; UINT16 file_id = INVALID_FILE_ID; @@ -425,16 +430,16 @@ static void cybiko_image_close_enum( imgtool::directory *enumeration) static imgtoolerr_t cybiko_image_free_space(imgtool::partition *partition, UINT64 *size) { - imgtool::image *image = &partition->image(); - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + imgtool::image &image(partition->image()); + cybiko_file_system *cfs = get_cfs(image); if (size) *size = cfs_calc_free_space( cfs, cfs_calc_free_blocks( cfs)); return IMGTOOLERR_SUCCESS; } static imgtoolerr_t cybiko_image_read_file(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &destf) { - imgtool::image *image = &partition->image(); - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + imgtool::image &image(partition->image()); + cybiko_file_system *cfs = get_cfs(image); UINT8 buffer[MAX_PAGE_SIZE]; UINT16 file_id, part_id = 0, old_part_id; int i; @@ -460,8 +465,8 @@ static imgtoolerr_t cybiko_image_read_file(imgtool::partition *partition, const static imgtoolerr_t cybiko_image_write_file(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &sourcef, util::option_resolution *opts) { - imgtool::image *image = &partition->image(); - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + imgtool::image &image(partition->image()); + cybiko_file_system *cfs = get_cfs(image); UINT8 buffer[MAX_PAGE_SIZE]; UINT16 file_id, part_id = 0, free_blocks; UINT64 bytes_left; @@ -520,8 +525,8 @@ static imgtoolerr_t cybiko_image_write_file(imgtool::partition *partition, const static imgtoolerr_t cybiko_image_delete_file( imgtool::partition *partition, const char *filename) { - imgtool::image *image = &partition->image(); - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + imgtool::image &image(partition->image()); + cybiko_file_system *cfs = get_cfs(image); UINT16 file_id; // find file if (!cfs_file_find( cfs, filename, &file_id)) return IMGTOOLERR_FILENOTFOUND; diff --git a/src/tools/imgtool/modules/cybikoxt.cpp b/src/tools/imgtool/modules/cybikoxt.cpp index 475d0449136..1ea7ba6be35 100644 --- a/src/tools/imgtool/modules/cybikoxt.cpp +++ b/src/tools/imgtool/modules/cybikoxt.cpp @@ -50,6 +50,11 @@ enum #define FILE_HEADER_SIZE 0x48 +static cybiko_file_system *get_cfs(imgtool::image &image) +{ + return (cybiko_file_system*)image.extra_bytes(); +} + // 2208988800 is the number of seconds between 1900/01/01 and 1970/01/01 static time_t time_crack( UINT32 cfs_time) @@ -319,9 +324,9 @@ static UINT32 cfs_calc_free_space( cybiko_file_system *cfs, UINT16 blocks) return free_space; } -static imgtoolerr_t cybiko_image_open(imgtool::image *image, imgtool::stream::ptr &&stream) +static imgtoolerr_t cybiko_image_open(imgtool::image &image, imgtool::stream::ptr &&stream) { - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + cybiko_file_system *cfs = get_cfs(image); // init if (!cfs_init(*cfs, std::move(stream))) return IMGTOOLERR_CORRUPTIMAGE; // verify @@ -330,15 +335,15 @@ static imgtoolerr_t cybiko_image_open(imgtool::image *image, imgtool::stream::pt return IMGTOOLERR_SUCCESS; } -static void cybiko_image_close(imgtool::image *image) +static void cybiko_image_close(imgtool::image &image) { - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + cybiko_file_system *cfs = get_cfs(image); delete cfs->stream; } -static imgtoolerr_t cybiko_image_create(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *opts) +static imgtoolerr_t cybiko_image_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *opts) { - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + cybiko_file_system *cfs = get_cfs(image); // init if (!cfs_init(*cfs, std::move(stream))) return IMGTOOLERR_CORRUPTIMAGE; // format @@ -356,8 +361,8 @@ static imgtoolerr_t cybiko_image_begin_enum( imgtool::directory *enumeration, co static imgtoolerr_t cybiko_image_next_enum( imgtool::directory *enumeration, imgtool_dirent *ent) { - imgtool::image *image = &enumeration->image(); - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + imgtool::image &image(enumeration->image()); + cybiko_file_system *cfs = get_cfs(image); cybiko_iter *iter = (cybiko_iter*)enumeration->extra_bytes(); UINT8 buffer[MAX_PAGE_SIZE]; UINT16 file_id = INVALID_FILE_ID; @@ -395,16 +400,16 @@ static void cybiko_image_close_enum( imgtool::directory *enumeration) static imgtoolerr_t cybiko_image_free_space( imgtool::partition *partition, UINT64 *size) { - imgtool::image *image = &partition->image(); - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + imgtool::image &image(partition->image()); + cybiko_file_system *cfs = get_cfs(image); if (size) *size = cfs_calc_free_space( cfs, cfs_calc_free_blocks( cfs)); return IMGTOOLERR_SUCCESS; } static imgtoolerr_t cybiko_image_read_file(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &destf) { - imgtool::image *image = &partition->image(); - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + imgtool::image &image(partition->image()); + cybiko_file_system *cfs = get_cfs(image); UINT8 buffer[MAX_PAGE_SIZE]; UINT16 file_id, part_id = 0, old_part_id; int i; @@ -432,8 +437,8 @@ static imgtoolerr_t cybiko_image_read_file(imgtool::partition *partition, const static imgtoolerr_t cybiko_image_write_file(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &sourcef, util::option_resolution *opts) { - imgtool::image *image = &partition->image(); - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + imgtool::image &image(partition->image()); + cybiko_file_system *cfs = get_cfs(image); UINT8 buffer[MAX_PAGE_SIZE]; UINT16 file_id, part_id = 0, free_blocks; UINT64 bytes_left; @@ -495,8 +500,8 @@ static imgtoolerr_t cybiko_image_write_file(imgtool::partition *partition, const static imgtoolerr_t cybiko_image_delete_file( imgtool::partition *partition, const char *filename) { - imgtool::image *image = &partition->image(); - cybiko_file_system *cfs = (cybiko_file_system*)image->extra_bytes(); + imgtool::image &image(partition->image()); + cybiko_file_system *cfs = get_cfs(image); UINT16 file_id; // check filename if (strlen(filename) > 58) return IMGTOOLERR_BADFILENAME; diff --git a/src/tools/imgtool/modules/fat.cpp b/src/tools/imgtool/modules/fat.cpp index 2fcdf3f5306..0a6d9250333 100644 --- a/src/tools/imgtool/modules/fat.cpp +++ b/src/tools/imgtool/modules/fat.cpp @@ -447,7 +447,7 @@ static imgtoolerr_t fat_partition_open(imgtool::partition *partition, UINT64 fir -static imgtoolerr_t fat_partition_create(imgtool::image *image, UINT64 first_block, UINT64 block_count) +static imgtoolerr_t fat_partition_create(imgtool::image &image, UINT64 first_block, UINT64 block_count) { imgtoolerr_t err; UINT32 heads, tracks, sectors_per_track; @@ -469,7 +469,7 @@ static imgtoolerr_t fat_partition_create(imgtool::image *image, UINT64 first_blo return IMGTOOLERR_PARAMTOOLARGE; /* get the geometry */ - err = image->get_geometry(&tracks, &heads, §ors_per_track); + err = image.get_geometry(&tracks, &heads, §ors_per_track); if (err) return err; @@ -560,14 +560,14 @@ static imgtoolerr_t fat_partition_create(imgtool::image *image, UINT64 first_blo header[2] = (UINT8) ((boot_sector_offset - 2) >> 8); /* (offset) */ } - err = image->write_block(first_block, header); + err = image.write_block(first_block, header); if (err) return err; /* clear out file allocation table */ for (i = reserved_sectors; i < (reserved_sectors + sectors_per_fat * fat_count + root_dir_sectors); i++) { - err = image->clear_block(first_block + i, 0); + err = image.clear_block(first_block + i, 0); if (err) return err; } diff --git a/src/tools/imgtool/modules/hp48.cpp b/src/tools/imgtool/modules/hp48.cpp index e6929f2e967..f3af5d7feba 100644 --- a/src/tools/imgtool/modules/hp48.cpp +++ b/src/tools/imgtool/modules/hp48.cpp @@ -2,7 +2,7 @@ // copyright-holders:Antoine Mine /**************************************************************************** - hp48.c + hp48.cpp Memory cards for HP48 SX/GX @@ -150,6 +150,11 @@ static const char hp48_create_optionspec[] = "S32/64/[128]/256/512/1024/2048/409 *****************************************************************************/ +static hp48_card *get_hp48_card(imgtool::image &image) +{ + return (hp48_card*) image.extra_bytes(); +} + /* byes to nibbles */ static void unpack(UINT8* dst, UINT8* src, int nsize) { @@ -327,9 +332,9 @@ static UINT16 crc(UINT8* data, int len) *****************************************************************************/ -static imgtoolerr_t hp48_open(imgtool::image *img, imgtool::stream::ptr &&stream) +static imgtoolerr_t hp48_open(imgtool::image &img, imgtool::stream::ptr &&stream) { - hp48_card* c = (hp48_card*) img->extra_bytes(); + hp48_card* c = get_hp48_card(img); int size = stream->size(); /* check that size is a power of 2 between 32 KB and 4 MG */ @@ -364,11 +369,11 @@ static imgtoolerr_t hp48_open(imgtool::image *img, imgtool::stream::ptr &&stream -static imgtoolerr_t hp48_create(imgtool::image* img, +static imgtoolerr_t hp48_create(imgtool::image &img, imgtool::stream::ptr &&stream, util::option_resolution *opts) { - hp48_card* c = (hp48_card*) img->extra_bytes(); + hp48_card* c = get_hp48_card(img); int size; size = opts->lookup_int('S'); @@ -391,9 +396,9 @@ static imgtoolerr_t hp48_create(imgtool::image* img, -static void hp48_close(imgtool::image *img) +static void hp48_close(imgtool::image &img) { - hp48_card* c = (hp48_card*) img->extra_bytes(); + hp48_card* c = get_hp48_card(img); if ( c->modified ) { @@ -415,11 +420,11 @@ static void hp48_close(imgtool::image *img) void hp48_partition_get_info(const imgtool_class *imgclass, UINT32 state, union imgtoolinfo *info); -static imgtoolerr_t hp48_list_partitions(imgtool::image *img, +static imgtoolerr_t hp48_list_partitions(imgtool::image &img, imgtool_partition_info *partitions, size_t len) { - hp48_card* c = (hp48_card*) img->extra_bytes(); + hp48_card* c = get_hp48_card(img); int i; for ( i = 0; i < len && i * MAX_PORT_SIZE < c->size ; i++ ) @@ -441,8 +446,8 @@ static imgtoolerr_t hp48_list_partitions(imgtool::image *img, static imgtoolerr_t hp48_open_partition(imgtool::partition *part, UINT64 first_block, UINT64 block_count) { - imgtool::image* img = &part->image(); - hp48_card* c = (hp48_card*) img->extra_bytes(); + imgtool::image &img(part->image()); + hp48_card* c = get_hp48_card(img); hp48_partition* p = (hp48_partition*) part->extra_bytes(); if ( first_block + block_count > c->size ) @@ -473,8 +478,8 @@ static imgtoolerr_t hp48_nextenum(imgtool::directory *enumeration, imgtool_dirent *ent) { imgtool::partition *part = &enumeration->partition(); - //imgtool::image* img = &part->image(); - //hp48_card* c = (hp48_card*) img->extra_bytes(); + //imgtool::image &img(part->image()); + //hp48_card* c = get_hp48_card(img); hp48_partition* p = (hp48_partition*) part->extra_bytes(); hp48_directory* d = (hp48_directory*) enumeration->extra_bytes(); @@ -530,8 +535,8 @@ static imgtoolerr_t hp48_nextenum(imgtool::directory *enumeration, static imgtoolerr_t hp48_freespace(imgtool::partition *part, UINT64 *size) { - //imgtool::image* img = &part->image(); - //hp48_card* c = (hp48_card*) img->extra_bytes(); + //imgtool::image &img(part->image()); + //hp48_card* c = get_hp48_card(img); hp48_partition* p = (hp48_partition*) part->extra_bytes(); *size = p->size - (find_end(p)+1)/2; @@ -546,8 +551,8 @@ static imgtoolerr_t hp48_readfile(imgtool::partition *part, const char *fork, imgtool::stream &destf) { - //imgtool::image* img = &part->image(); - //hp48_card* c = (hp48_card*) img->extra_bytes(); + //imgtool::image &img(part->image()); + //hp48_card* c = get_hp48_card(img); hp48_partition* p = (hp48_partition*) part->extra_bytes(); /* find entry */ @@ -589,8 +594,8 @@ static imgtoolerr_t hp48_readfile(imgtool::partition *part, static imgtoolerr_t hp48_deletefile(imgtool::partition *part, const char *filename) { - imgtool::image* img = &part->image(); - hp48_card* c = (hp48_card*) img->extra_bytes(); + imgtool::image &img(part->image()); + hp48_card* c = get_hp48_card(img); hp48_partition* p = (hp48_partition*) part->extra_bytes(); /* find entry */ @@ -618,8 +623,8 @@ static imgtoolerr_t hp48_writefile(imgtool::partition *part, imgtool::stream &sourcef, util::option_resolution *opts) { - imgtool::image* img = &part->image(); - hp48_card* c = (hp48_card*) img->extra_bytes(); + imgtool::image &img(part->image()); + hp48_card* c = get_hp48_card(img); hp48_partition* p = (hp48_partition*) part->extra_bytes(); /* check header */ diff --git a/src/tools/imgtool/modules/hp9845_tape.cpp b/src/tools/imgtool/modules/hp9845_tape.cpp index 807c250ff13..43770b99606 100644 --- a/src/tools/imgtool/modules/hp9845_tape.cpp +++ b/src/tools/imgtool/modules/hp9845_tape.cpp @@ -1023,9 +1023,9 @@ bool tape_image_t::decode_dir(void) return true; } -static tape_state_t& get_tape_state(imgtool::image *img) +static tape_state_t& get_tape_state(imgtool::image &img) { - tape_state_t *ts = (tape_state_t*)img->extra_bytes(); + tape_state_t *ts = (tape_state_t*)img.extra_bytes(); return *ts; } @@ -1042,7 +1042,7 @@ static tape_image_t& get_tape_image(tape_state_t& ts) /******************************************************************************** * Imgtool functions ********************************************************************************/ -static imgtoolerr_t hp9845_tape_open(imgtool::image *image, imgtool::stream::ptr &&stream) +static imgtoolerr_t hp9845_tape_open(imgtool::image &image, imgtool::stream::ptr &&stream) { tape_state_t& state = get_tape_state(image); @@ -1058,7 +1058,7 @@ static imgtoolerr_t hp9845_tape_open(imgtool::image *image, imgtool::stream::ptr return IMGTOOLERR_SUCCESS; } -static imgtoolerr_t hp9845_tape_create(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *opts) +static imgtoolerr_t hp9845_tape_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *opts) { tape_state_t& state = get_tape_state(image); @@ -1071,7 +1071,7 @@ static imgtoolerr_t hp9845_tape_create(imgtool::image *image, imgtool::stream::p return IMGTOOLERR_SUCCESS; } -static void hp9845_tape_close(imgtool::image *image) +static void hp9845_tape_close(imgtool::image &image) { tape_state_t& state = get_tape_state(image); tape_image_t& tape_image = get_tape_image(state); @@ -1097,7 +1097,7 @@ static imgtoolerr_t hp9845_tape_begin_enum (imgtool::directory *enumeration, con static imgtoolerr_t hp9845_tape_next_enum (imgtool::directory *enumeration, imgtool_dirent *ent) { - tape_state_t& state = get_tape_state(&enumeration->image()); + tape_state_t& state = get_tape_state(enumeration->image()); tape_image_t& tape_image = get_tape_image(state); dir_state_t *ds = (dir_state_t*)enumeration->extra_bytes(); @@ -1122,7 +1122,7 @@ static imgtoolerr_t hp9845_tape_next_enum (imgtool::directory *enumeration, imgt static imgtoolerr_t hp9845_tape_free_space(imgtool::partition *partition, UINT64 *size) { - tape_state_t& state = get_tape_state(&partition->image()); + tape_state_t& state = get_tape_state(partition->image()); tape_image_t& tape_image = get_tape_image(state); *size = tape_image.free_sectors() * SECTOR_LEN; @@ -1132,7 +1132,7 @@ static imgtoolerr_t hp9845_tape_free_space(imgtool::partition *partition, UINT64 static imgtoolerr_t hp9845_tape_read_file(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &destf) { - tape_state_t& state = get_tape_state(&partition->image()); + tape_state_t& state = get_tape_state(partition->image()); tape_image_t& tape_image = get_tape_image(state); unsigned idx; @@ -1166,7 +1166,7 @@ static imgtoolerr_t hp9845_tape_read_file(imgtool::partition *partition, const c static imgtoolerr_t hp9845_tape_write_file(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &sourcef, util::option_resolution *opts) { - tape_state_t& state = get_tape_state(&partition->image()); + tape_state_t& state = get_tape_state(partition->image()); tape_image_t& tape_image = get_tape_image(state); unsigned idx; @@ -1252,7 +1252,7 @@ static imgtoolerr_t hp9845_tape_write_file(imgtool::partition *partition, const static imgtoolerr_t hp9845_tape_delete_file(imgtool::partition *partition, const char *filename) { - tape_state_t& state = get_tape_state(&partition->image()); + tape_state_t& state = get_tape_state(partition->image()); tape_image_t& tape_image = get_tape_image(state); unsigned idx; diff --git a/src/tools/imgtool/modules/mac.cpp b/src/tools/imgtool/modules/mac.cpp index 6310fe34f2f..f7443925937 100644 --- a/src/tools/imgtool/modules/mac.cpp +++ b/src/tools/imgtool/modules/mac.cpp @@ -625,15 +625,15 @@ static imgtoolerr_t mac_find_block(mac_l1_imgref *image, int block, UINT32 *track, UINT32 *head, UINT32 *sector) { *track = 0; - while(block >= (apple35_sectors_per_track(imgtool_floppy(image->image), *track) * image->heads)) + while(block >= (apple35_sectors_per_track(imgtool_floppy(*image->image), *track) * image->heads)) { - block -= (apple35_sectors_per_track(imgtool_floppy(image->image), (*track)++) * image->heads); + block -= (apple35_sectors_per_track(imgtool_floppy(*image->image), (*track)++) * image->heads); if (*track >= 80) return IMGTOOLERR_SEEKERROR; } - *head = block / apple35_sectors_per_track(imgtool_floppy(image->image), *track); - *sector = block % apple35_sectors_per_track(imgtool_floppy(image->image), *track); + *head = block / apple35_sectors_per_track(imgtool_floppy(*image->image), *track); + *sector = block % apple35_sectors_per_track(imgtool_floppy(*image->image), *track); return IMGTOOLERR_SUCCESS; } @@ -660,7 +660,7 @@ static imgtoolerr_t image_read_block(mac_l1_imgref *image, UINT32 block, void *d if (err) return err; - ferr = floppy_read_sector(imgtool_floppy(image->image), head, track, sector, 0, dest, 512); + ferr = floppy_read_sector(imgtool_floppy(*image->image), head, track, sector, 0, dest, 512); if (ferr) return imgtool_floppy_error(ferr); @@ -688,7 +688,7 @@ static imgtoolerr_t image_write_block(mac_l1_imgref *image, UINT32 block, const if (err) return err; - ferr = floppy_write_sector(imgtool_floppy(image->image), head, track, sector, 0, src, 512, 0); /* TODO: pass ddam argument from imgtool */ + ferr = floppy_write_sector(imgtool_floppy(*image->image), head, track, sector, 0, src, 512, 0); /* TODO: pass ddam argument from imgtool */ if (ferr) return imgtool_floppy_error(ferr); @@ -1069,7 +1069,7 @@ static imgtoolerr_t hfs_file_open(struct mac_l2_imgref *l2_img, UINT32 parID, co static imgtoolerr_t mfs_file_setABeof(struct mac_fileref *fileref, UINT32 newABeof); static imgtoolerr_t mfs_dir_update(struct mac_fileref *fileref); -static struct mac_l2_imgref *get_imgref(imgtool::image *img) +static struct mac_l2_imgref *get_imgref(imgtool::image &img) { return (struct mac_l2_imgref *) imgtool_floppy_extrabytes(img); } @@ -1542,7 +1542,7 @@ struct mfs_dirref -static imgtoolerr_t mfs_image_create(imgtool::image *image, imgtool::stream::ptr &&dummy, util::option_resolution *opts) +static imgtoolerr_t mfs_image_create(imgtool::image &image, imgtool::stream::ptr &&dummy, util::option_resolution *opts) { imgtoolerr_t err; UINT8 buffer[512]; @@ -1554,7 +1554,7 @@ static imgtoolerr_t mfs_image_create(imgtool::image *image, imgtool::stream::ptr tracks = opts->lookup_int('T'); sector_bytes = opts->lookup_int('L'); - get_imgref(image)->l1_img.image = image; + get_imgref(image)->l1_img.image = ℑ get_imgref(image)->l1_img.heads = heads; if (sector_bytes != 512) @@ -1606,7 +1606,7 @@ static imgtoolerr_t mfs_image_create(imgtool::image *image, imgtool::stream::ptr Return imgtool error code */ -static imgtoolerr_t mfs_image_open(imgtool::image *image, imgtool::stream::ptr &&dummy) +static imgtoolerr_t mfs_image_open(imgtool::image &image, imgtool::stream::ptr &&dummy) { imgtoolerr_t err; struct mac_l2_imgref *l2_img; @@ -1614,7 +1614,7 @@ static imgtoolerr_t mfs_image_open(imgtool::image *image, imgtool::stream::ptr & img_open_buf *buf; l2_img = get_imgref(image); - l2_img->l1_img.image = image; + l2_img->l1_img.image = ℑ l2_img->l1_img.heads = 1; l2_img->format = L2I_MFS; @@ -3033,7 +3033,7 @@ static int hfs_catKey_compare(const void *p1, const void *p2) Return imgtool error code */ -static imgtoolerr_t hfs_image_open(imgtool::image *image, imgtool::stream::ptr &&stream) +static imgtoolerr_t hfs_image_open(imgtool::image &image, imgtool::stream::ptr &&stream) { imgtoolerr_t err; struct mac_l2_imgref *l2_img; @@ -3041,7 +3041,7 @@ static imgtoolerr_t hfs_image_open(imgtool::image *image, imgtool::stream::ptr & img_open_buf *buf; l2_img = get_imgref(image); - l2_img->l1_img.image = image; + l2_img->l1_img.image = ℑ l2_img->l1_img.heads = 2; l2_img->format = L2I_HFS; @@ -5273,7 +5273,7 @@ static imgtoolerr_t get_comment(struct mac_l2_imgref *l2_img, UINT16 id, mac_str #ifdef UNUSED_FUNCTION static void mac_image_exit(imgtool::image *img); #endif -static void mac_image_info(imgtool::image *img, char *string, size_t len); +static void mac_image_info(imgtool::image &img, char *string, size_t len); static imgtoolerr_t mac_image_beginenum(imgtool::directory *enumeration, const char *path); static imgtoolerr_t mac_image_nextenum(imgtool::directory *enumeration, imgtool_dirent *ent); static imgtoolerr_t mac_image_freespace(imgtool::partition *partition, UINT64 *size); @@ -5297,7 +5297,7 @@ static void mac_image_exit(imgtool::image *img) Currently returns the volume name */ -static void mac_image_info(imgtool::image *img, char *string, size_t len) +static void mac_image_info(imgtool::image &img, char *string, size_t len) { struct mac_l2_imgref *image = get_imgref(img); @@ -5338,7 +5338,7 @@ struct mac_iterator */ static imgtoolerr_t mac_image_beginenum(imgtool::directory *enumeration, const char *path) { - struct mac_l2_imgref *image = get_imgref(&enumeration->image()); + struct mac_l2_imgref *image = get_imgref(enumeration->image()); mac_iterator *iter = (mac_iterator *) enumeration->extra_bytes(); imgtoolerr_t err = IMGTOOLERR_UNEXPECTED; @@ -5573,7 +5573,7 @@ static imgtoolerr_t mac_image_nextenum(imgtool::directory *enumeration, imgtool_ */ static imgtoolerr_t mac_image_freespace(imgtool::partition *partition, UINT64 *size) { - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); *size = ((UINT64) get_imgref(image)->freeABs) * 512; return IMGTOOLERR_SUCCESS; } @@ -5613,7 +5613,7 @@ static imgtoolerr_t mac_get_comment(struct mac_l2_imgref *image, mac_str255 file static imgtoolerr_t mac_image_readfile(imgtool::partition *partition, const char *fpath, const char *fork, imgtool::stream &destf) { imgtoolerr_t err; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); struct mac_l2_imgref *image = get_imgref(img); UINT32 parID; mac_str255 filename; @@ -5663,7 +5663,7 @@ static imgtoolerr_t mac_image_readfile(imgtool::partition *partition, const char */ static imgtoolerr_t mac_image_writefile(imgtool::partition *partition, const char *fpath, const char *fork, imgtool::stream &sourcef, util::option_resolution *writeoptions) { - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); struct mac_l2_imgref *image = get_imgref(img); UINT32 parID; mac_str255 filename; @@ -5745,7 +5745,7 @@ static imgtoolerr_t mac_image_listforks(imgtool::partition *partition, const cha mac_str255 filename; mac_dirent cat_info; int fork_num = 0; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); struct mac_l2_imgref *image = get_imgref(img); /* resolve path and fetch file info from directory/catalog */ @@ -5779,7 +5779,7 @@ static imgtoolerr_t mac_image_listforks(imgtool::partition *partition, const cha static imgtoolerr_t mac_image_getattrs(imgtool::partition *partition, const char *path, const UINT32 *attrs, imgtool_attribute *values) { imgtoolerr_t err; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); UINT32 parID; mac_str255 filename; mac_dirent cat_info; @@ -5850,7 +5850,7 @@ static imgtoolerr_t mac_image_setattrs(imgtool::partition *partition, const char UINT32 parID; mac_str255 filename; mac_dirent cat_info; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); struct mac_l2_imgref *image = get_imgref(img); int i; @@ -6323,7 +6323,7 @@ static imgtoolerr_t mac_image_suggesttransfer(imgtool::partition *partition, con UINT32 parID; mac_str255 filename; mac_dirent cat_info; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); struct mac_l2_imgref *image = get_imgref(img); mac_filecategory_t file_category = MAC_FILECATEGORY_DATA; diff --git a/src/tools/imgtool/modules/os9.cpp b/src/tools/imgtool/modules/os9.cpp index aa3f994b6cd..5aa79c824ca 100644 --- a/src/tools/imgtool/modules/os9.cpp +++ b/src/tools/imgtool/modules/os9.cpp @@ -2,7 +2,7 @@ // copyright-holders:Nathan Woods /**************************************************************************** - os9.c + os9.cpp CoCo OS-9 disk images @@ -118,7 +118,7 @@ static void place_string(void *ptr, size_t offset, size_t length, const char *s) -static os9_diskinfo *os9_get_diskinfo(imgtool::image *image) +static os9_diskinfo *os9_get_diskinfo(imgtool::image &image) { return (os9_diskinfo *) imgtool_floppy_extrabytes(image); } @@ -132,7 +132,7 @@ static struct os9_direnum *os9_get_dirinfo(imgtool::directory *directory) -static imgtoolerr_t os9_locate_lsn(imgtool::image *image, UINT32 lsn, UINT32 *head, UINT32 *track, UINT32 *sector) +static imgtoolerr_t os9_locate_lsn(imgtool::image &image, UINT32 lsn, UINT32 *head, UINT32 *track, UINT32 *sector) { const os9_diskinfo *disk_info; @@ -148,7 +148,7 @@ static imgtoolerr_t os9_locate_lsn(imgtool::image *image, UINT32 lsn, UINT32 *he -static imgtoolerr_t os9_read_lsn(imgtool::image *img, UINT32 lsn, int offset, void *buffer, size_t buffer_len) +static imgtoolerr_t os9_read_lsn(imgtool::image &img, UINT32 lsn, int offset, void *buffer, size_t buffer_len) { imgtoolerr_t err; floperr_t ferr; @@ -167,7 +167,7 @@ static imgtoolerr_t os9_read_lsn(imgtool::image *img, UINT32 lsn, int offset, vo -static imgtoolerr_t os9_write_lsn(imgtool::image *img, UINT32 lsn, int offset, const void *buffer, size_t buffer_len) +static imgtoolerr_t os9_write_lsn(imgtool::image &img, UINT32 lsn, int offset, const void *buffer, size_t buffer_len) { imgtoolerr_t err; floperr_t ferr; @@ -186,7 +186,7 @@ static imgtoolerr_t os9_write_lsn(imgtool::image *img, UINT32 lsn, int offset, c -static UINT32 os9_lookup_lsn(imgtool::image *img, +static UINT32 os9_lookup_lsn(imgtool::image &img, const struct os9_fileinfo *file_info, UINT32 *index) { int i; @@ -241,7 +241,7 @@ static int os9_interpret_dirent(void *entry, char **filename, UINT32 *lsn, int * entry from an LSN, and decodes it -------------------------------------------------*/ -static imgtoolerr_t os9_decode_file_header(imgtool::image *image, +static imgtoolerr_t os9_decode_file_header(imgtool::image &image, int lsn, struct os9_fileinfo *info) { imgtoolerr_t err; @@ -293,7 +293,7 @@ static imgtoolerr_t os9_decode_file_header(imgtool::image *image, -static imgtoolerr_t os9_allocate_lsn(imgtool::image *image, UINT32 *lsn) +static imgtoolerr_t os9_allocate_lsn(imgtool::image &image, UINT32 *lsn) { UINT32 i; os9_diskinfo *disk_info; @@ -318,7 +318,7 @@ static imgtoolerr_t os9_allocate_lsn(imgtool::image *image, UINT32 *lsn) -static imgtoolerr_t os9_deallocate_lsn(imgtool::image *image, UINT32 lsn) +static imgtoolerr_t os9_deallocate_lsn(imgtool::image &image, UINT32 lsn) { UINT8 mask; os9_diskinfo *disk_info; @@ -331,7 +331,7 @@ static imgtoolerr_t os9_deallocate_lsn(imgtool::image *image, UINT32 lsn) -static UINT32 os9_get_free_lsns(imgtool::image *image) +static UINT32 os9_get_free_lsns(imgtool::image &image) { const os9_diskinfo *disk_info; UINT32 i, free_lsns; @@ -364,7 +364,7 @@ static imgtoolerr_t os9_corrupt_file_error(const struct os9_fileinfo *file_info) -static imgtoolerr_t os9_set_file_size(imgtool::image *image, +static imgtoolerr_t os9_set_file_size(imgtool::image &image, struct os9_fileinfo *file_info, UINT32 new_size) { imgtoolerr_t err; @@ -483,7 +483,7 @@ static imgtoolerr_t os9_set_file_size(imgtool::image *image, a file -------------------------------------------------*/ -static imgtoolerr_t os9_lookup_path(imgtool::image *img, const char *path, +static imgtoolerr_t os9_lookup_path(imgtool::image &img, const char *path, creation_policy_t create, struct os9_fileinfo *file_info, UINT32 *parent_lsn, UINT32 *dirent_lsn, UINT32 *dirent_index) { @@ -622,7 +622,7 @@ done: -static imgtoolerr_t os9_diskimage_open(imgtool::image *image, imgtool::stream::ptr &&dummy) +static imgtoolerr_t os9_diskimage_open(imgtool::image &image, imgtool::stream::ptr &&dummy) { imgtoolerr_t err; floperr_t ferr; @@ -670,7 +670,7 @@ static imgtoolerr_t os9_diskimage_open(imgtool::image *image, imgtool::stream::p return IMGTOOLERR_CORRUPTIMAGE; /* is the allocation bitmap too big? */ - info->allocation_bitmap = (UINT8*)image->malloc(info->allocation_bitmap_bytes); + info->allocation_bitmap = (UINT8*)image.malloc(info->allocation_bitmap_bytes); if (!info->allocation_bitmap) return IMGTOOLERR_OUTOFMEMORY; memset(info->allocation_bitmap, 0, info->allocation_bitmap_bytes); @@ -710,7 +710,7 @@ static imgtoolerr_t os9_diskimage_open(imgtool::image *image, imgtool::stream::p -static imgtoolerr_t os9_diskimage_create(imgtool::image *img, imgtool::stream::ptr &&stream, util::option_resolution *opts) +static imgtoolerr_t os9_diskimage_create(imgtool::image &img, imgtool::stream::ptr &&stream, util::option_resolution *opts) { imgtoolerr_t err; dynamic_buffer header; @@ -851,9 +851,8 @@ static imgtoolerr_t os9_diskimage_beginenum(imgtool::directory *enumeration, con { imgtoolerr_t err = IMGTOOLERR_SUCCESS; struct os9_direnum *os9enum; - imgtool::image *image; + imgtool::image &image(enumeration->image()); - image = &enumeration->image(); os9enum = os9_get_dirinfo(enumeration); err = os9_lookup_path(image, path, CREATE_NONE, &os9enum->dir_info, NULL, NULL, NULL); @@ -881,9 +880,8 @@ static imgtoolerr_t os9_diskimage_nextenum(imgtool::directory *enumeration, imgt UINT8 dir_entry[32]; char filename[29]; struct os9_fileinfo file_info; - imgtool::image *image; + imgtool::image &image(enumeration->image()); - image = &enumeration->image(); os9enum = os9_get_dirinfo(enumeration); do @@ -949,7 +947,7 @@ static imgtoolerr_t os9_diskimage_nextenum(imgtool::directory *enumeration, imgt /* read file attributes */ lsn = pick_integer_be(dir_entry, 29, 3); - err = os9_decode_file_header(&enumeration->image(), lsn, &file_info); + err = os9_decode_file_header(enumeration->image(), lsn, &file_info); if (err) return err; @@ -975,7 +973,7 @@ static imgtoolerr_t os9_diskimage_nextenum(imgtool::directory *enumeration, imgt static imgtoolerr_t os9_diskimage_freespace(imgtool::partition *partition, UINT64 *size) { - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); const os9_diskinfo *disk_info; UINT32 free_lsns; @@ -991,7 +989,7 @@ static imgtoolerr_t os9_diskimage_freespace(imgtool::partition *partition, UINT6 static imgtoolerr_t os9_diskimage_readfile(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &destf) { imgtoolerr_t err; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); const os9_diskinfo *disk_info; struct os9_fileinfo file_info; UINT8 buffer[256]; @@ -1029,7 +1027,7 @@ static imgtoolerr_t os9_diskimage_readfile(imgtool::partition *partition, const static imgtoolerr_t os9_diskimage_writefile(imgtool::partition *partition, const char *path, const char *fork, imgtool::stream &sourcef, util::option_resolution *opts) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); struct os9_fileinfo file_info; size_t write_size; dynamic_buffer buf; @@ -1085,8 +1083,7 @@ static imgtoolerr_t os9_diskimage_delete(imgtool::partition *partition, const ch unsigned int delete_directory) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); - //const os9_diskinfo *disk_info; + imgtool::image &image(partition->image()); struct os9_fileinfo file_info; UINT32 dirent_lsn, dirent_index; UINT32 entry_lsn, entry_index; @@ -1173,7 +1170,7 @@ static imgtoolerr_t os9_diskimage_deletefile(imgtool::partition *partition, cons static imgtoolerr_t os9_diskimage_createdir(imgtool::partition *partition, const char *path) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); struct os9_fileinfo file_info; UINT8 dir_data[64]; UINT32 parent_lsn; diff --git a/src/tools/imgtool/modules/pc_flop.cpp b/src/tools/imgtool/modules/pc_flop.cpp index e44347465a4..3e08760cf7c 100644 --- a/src/tools/imgtool/modules/pc_flop.cpp +++ b/src/tools/imgtool/modules/pc_flop.cpp @@ -17,13 +17,13 @@ #define FAT_SECLEN 512 -static imgtoolerr_t fat_image_create(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *opts) +static imgtoolerr_t fat_image_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *opts) { imgtoolerr_t err; UINT32 tracks, heads, sectors; UINT8 buffer[FAT_SECLEN]; imgtool_class imgclass = { fat_get_info }; - imgtoolerr_t (*fat_partition_create)(imgtool::image *image, UINT64 first_block, UINT64 block_count); + imgtoolerr_t (*fat_partition_create)(imgtool::image &image, UINT64 first_block, UINT64 block_count); tracks = opts->lookup_int('T'); heads = opts->lookup_int('H'); @@ -35,12 +35,12 @@ static imgtoolerr_t fat_image_create(imgtool::image *image, imgtool::stream::ptr place_integer_le(buffer, 26, 2, heads); place_integer_le(buffer, 19, 2, (UINT16) (((UINT64) tracks * heads * sectors) >> 0)); place_integer_le(buffer, 32, 4, (UINT16) (((UINT64) tracks * heads * sectors) >> 16)); - err = image->write_block(0, buffer); + err = image.write_block(0, buffer); if (err) goto done; /* load fat_partition_create */ - fat_partition_create = (imgtoolerr_t (*)(imgtool::image *, UINT64, UINT64)) + fat_partition_create = (imgtoolerr_t (*)(imgtool::image &, UINT64, UINT64)) imgtool_get_info_fct(&imgclass, IMGTOOLINFO_PTR_CREATE_PARTITION); /* actually create the partition */ @@ -54,13 +54,13 @@ done: -static imgtoolerr_t fat_image_get_geometry(imgtool::image *image, UINT32 *tracks, UINT32 *heads, UINT32 *sectors) +static imgtoolerr_t fat_image_get_geometry(imgtool::image &image, UINT32 *tracks, UINT32 *heads, UINT32 *sectors) { imgtoolerr_t err; UINT64 total_sectors; UINT8 buffer[FAT_SECLEN]; - err = image->read_block(0, buffer); + err = image.read_block(0, buffer); if (err) return err; @@ -75,7 +75,7 @@ static imgtoolerr_t fat_image_get_geometry(imgtool::image *image, UINT32 *tracks -static imgtoolerr_t fat_get_sector_position(imgtool::image *image, UINT32 sector_index, +static imgtoolerr_t fat_get_sector_position(imgtool::image &image, UINT32 sector_index, UINT32 *track, UINT32 *head, UINT32 *sector) { imgtoolerr_t err; @@ -90,7 +90,7 @@ static imgtoolerr_t fat_get_sector_position(imgtool::image *image, UINT32 sector } else { - err = image->get_geometry(&tracks, &heads, §ors); + err = image.get_geometry(&tracks, &heads, §ors); if (err) return err; @@ -103,14 +103,14 @@ static imgtoolerr_t fat_get_sector_position(imgtool::image *image, UINT32 sector -static imgtoolerr_t fat_image_readblock(imgtool::image *image, void *buffer, UINT64 block) +static imgtoolerr_t fat_image_readblock(imgtool::image &image, void *buffer, UINT64 block) { imgtoolerr_t err; floperr_t ferr; UINT32 track, head, sector; UINT32 block_size; - err = image->get_block_size(block_size); + err = image.get_block_size(block_size); if (err) return err; @@ -126,14 +126,14 @@ static imgtoolerr_t fat_image_readblock(imgtool::image *image, void *buffer, UIN -static imgtoolerr_t fat_image_writeblock(imgtool::image *image, const void *buffer, UINT64 block) +static imgtoolerr_t fat_image_writeblock(imgtool::image &image, const void *buffer, UINT64 block) { imgtoolerr_t err; floperr_t ferr; UINT32 track, head, sector; UINT32 block_size; - err = image->get_block_size(block_size); + err = image.get_block_size(block_size); if (err) return err; diff --git a/src/tools/imgtool/modules/pc_hard.cpp b/src/tools/imgtool/modules/pc_hard.cpp index 13287b204e2..f989680bea0 100644 --- a/src/tools/imgtool/modules/pc_hard.cpp +++ b/src/tools/imgtool/modules/pc_hard.cpp @@ -127,7 +127,7 @@ static imgtoolerr_t pc_chd_partition_create(imgtool::image &image, int partition UINT32 first_cylinder, first_head, first_sector; UINT32 last_cylinder, last_head, last_sector; imgtool_class imgclass = { fat_get_info }; - imgtoolerr_t (*fat_partition_create)(imgtool::image *image, UINT64 first_block, UINT64 block_count); + imgtoolerr_t (*fat_partition_create)(imgtool::image &image, UINT64 first_block, UINT64 block_count); /* sanity checks */ assert((partition_index >= 0) && (partition_index <= 3)); @@ -137,11 +137,11 @@ static imgtoolerr_t pc_chd_partition_create(imgtool::image &image, int partition pc_chd_locate_block(image, first_block + block_count - 1, &last_cylinder, &last_head, &last_sector); /* load fat_partition_create */ - fat_partition_create = (imgtoolerr_t (*)(imgtool::image *, UINT64, UINT64)) + fat_partition_create = (imgtoolerr_t (*)(imgtool::image &, UINT64, UINT64)) imgtool_get_info_fct(&imgclass, IMGTOOLINFO_PTR_CREATE_PARTITION); /* first create the actual partition */ - err = fat_partition_create(&image, first_block, block_count); + err = fat_partition_create(image, first_block, block_count); if (err) goto done; @@ -232,7 +232,7 @@ static imgtoolerr_t pc_chd_read_partition_header(imgtool::image &image) -static imgtoolerr_t pc_chd_image_create(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *opts) +static imgtoolerr_t pc_chd_image_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *opts) { imgtoolerr_t err; UINT32 cylinders, heads, sectors; @@ -243,7 +243,7 @@ static imgtoolerr_t pc_chd_image_create(imgtool::image *image, imgtool::stream:: heads = opts->lookup_int('H'); sectors = opts->lookup_int('S'); - info = pc_chd_get_image_info(*image); + info = pc_chd_get_image_info(image); /* create the hard disk image */ err = imghd_create(*stream, 0, cylinders, heads, sectors, FAT_SECLEN); @@ -258,15 +258,15 @@ static imgtoolerr_t pc_chd_image_create(imgtool::image *image, imgtool::stream:: memset(header_block, 0, sizeof(header_block)); header_block[510] = 0x55; header_block[511] = 0xAA; - err = image->write_block(0, header_block); + err = image.write_block(0, header_block); if (err) goto done; - err = pc_chd_partition_create(*image, 0, 1, cylinders * heads * sectors - 1); + err = pc_chd_partition_create(image, 0, 1, cylinders * heads * sectors - 1); if (err) goto done; - err = pc_chd_read_partition_header(*image); + err = pc_chd_read_partition_header(image); if (err) goto done; @@ -278,19 +278,19 @@ done: -static imgtoolerr_t pc_chd_image_open(imgtool::image *image, imgtool::stream::ptr &&stream) +static imgtoolerr_t pc_chd_image_open(imgtool::image &image, imgtool::stream::ptr &&stream) { imgtoolerr_t err; pc_chd_image_info *info; - info = pc_chd_get_image_info(*image); + info = pc_chd_get_image_info(image); /* open the hard drive */ err = imghd_open(*stream, &info->hard_disk); if (err) return err; - err = pc_chd_read_partition_header(*image); + err = pc_chd_read_partition_header(image); if (err) return err; @@ -299,21 +299,21 @@ static imgtoolerr_t pc_chd_image_open(imgtool::image *image, imgtool::stream::pt -static void pc_chd_image_close(imgtool::image *image) +static void pc_chd_image_close(imgtool::image &image) { pc_chd_image_info *info; - info = pc_chd_get_image_info(*image); + info = pc_chd_get_image_info(image); imghd_close(&info->hard_disk); } -static imgtoolerr_t pc_chd_image_get_geometry(imgtool::image *image, UINT32 *tracks, UINT32 *heads, UINT32 *sectors) +static imgtoolerr_t pc_chd_image_get_geometry(imgtool::image &image, UINT32 *tracks, UINT32 *heads, UINT32 *sectors) { pc_chd_image_info *info; const hard_disk_info *hd_info; - info = pc_chd_get_image_info(*image); + info = pc_chd_get_image_info(image); hd_info = imghd_get_header(&info->hard_disk); *tracks = hd_info->cylinders; @@ -340,9 +340,9 @@ static UINT32 pc_chd_calc_lbasector(pc_chd_image_info &info, UINT32 track, UINT3 -static imgtoolerr_t pc_chd_image_readsector(imgtool::image *image, UINT32 track, UINT32 head, UINT32 sector, std::vector<UINT8> &buffer) +static imgtoolerr_t pc_chd_image_readsector(imgtool::image &image, UINT32 track, UINT32 head, UINT32 sector, std::vector<UINT8> &buffer) { - pc_chd_image_info *info = pc_chd_get_image_info(*image); + pc_chd_image_info *info = pc_chd_get_image_info(image); // get the sector size and resize the buffer UINT32 sector_size = imghd_get_header(&info->hard_disk)->sectorbytes; @@ -357,10 +357,10 @@ static imgtoolerr_t pc_chd_image_readsector(imgtool::image *image, UINT32 track, -static imgtoolerr_t pc_chd_image_writesector(imgtool::image *image, UINT32 track, UINT32 head, UINT32 sector, const void *buffer, size_t len, int ddam) +static imgtoolerr_t pc_chd_image_writesector(imgtool::image &image, UINT32 track, UINT32 head, UINT32 sector, const void *buffer, size_t len, int ddam) { pc_chd_image_info *info; - info = pc_chd_get_image_info(*image); + info = pc_chd_get_image_info(image); return imghd_write(&info->hard_disk, pc_chd_calc_lbasector(*info, track, head, sector), buffer); @@ -368,30 +368,30 @@ static imgtoolerr_t pc_chd_image_writesector(imgtool::image *image, UINT32 track -static imgtoolerr_t pc_chd_image_readblock(imgtool::image *image, void *buffer, UINT64 block) +static imgtoolerr_t pc_chd_image_readblock(imgtool::image &image, void *buffer, UINT64 block) { pc_chd_image_info *info; - info = pc_chd_get_image_info(*image); + info = pc_chd_get_image_info(image); return imghd_read(&info->hard_disk, block, buffer); } -static imgtoolerr_t pc_chd_image_writeblock(imgtool::image *image, const void *buffer, UINT64 block) +static imgtoolerr_t pc_chd_image_writeblock(imgtool::image &image, const void *buffer, UINT64 block) { pc_chd_image_info *info; - info = pc_chd_get_image_info(*image); + info = pc_chd_get_image_info(image); return imghd_write(&info->hard_disk, block, buffer); } -static imgtoolerr_t pc_chd_list_partitions(imgtool::image *image, imgtool_partition_info *partitions, size_t len) +static imgtoolerr_t pc_chd_list_partitions(imgtool::image &image, imgtool_partition_info *partitions, size_t len) { pc_chd_image_info *info; size_t i; - info = pc_chd_get_image_info(*image); + info = pc_chd_get_image_info(image); for (i = 0; i < std::min(size_t(4), len); i++) { diff --git a/src/tools/imgtool/modules/prodos.cpp b/src/tools/imgtool/modules/prodos.cpp index 584c5623d2f..50ee0ecbb68 100644 --- a/src/tools/imgtool/modules/prodos.cpp +++ b/src/tools/imgtool/modules/prodos.cpp @@ -2,7 +2,7 @@ // copyright-holders:Raphael Nabet /**************************************************************************** - prodos.c + prodos.cpp Apple II ProDOS disk images @@ -135,8 +135,8 @@ struct prodos_diskinfo { - imgtoolerr_t (*load_block)(imgtool::image *image, int block, void *buffer); - imgtoolerr_t (*save_block)(imgtool::image *image, int block, const void *buffer); + imgtoolerr_t (*load_block)(imgtool::image &image, int block, void *buffer); + imgtoolerr_t (*save_block)(imgtool::image &image, int block, const void *buffer); UINT8 dirent_size; UINT8 dirents_per_block; UINT16 volume_bitmap_block; @@ -265,7 +265,7 @@ static int is_dir_storagetype(UINT8 storage_type) -static prodos_diskinfo *get_prodos_info(imgtool::image *image) +static prodos_diskinfo *get_prodos_info(imgtool::image &image) { prodos_diskinfo *info; info = (prodos_diskinfo *) imgtool_floppy_extrabytes(image); @@ -276,7 +276,7 @@ static prodos_diskinfo *get_prodos_info(imgtool::image *image) /* ----------------------------------------------------------------------- */ -static void prodos_find_block_525(imgtool::image *image, int block, +static void prodos_find_block_525(imgtool::image &image, int block, UINT32 *track, UINT32 *head, UINT32 *sector1, UINT32 *sector2) { static const UINT8 skewing[] = @@ -295,7 +295,7 @@ static void prodos_find_block_525(imgtool::image *image, int block, -static imgtoolerr_t prodos_load_block_525(imgtool::image *image, +static imgtoolerr_t prodos_load_block_525(imgtool::image &image, int block, void *buffer) { floperr_t ferr; @@ -320,7 +320,7 @@ static imgtoolerr_t prodos_load_block_525(imgtool::image *image, -static imgtoolerr_t prodos_save_block_525(imgtool::image *image, +static imgtoolerr_t prodos_save_block_525(imgtool::image &image, int block, const void *buffer) { floperr_t ferr; @@ -345,7 +345,7 @@ static imgtoolerr_t prodos_save_block_525(imgtool::image *image, -static void prodos_setprocs_525(imgtool::image *image) +static void prodos_setprocs_525(imgtool::image &image) { prodos_diskinfo *info; info = get_prodos_info(image); @@ -357,7 +357,7 @@ static void prodos_setprocs_525(imgtool::image *image) /* ----------------------------------------------------------------------- */ -static imgtoolerr_t prodos_find_block_35(imgtool::image *image, int block, +static imgtoolerr_t prodos_find_block_35(imgtool::image &image, int block, UINT32 *track, UINT32 *head, UINT32 *sector) { int sides = 2; @@ -377,7 +377,7 @@ static imgtoolerr_t prodos_find_block_35(imgtool::image *image, int block, -static imgtoolerr_t prodos_load_block_35(imgtool::image *image, +static imgtoolerr_t prodos_load_block_35(imgtool::image &image, int block, void *buffer) { imgtoolerr_t err; @@ -397,7 +397,7 @@ static imgtoolerr_t prodos_load_block_35(imgtool::image *image, -static imgtoolerr_t prodos_save_block_35(imgtool::image *image, +static imgtoolerr_t prodos_save_block_35(imgtool::image &image, int block, const void *buffer) { imgtoolerr_t err; @@ -417,7 +417,7 @@ static imgtoolerr_t prodos_save_block_35(imgtool::image *image, -static void prodos_setprocs_35(imgtool::image *image) +static void prodos_setprocs_35(imgtool::image &image) { prodos_diskinfo *info; info = get_prodos_info(image); @@ -429,7 +429,7 @@ static void prodos_setprocs_35(imgtool::image *image) /* ----------------------------------------------------------------------- */ -static imgtoolerr_t prodos_load_block(imgtool::image *image, +static imgtoolerr_t prodos_load_block(imgtool::image &image, int block, void *buffer) { prodos_diskinfo *diskinfo; @@ -439,7 +439,7 @@ static imgtoolerr_t prodos_load_block(imgtool::image *image, -static imgtoolerr_t prodos_save_block(imgtool::image *image, +static imgtoolerr_t prodos_save_block(imgtool::image &image, int block, const void *buffer) { prodos_diskinfo *diskinfo; @@ -449,7 +449,7 @@ static imgtoolerr_t prodos_save_block(imgtool::image *image, -static imgtoolerr_t prodos_clear_block(imgtool::image *image, int block) +static imgtoolerr_t prodos_clear_block(imgtool::image &image, int block) { UINT8 buffer[BLOCK_SIZE]; memset(buffer, 0, sizeof(buffer)); @@ -460,7 +460,7 @@ static imgtoolerr_t prodos_clear_block(imgtool::image *image, int block) /* ----------------------------------------------------------------------- */ -static imgtoolerr_t prodos_diskimage_open(imgtool::image *image) +static imgtoolerr_t prodos_diskimage_open(imgtool::image &image) { imgtoolerr_t err; UINT8 buffer[BLOCK_SIZE]; @@ -502,7 +502,7 @@ static imgtoolerr_t prodos_diskimage_open(imgtool::image *image) -static imgtoolerr_t prodos_diskimage_open_525(imgtool::image *image, imgtool::stream::ptr &&dummy) +static imgtoolerr_t prodos_diskimage_open_525(imgtool::image &image, imgtool::stream::ptr &&dummy) { prodos_setprocs_525(image); return prodos_diskimage_open(image); @@ -510,7 +510,7 @@ static imgtoolerr_t prodos_diskimage_open_525(imgtool::image *image, imgtool::st -static imgtoolerr_t prodos_diskimage_open_35(imgtool::image *image, imgtool::stream::ptr &&dummy) +static imgtoolerr_t prodos_diskimage_open_35(imgtool::image &image, imgtool::stream::ptr &&dummy) { prodos_setprocs_35(image); return prodos_diskimage_open(image); @@ -520,7 +520,7 @@ static imgtoolerr_t prodos_diskimage_open_35(imgtool::image *image, imgtool::str /* ----------------------------------------------------------------------- */ -static imgtoolerr_t prodos_load_volume_bitmap(imgtool::image *image, UINT8 **bitmap) +static imgtoolerr_t prodos_load_volume_bitmap(imgtool::image &image, UINT8 **bitmap) { imgtoolerr_t err; prodos_diskinfo *di; @@ -559,7 +559,7 @@ done: -static imgtoolerr_t prodos_save_volume_bitmap(imgtool::image *image, const UINT8 *bitmap) +static imgtoolerr_t prodos_save_volume_bitmap(imgtool::image &image, const UINT8 *bitmap) { imgtoolerr_t err; prodos_diskinfo *di; @@ -604,7 +604,7 @@ static int prodos_get_volume_bitmap_bit(const UINT8 *buffer, UINT16 block) -static imgtoolerr_t prodos_alloc_block(imgtool::image *image, UINT8 *bitmap, +static imgtoolerr_t prodos_alloc_block(imgtool::image &image, UINT8 *bitmap, UINT16 *block) { imgtoolerr_t err = IMGTOOLERR_SUCCESS; @@ -660,7 +660,7 @@ done: /* ----------------------------------------------------------------------- */ -static imgtoolerr_t prodos_diskimage_create(imgtool::image *image, util::option_resolution *opts) +static imgtoolerr_t prodos_diskimage_create(imgtool::image &image, util::option_resolution *opts) { imgtoolerr_t err; UINT32 heads, tracks, sectors, sector_bytes; @@ -702,7 +702,7 @@ static imgtoolerr_t prodos_diskimage_create(imgtool::image *image, util::option_ -static imgtoolerr_t prodos_diskimage_create_525(imgtool::image *image, imgtool::stream::ptr &&dummy, util::option_resolution *opts) +static imgtoolerr_t prodos_diskimage_create_525(imgtool::image &image, imgtool::stream::ptr &&dummy, util::option_resolution *opts) { prodos_setprocs_525(image); return prodos_diskimage_create(image, opts); @@ -710,7 +710,7 @@ static imgtoolerr_t prodos_diskimage_create_525(imgtool::image *image, imgtool:: -static imgtoolerr_t prodos_diskimage_create_35(imgtool::image *image, imgtool::stream::ptr &&dummy, util::option_resolution *opts) +static imgtoolerr_t prodos_diskimage_create_35(imgtool::image &image, imgtool::stream::ptr &&dummy, util::option_resolution *opts) { prodos_setprocs_35(image); return prodos_diskimage_create(image, opts); @@ -720,7 +720,7 @@ static imgtoolerr_t prodos_diskimage_create_35(imgtool::image *image, imgtool::s /* ----------------------------------------------------------------------- */ -static imgtoolerr_t prodos_enum_seek(imgtool::image *image, +static imgtoolerr_t prodos_enum_seek(imgtool::image &image, prodos_direnum *appleenum, UINT32 block, UINT32 index) { imgtoolerr_t err; @@ -798,7 +798,7 @@ static UINT8 *alloc_info_block(UINT8 *buffer, size_t block_size, UINT8 block_typ -static imgtoolerr_t prodos_get_next_dirent(imgtool::image *image, +static imgtoolerr_t prodos_get_next_dirent(imgtool::image &image, prodos_direnum *appleenum, prodos_dirent *ent) { imgtoolerr_t err; @@ -908,7 +908,7 @@ static imgtoolerr_t prodos_get_next_dirent(imgtool::image *image, /* changes a normal file to a ProDOS extended file */ -static imgtoolerr_t prodos_promote_file(imgtool::image *image, UINT8 *bitmap, prodos_dirent *ent) +static imgtoolerr_t prodos_promote_file(imgtool::image &image, UINT8 *bitmap, prodos_dirent *ent) { imgtoolerr_t err; UINT16 new_block; @@ -933,7 +933,7 @@ static imgtoolerr_t prodos_promote_file(imgtool::image *image, UINT8 *bitmap, pr -static imgtoolerr_t prodos_put_dirent(imgtool::image *image, +static imgtoolerr_t prodos_put_dirent(imgtool::image &image, prodos_direnum *appleenum, prodos_dirent *ent) { imgtoolerr_t err; @@ -1066,7 +1066,7 @@ static imgtoolerr_t prodos_put_dirent(imgtool::image *image, -static imgtoolerr_t prodos_lookup_path(imgtool::image *image, const char *path, +static imgtoolerr_t prodos_lookup_path(imgtool::image &image, const char *path, creation_policy_t create, prodos_direnum *direnum, prodos_dirent *ent) { imgtoolerr_t err; @@ -1214,7 +1214,7 @@ done: -static imgtoolerr_t prodos_fill_file(imgtool::image *image, UINT8 *bitmap, +static imgtoolerr_t prodos_fill_file(imgtool::image &image, UINT8 *bitmap, UINT16 key_block, int key_block_allocated, int depth, UINT32 blockcount, UINT32 block_index) { @@ -1299,7 +1299,7 @@ static imgtoolerr_t prodos_fill_file(imgtool::image *image, UINT8 *bitmap, -static imgtoolerr_t prodos_set_file_block_count(imgtool::image *image, prodos_direnum *direnum, +static imgtoolerr_t prodos_set_file_block_count(imgtool::image &image, prodos_direnum *direnum, prodos_dirent *ent, UINT8 *bitmap, int fork_num, UINT32 new_blockcount) { imgtoolerr_t err; @@ -1423,7 +1423,7 @@ static imgtoolerr_t prodos_set_file_block_count(imgtool::image *image, prodos_di -static imgtoolerr_t prodos_set_file_size(imgtool::image *image, prodos_direnum *direnum, +static imgtoolerr_t prodos_set_file_size(imgtool::image &image, prodos_direnum *direnum, prodos_dirent *ent, int fork_num, UINT32 new_size) { imgtoolerr_t err = IMGTOOLERR_SUCCESS; @@ -1489,12 +1489,11 @@ static UINT32 prodos_get_storagetype_maxfilesize(UINT8 storage_type) static imgtoolerr_t prodos_diskimage_beginenum(imgtool::directory *enumeration, const char *path) { imgtoolerr_t err; - imgtool::image *image; + imgtool::image &image(enumeration->image()); prodos_direnum *appleenum; prodos_dirent ent; UINT16 block = ROOTDIR_BLOCK; - image = &enumeration->image(); appleenum = (prodos_direnum *) enumeration->extra_bytes(); /* find subdirectory, if appropriate */ @@ -1524,12 +1523,11 @@ static imgtoolerr_t prodos_diskimage_beginenum(imgtool::directory *enumeration, static imgtoolerr_t prodos_diskimage_nextenum(imgtool::directory *enumeration, imgtool_dirent *ent) { imgtoolerr_t err; - imgtool::image *image; + imgtool::image &image(enumeration->image()); prodos_direnum *appleenum; prodos_dirent pd_ent; UINT32 max_filesize; - image = &enumeration->image(); appleenum = (prodos_direnum *) enumeration->extra_bytes(); do @@ -1570,7 +1568,7 @@ static imgtoolerr_t prodos_diskimage_nextenum(imgtool::directory *enumeration, i -static imgtoolerr_t prodos_read_file_tree(imgtool::image *image, UINT32 *filesize, +static imgtoolerr_t prodos_read_file_tree(imgtool::image &image, UINT32 *filesize, UINT32 block, int nest_level, imgtool::stream &destf) { imgtoolerr_t err; @@ -1620,7 +1618,7 @@ static imgtoolerr_t prodos_read_file_tree(imgtool::image *image, UINT32 *filesiz -static imgtoolerr_t prodos_write_file_tree(imgtool::image *image, UINT32 *filesize, +static imgtoolerr_t prodos_write_file_tree(imgtool::image &image, UINT32 *filesize, UINT32 block, int nest_level, imgtool::stream &sourcef) { imgtoolerr_t err; @@ -1678,7 +1676,7 @@ static imgtoolerr_t prodos_write_file_tree(imgtool::image *image, UINT32 *filesi static imgtoolerr_t prodos_diskimage_freespace(imgtool::partition *partition, UINT64 *size) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); prodos_diskinfo *di; UINT8 *bitmap = NULL; UINT16 i; @@ -1707,7 +1705,7 @@ done: static imgtoolerr_t prodos_diskimage_readfile(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &destf) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); prodos_dirent ent; UINT16 key_pointer; int nest_level; @@ -1747,7 +1745,7 @@ static imgtoolerr_t prodos_diskimage_readfile(imgtool::partition *partition, con static imgtoolerr_t prodos_diskimage_writefile(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &sourcef, util::option_resolution *opts) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); prodos_dirent ent; prodos_direnum direnum; UINT64 file_size; @@ -1785,7 +1783,7 @@ static imgtoolerr_t prodos_diskimage_writefile(imgtool::partition *partition, co static imgtoolerr_t prodos_diskimage_deletefile(imgtool::partition *partition, const char *path) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); prodos_dirent ent; prodos_direnum direnum; @@ -1818,7 +1816,7 @@ static imgtoolerr_t prodos_diskimage_deletefile(imgtool::partition *partition, c static imgtoolerr_t prodos_diskimage_listforks(imgtool::partition *partition, const char *path, imgtool_forkent *ents, size_t len) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); prodos_dirent ent; prodos_direnum direnum; int fork_num = 0; @@ -1854,7 +1852,7 @@ static imgtoolerr_t prodos_diskimage_listforks(imgtool::partition *partition, co static imgtoolerr_t prodos_diskimage_createdir(imgtool::partition *partition, const char *path) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); prodos_dirent ent; prodos_direnum direnum; @@ -1871,7 +1869,7 @@ static imgtoolerr_t prodos_diskimage_createdir(imgtool::partition *partition, co -static imgtoolerr_t prodos_free_directory(imgtool::image *image, UINT8 *volume_bitmap, UINT16 key_pointer) +static imgtoolerr_t prodos_free_directory(imgtool::image &image, UINT8 *volume_bitmap, UINT16 key_pointer) { imgtoolerr_t err; prodos_diskinfo *di; @@ -1912,7 +1910,7 @@ static imgtoolerr_t prodos_free_directory(imgtool::image *image, UINT8 *volume_b static imgtoolerr_t prodos_diskimage_deletedir(imgtool::partition *partition, const char *path) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); prodos_dirent ent; prodos_direnum direnum; UINT8 *volume_bitmap = NULL; @@ -1953,7 +1951,7 @@ done: -static imgtoolerr_t prodos_get_file_tree(imgtool::image *image, imgtool_chainent *chain, size_t chain_size, +static imgtoolerr_t prodos_get_file_tree(imgtool::image &image, imgtool_chainent *chain, size_t chain_size, size_t *chain_pos, UINT16 block, UINT8 total_depth, UINT8 cur_depth) { imgtoolerr_t err; @@ -2002,7 +2000,7 @@ static imgtoolerr_t prodos_get_file_tree(imgtool::image *image, imgtool_chainent static imgtoolerr_t prodos_diskimage_getattrs(imgtool::partition *partition, const char *path, const UINT32 *attrs, imgtool_attribute *values) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); prodos_dirent ent; int i; @@ -2065,7 +2063,7 @@ static imgtoolerr_t prodos_diskimage_getattrs(imgtool::partition *partition, con static imgtoolerr_t prodos_diskimage_setattrs(imgtool::partition *partition, const char *path, const UINT32 *attrs, const imgtool_attribute *values) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); prodos_dirent ent; prodos_direnum direnum; int i; @@ -2133,7 +2131,7 @@ static imgtoolerr_t prodos_diskimage_setattrs(imgtool::partition *partition, con static imgtoolerr_t prodos_diskimage_suggesttransfer(imgtool::partition *partition, const char *path, imgtool_transfer_suggestion *suggestions, size_t suggestions_length) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); prodos_dirent ent; mac_filecategory_t file_category = MAC_FILECATEGORY_DATA; @@ -2156,7 +2154,7 @@ static imgtoolerr_t prodos_diskimage_suggesttransfer(imgtool::partition *partiti static imgtoolerr_t prodos_diskimage_getchain(imgtool::partition *partition, const char *path, imgtool_chainent *chain, size_t chain_size) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); prodos_dirent ent; size_t chain_pos = 0; int fork_num; diff --git a/src/tools/imgtool/modules/psion.cpp b/src/tools/imgtool/modules/psion.cpp index 81ad35653bd..4f9cc40168a 100644 --- a/src/tools/imgtool/modules/psion.cpp +++ b/src/tools/imgtool/modules/psion.cpp @@ -49,6 +49,11 @@ struct psion_iter UINT16 index; }; +static psion_pack *get_psion_pack(imgtool::image &image) +{ + return (psion_pack*)image.extra_bytes(); +} + UINT16 head_checksum(UINT8* data) { UINT16 checksum = 0; @@ -385,9 +390,9 @@ UINT16 get_ob3(imgtool::stream &instream, imgtool::stream &outstream, UINT8 type return size; } -static imgtoolerr_t datapack_open(imgtool::image *image, imgtool::stream::ptr &&stream) +static imgtoolerr_t datapack_open(imgtool::image &image, imgtool::stream::ptr &&stream) { - psion_pack *pack = (psion_pack*)image->extra_bytes(); + psion_pack *pack = get_psion_pack(image); char opk_magic[4]; stream->read(opk_magic, 4); @@ -408,9 +413,9 @@ static imgtoolerr_t datapack_open(imgtool::image *image, imgtool::stream::ptr && } } -static imgtoolerr_t datapack_create(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *opts) +static imgtoolerr_t datapack_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *opts) { - psion_pack *pack = (psion_pack*)image->extra_bytes(); + psion_pack *pack = get_psion_pack(image); static const UINT8 opk_magic[4] = {'O', 'P', 'K', 0x00}; UINT8 pack_head[8] = {0x40, 0x00, 0x59, 0x01, 0x01, 0x01, 0x00, 0x00}; UINT16 checksum; @@ -450,9 +455,9 @@ static imgtoolerr_t datapack_create(imgtool::image *image, imgtool::stream::ptr } } -static void datapack_close( imgtool::image *image) +static void datapack_close(imgtool::image &image) { - psion_pack *pack = (psion_pack*)image->extra_bytes(); + psion_pack *pack = get_psion_pack(image); delete pack->stream; } @@ -467,8 +472,8 @@ static imgtoolerr_t datapack_begin_enum(imgtool::directory *enumeration, const c static imgtoolerr_t datapack_next_enum(imgtool::directory *enumeration, imgtool_dirent *ent) { - imgtool::image *image = &enumeration->image(); - psion_pack *pack = (psion_pack*)image->extra_bytes(); + imgtool::image &image(enumeration->image()); + psion_pack *pack = get_psion_pack(image); psion_iter *iter = (psion_iter*)enumeration->extra_bytes(); UINT8 data = 0; @@ -508,8 +513,8 @@ static void datapack_close_enum( imgtool::directory *enumeration) static imgtoolerr_t datapack_free_space( imgtool::partition *partition, UINT64 *size) { - imgtool::image *image = &partition->image(); - psion_pack *pack = (psion_pack*)image->extra_bytes(); + imgtool::image &image(partition->image()); + psion_pack *pack = get_psion_pack(image); UINT32 pack_size = 0; pack->stream->seek(0x07, SEEK_SET); @@ -523,8 +528,8 @@ static imgtoolerr_t datapack_free_space( imgtool::partition *partition, UINT64 * static imgtoolerr_t datapack_read_file(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &destf) { - imgtool::image *image = &partition->image(); - psion_pack *pack = (psion_pack*)image->extra_bytes(); + imgtool::image &image(partition->image()); + psion_pack *pack = get_psion_pack(image); int index = seek_file_name(pack, filename); if (index >= 0) @@ -555,8 +560,8 @@ static imgtoolerr_t datapack_read_file(imgtool::partition *partition, const char static imgtoolerr_t datapack_write_file( imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &sourcef, util::option_resolution *opts) { - imgtool::image *image = &partition->image(); - psion_pack *pack = (psion_pack*)image->extra_bytes(); + imgtool::image &image(partition->image()); + psion_pack *pack = get_psion_pack(image); static const UINT8 data_head[4] = {0x02, 0x80, 0x00, 0x00}; UINT8 head[3]; UINT16 size = 0; @@ -617,8 +622,8 @@ static imgtoolerr_t datapack_write_file( imgtool::partition *partition, const ch static imgtoolerr_t datapack_delete_file( imgtool::partition *partition, const char *filename) { - imgtool::image *image = &partition->image(); - psion_pack *pack = (psion_pack*)image->extra_bytes(); + imgtool::image &image(partition->image()); + psion_pack *pack = get_psion_pack(image); int index = seek_file_name(pack, filename); if (index >= 0) diff --git a/src/tools/imgtool/modules/rsdos.cpp b/src/tools/imgtool/modules/rsdos.cpp index 501a50e814e..a7a082b6e95 100644 --- a/src/tools/imgtool/modules/rsdos.cpp +++ b/src/tools/imgtool/modules/rsdos.cpp @@ -44,14 +44,14 @@ struct rsdos_direnum *********************************************************************/ #define MAX_DIRENTS ((18-2)*(256/32)) -static floperr_t get_rsdos_dirent(imgtool::image *f, int index_loc, struct rsdos_dirent *ent) +static floperr_t get_rsdos_dirent(imgtool::image &f, int index_loc, struct rsdos_dirent *ent) { return floppy_read_sector(imgtool_floppy(f), 0, 17, 3, index_loc * 32, (void *) ent, sizeof(*ent)); } -static floperr_t put_rsdos_dirent(imgtool::image *f, int index_loc, const struct rsdos_dirent *ent) +static floperr_t put_rsdos_dirent(imgtool::image &f, int index_loc, const struct rsdos_dirent *ent) { if (index_loc >= MAX_DIRENTS) return (floperr_t)IMGTOOLERR_FILENOTFOUND; @@ -80,7 +80,7 @@ static void get_dirent_fname(char *fnamebuf, const struct rsdos_dirent *ent) -static imgtoolerr_t lookup_rsdos_file(imgtool::image *f, const char *fname, struct rsdos_dirent *ent, int *position) +static imgtoolerr_t lookup_rsdos_file(imgtool::image &f, const char *fname, struct rsdos_dirent *ent, int *position) { int i; floperr_t ferr; @@ -115,7 +115,7 @@ static imgtoolerr_t lookup_rsdos_file(imgtool::image *f, const char *fname, stru -static UINT8 get_granule_count(imgtool::image *img) +static UINT8 get_granule_count(imgtool::image &img) { UINT16 tracks; UINT16 granules; @@ -128,7 +128,7 @@ static UINT8 get_granule_count(imgtool::image *img) #define MAX_GRANULEMAP_SIZE 256 /* granule_map must be an array of MAX_GRANULEMAP_SIZE bytes */ -static floperr_t get_granule_map(imgtool::image *img, UINT8 *granule_map, UINT8 *granule_count) +static floperr_t get_granule_map(imgtool::image &img, UINT8 *granule_map, UINT8 *granule_count) { UINT8 count; @@ -141,7 +141,7 @@ static floperr_t get_granule_map(imgtool::image *img, UINT8 *granule_map, UINT8 -static floperr_t put_granule_map(imgtool::image *img, const UINT8 *granule_map, UINT8 granule_count) +static floperr_t put_granule_map(imgtool::image &img, const UINT8 *granule_map, UINT8 granule_count) { return floppy_write_sector(imgtool_floppy(img), 0, 17, 2, 0, granule_map, granule_count, 0); /* TODO: pass ddam argument from imgtool */ } @@ -149,7 +149,7 @@ static floperr_t put_granule_map(imgtool::image *img, const UINT8 *granule_map, -static imgtoolerr_t transfer_granule(imgtool::image *img, UINT8 granule, int length, imgtool::stream &f, imgtoolerr_t (*proc)(imgtool::image *, int, int, int, int, size_t, imgtool::stream &)) +static imgtoolerr_t transfer_granule(imgtool::image &img, UINT8 granule, int length, imgtool::stream &f, imgtoolerr_t (*proc)(imgtool::image &, int, int, int, int, size_t, imgtool::stream &)) { imgtoolerr_t err = IMGTOOLERR_SUCCESS; UINT8 track, sector; @@ -167,21 +167,21 @@ static imgtoolerr_t transfer_granule(imgtool::image *img, UINT8 granule, int len -static imgtoolerr_t transfer_from_granule(imgtool::image *img, UINT8 granule, int length, imgtool::stream &destf) +static imgtoolerr_t transfer_from_granule(imgtool::image &img, UINT8 granule, int length, imgtool::stream &destf) { return transfer_granule(img, granule, length, destf, imgtool_floppy_read_sector_to_stream); } -static imgtoolerr_t transfer_to_granule(imgtool::image *img, UINT8 granule, int length, imgtool::stream &sourcef) +static imgtoolerr_t transfer_to_granule(imgtool::image &img, UINT8 granule, int length, imgtool::stream &sourcef) { return transfer_granule(img, granule, length, sourcef, imgtool_floppy_write_sector_from_stream); } -static imgtoolerr_t process_rsdos_file(struct rsdos_dirent *ent, imgtool::image *img, imgtool::stream *destf, size_t *size) +static imgtoolerr_t process_rsdos_file(struct rsdos_dirent *ent, imgtool::image &img, imgtool::stream *destf, size_t *size) { floperr_t ferr; size_t s, lastgransize; @@ -270,9 +270,8 @@ static imgtoolerr_t rsdos_diskimage_nextenum(imgtool::directory *enumeration, im struct rsdos_direnum *rsenum; struct rsdos_dirent rsent; char fname[13]; - imgtool::image *image; - image = &enumeration->image(); + imgtool::image &image(enumeration->image()); rsenum = (struct rsdos_direnum *) enumeration->extra_bytes(); /* Did we hit the end of file before? */ @@ -334,7 +333,7 @@ static imgtoolerr_t rsdos_diskimage_freespace(imgtool::partition *partition, UIN size_t s = 0; UINT8 granule_count; UINT8 granule_map[MAX_GRANULEMAP_SIZE]; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); ferr = get_granule_map(image, granule_map, &granule_count); if (ferr) @@ -351,7 +350,7 @@ static imgtoolerr_t rsdos_diskimage_freespace(imgtool::partition *partition, UIN -static imgtoolerr_t delete_entry(imgtool::image *img, struct rsdos_dirent *ent, int pos) +static imgtoolerr_t delete_entry(imgtool::image &img, struct rsdos_dirent *ent, int pos) { floperr_t ferr; unsigned char g, i; @@ -391,7 +390,7 @@ static imgtoolerr_t rsdos_diskimage_readfile(imgtool::partition *partition, cons imgtoolerr_t err; struct rsdos_dirent ent; size_t size; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); err = lookup_rsdos_file(img, fname, &ent, NULL); if (err) @@ -413,7 +412,7 @@ static imgtoolerr_t rsdos_diskimage_writefile(imgtool::partition *partition, con { floperr_t ferr; imgtoolerr_t err; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); struct rsdos_dirent ent, ent2; size_t i; UINT64 sz; @@ -517,7 +516,7 @@ static imgtoolerr_t rsdos_diskimage_writefile(imgtool::partition *partition, con static imgtoolerr_t rsdos_diskimage_deletefile(imgtool::partition *partition, const char *fname) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); int pos; struct rsdos_dirent ent; @@ -533,7 +532,7 @@ static imgtoolerr_t rsdos_diskimage_deletefile(imgtool::partition *partition, co static imgtoolerr_t rsdos_diskimage_suggesttransfer(imgtool::partition *partition, const char *fname, imgtool_transfer_suggestion *suggestions, size_t suggestions_length) { imgtoolerr_t err; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); struct rsdos_dirent ent; int pos; diff --git a/src/tools/imgtool/modules/thomson.cpp b/src/tools/imgtool/modules/thomson.cpp index 343f128c2bf..aa6a9977d3e 100644 --- a/src/tools/imgtool/modules/thomson.cpp +++ b/src/tools/imgtool/modules/thomson.cpp @@ -167,6 +167,11 @@ static UINT8* thom_get_sector(thom_floppy* f, unsigned head, unsigned track, unsigned sector); +static thom_floppy *get_thom_floppy(imgtool::image &image) +{ + return (thom_floppy*)image.extra_bytes(); +} + /*********************** .fd / .qd format ************************/ /* .fd and .qd formats are very simple: the sectors are simply put one after @@ -177,9 +182,9 @@ static UINT8* thom_get_sector(thom_floppy* f, unsigned head, (.fd have 40 or 80 tracks, .qd have 25 tracks) and the file size. */ -static imgtoolerr_t thom_open_fd_qd(imgtool::image *img, imgtool::stream::ptr &&stream) +static imgtoolerr_t thom_open_fd_qd(imgtool::image &img, imgtool::stream::ptr &&stream) { - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + thom_floppy* f = get_thom_floppy(img); int size = stream->size(); f->stream = stream.get(); @@ -246,9 +251,9 @@ static imgtoolerr_t thom_open_fd_qd(imgtool::image *img, imgtool::stream::ptr && return IMGTOOLERR_SUCCESS; } -static void thom_close_fd_qd(imgtool::image *img) +static void thom_close_fd_qd(imgtool::image &img) { - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + thom_floppy* f = get_thom_floppy(img); /* save image */ if ( f->modified ) { @@ -309,9 +314,9 @@ static UINT16 thom_sap_crc( UINT8* data, int size ) return crc; } -static imgtoolerr_t thom_open_sap(imgtool::image *img, imgtool::stream::ptr &&stream) +static imgtoolerr_t thom_open_sap(imgtool::image &img, imgtool::stream::ptr &&stream) { - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + thom_floppy* f = get_thom_floppy(img); UINT8 buf[262]; f->stream = stream.get(); @@ -375,9 +380,9 @@ static imgtoolerr_t thom_open_sap(imgtool::image *img, imgtool::stream::ptr &&st return IMGTOOLERR_SUCCESS; } -static void thom_close_sap(imgtool::image *img) +static void thom_close_sap(imgtool::image &img) { - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + thom_floppy* f = get_thom_floppy(img); if ( f->modified ) { int i, sector, track; @@ -803,20 +808,20 @@ static void thom_put_file(thom_floppy* f, unsigned head, /********************** module functions ***********************/ -static imgtoolerr_t thom_get_geometry(imgtool::image* img, UINT32* tracks, +static imgtoolerr_t thom_get_geometry(imgtool::image &img, UINT32* tracks, UINT32* heads, UINT32* sectors) { - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + thom_floppy* f = get_thom_floppy(img); if ( tracks ) *tracks = f->tracks; if ( heads ) *heads = f->heads; if ( sectors ) *sectors = 16; return IMGTOOLERR_SUCCESS; } -static imgtoolerr_t thom_read_sector(imgtool::image* img, UINT32 track, +static imgtoolerr_t thom_read_sector(imgtool::image &img, UINT32 track, UINT32 head, UINT32 sector, std::vector<UINT8> &buffer) { - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + thom_floppy* f = get_thom_floppy(img); if ( head >= f->heads || sector < 1 || sector > 16 || track >= f->tracks ) return IMGTOOLERR_SEEKERROR; @@ -828,11 +833,11 @@ static imgtoolerr_t thom_read_sector(imgtool::image* img, UINT32 track, return IMGTOOLERR_SUCCESS; } -static imgtoolerr_t thom_write_sector(imgtool::image *img, UINT32 track, +static imgtoolerr_t thom_write_sector(imgtool::image &img, UINT32 track, UINT32 head, UINT32 sector, const void *buf, size_t len, int ddam) { - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + thom_floppy* f = get_thom_floppy(img); if ( f->stream->is_read_only() ) return IMGTOOLERR_WRITEERROR; if ( head >= f->heads || sector < 1 || sector > 16 || track >= f->tracks ) return IMGTOOLERR_SEEKERROR; @@ -845,9 +850,9 @@ static imgtoolerr_t thom_write_sector(imgtool::image *img, UINT32 track, /* returns floopy name */ /* actually, each side has its own name, but we only return the one on side 0. */ -static void thom_info(imgtool::image *img, char *string, size_t len) +static void thom_info(imgtool::image &img, char *string, size_t len) { - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + thom_floppy* f = get_thom_floppy(img); UINT8* base = thom_get_sector( f, 0, 20, 1 ); char buf[9]; memcpy( buf, base, 8 ); @@ -858,11 +863,11 @@ static void thom_info(imgtool::image *img, char *string, size_t len) /* each side of a floppy has its own filesystem, we treat them as'partitions' */ -static imgtoolerr_t thom_list_partitions(imgtool::image *img, +static imgtoolerr_t thom_list_partitions(imgtool::image &img, imgtool_partition_info *partitions, size_t len) { - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + thom_floppy* f = get_thom_floppy(img); if ( len >= 1 ) { partitions[0].get_info = thom_basic_get_info; partitions[0].base_block = 0; @@ -879,8 +884,8 @@ static imgtoolerr_t thom_list_partitions(imgtool::image *img, static imgtoolerr_t thom_open_partition(imgtool::partition *part, UINT64 first_block, UINT64 block_count) { - imgtool::image* img = &part->image(); - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + imgtool::image &img(part->image()); + thom_floppy* f = get_thom_floppy(img); if ( first_block >= f->heads ) return IMGTOOLERR_INVALIDPARTITION; * ( (int*) part->extra_bytes() ) = first_block; @@ -901,8 +906,8 @@ static imgtoolerr_t thom_next_enum(imgtool::directory *enumeration, { imgtool::partition *part = &enumeration->partition(); int head = *( (int*) part->extra_bytes() ); - imgtool::image* img = &part->image(); - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + imgtool::image &img(part->image()); + thom_floppy* f = get_thom_floppy(img); int* n = (int*) enumeration->extra_bytes(); thom_dirent d; @@ -937,8 +942,8 @@ static imgtoolerr_t thom_next_enum(imgtool::directory *enumeration, static imgtoolerr_t thom_free_space(imgtool::partition *part, UINT64 *size) { int head = *( (int*) part->extra_bytes() ); - imgtool::image* img = &part->image(); - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + imgtool::image &img(part->image()); + thom_floppy* f = get_thom_floppy(img); int nb = thom_get_free_blocks( f, head ); (*size) = nb * f->sectuse_size * 8; return IMGTOOLERR_SUCCESS; @@ -950,8 +955,8 @@ static imgtoolerr_t thom_read_file(imgtool::partition *part, imgtool::stream &destf) { int head = *( (int*) part->extra_bytes() ); - imgtool::image* img = &part->image(); - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + imgtool::image &img(part->image()); + thom_floppy* f = get_thom_floppy(img); thom_dirent d; char name[9], ext[4], fname[14]; int size; @@ -972,8 +977,8 @@ static imgtoolerr_t thom_delete_file(imgtool::partition *part, const char *filename) { int head = *( (int*) part->extra_bytes() ); - imgtool::image* img = &part->image(); - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + imgtool::image &img(part->image()); + thom_floppy* f = get_thom_floppy(img); thom_dirent d; char name[9], ext[4], fname[14]; @@ -996,8 +1001,8 @@ static imgtoolerr_t thom_write_file(imgtool::partition *part, util::option_resolution *opts) { int head = *( (int*) part->extra_bytes() ); - imgtool::image* img = &part->image(); - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + imgtool::image &img(part->image()); + thom_floppy* f = get_thom_floppy(img); thom_dirent d; int size = sourcef.size(); int blocks = thom_get_free_blocks( f, head ); @@ -1079,8 +1084,8 @@ static imgtoolerr_t thom_suggest_transfer(imgtool::partition *part, size_t suggestions_length) { int head = *( (int*) part->extra_bytes() ); - imgtool::image* img = &part->image(); - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + imgtool::image &img(part->image()); + thom_floppy* f = get_thom_floppy(img); thom_dirent d; int is_basic = 0; @@ -1116,11 +1121,11 @@ static imgtoolerr_t thom_suggest_transfer(imgtool::partition *part, return IMGTOOLERR_SUCCESS; } -static imgtoolerr_t thom_create(imgtool::image* img, +static imgtoolerr_t thom_create(imgtool::image &img, imgtool::stream::ptr &&stream, util::option_resolution *opts) { - thom_floppy* f = (thom_floppy*) img->extra_bytes(); + thom_floppy* f = get_thom_floppy(img); int i; UINT8* buf; const char* name; diff --git a/src/tools/imgtool/modules/ti99.cpp b/src/tools/imgtool/modules/ti99.cpp index bb3a17356fc..82905264d68 100644 --- a/src/tools/imgtool/modules/ti99.cpp +++ b/src/tools/imgtool/modules/ti99.cpp @@ -1745,6 +1745,11 @@ struct ti99_lvl2_fileref }; }; +static struct ti99_lvl2_imgref *get_lvl2_imgref(imgtool::image &image) +{ + return (struct ti99_lvl2_imgref *) image.extra_bytes(); +} + /* Compare two (possibly empty) catalog entry for qsort */ @@ -3848,13 +3853,13 @@ struct win_iterator }; -static imgtoolerr_t dsk_image_init_mess(imgtool::image *image, imgtool::stream::ptr &&stream); -static imgtoolerr_t dsk_image_init_v9t9(imgtool::image *image, imgtool::stream::ptr &&stream); -static imgtoolerr_t dsk_image_init_pc99_fm(imgtool::image *image, imgtool::stream::ptr &&stream); -static imgtoolerr_t dsk_image_init_pc99_mfm(imgtool::image *image, imgtool::stream::ptr &&stream); -static imgtoolerr_t win_image_init(imgtool::image *image, imgtool::stream::ptr &&stream); -static void ti99_image_exit(imgtool::image *img); -static void ti99_image_info(imgtool::image *img, char *string, size_t len); +static imgtoolerr_t dsk_image_init_mess(imgtool::image &image, imgtool::stream::ptr &&stream); +static imgtoolerr_t dsk_image_init_v9t9(imgtool::image &image, imgtool::stream::ptr &&stream); +static imgtoolerr_t dsk_image_init_pc99_fm(imgtool::image &image, imgtool::stream::ptr &&stream); +static imgtoolerr_t dsk_image_init_pc99_mfm(imgtool::image &image, imgtool::stream::ptr &&stream); +static imgtoolerr_t win_image_init(imgtool::image &image, imgtool::stream::ptr &&stream); +static void ti99_image_exit(imgtool::image &img); +static void ti99_image_info(imgtool::image &img, char *string, size_t len); static imgtoolerr_t dsk_image_beginenum(imgtool::directory *enumeration, const char *path); static imgtoolerr_t dsk_image_nextenum(imgtool::directory *enumeration, imgtool_dirent *ent); static imgtoolerr_t win_image_beginenum(imgtool::directory *enumeration, const char *path); @@ -3864,8 +3869,8 @@ static imgtoolerr_t ti99_image_readfile(imgtool::partition *partition, const cha static imgtoolerr_t ti99_image_writefile(imgtool::partition *partition, const char *fpath, const char *fork, imgtool::stream &sourcef, util::option_resolution *writeoptions); static imgtoolerr_t dsk_image_deletefile(imgtool::partition *partition, const char *fpath); static imgtoolerr_t win_image_deletefile(imgtool::partition *partition, const char *fpath); -static imgtoolerr_t dsk_image_create_mess(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions); -static imgtoolerr_t dsk_image_create_v9t9(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions); +static imgtoolerr_t dsk_image_create_mess(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions); +static imgtoolerr_t dsk_image_create_v9t9(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions); enum { @@ -3995,9 +4000,9 @@ void ti99_ti99hd_get_info(const imgtool_class *imgclass, UINT32 state, union img /* Open a file as a ti99_image (common code). */ -static imgtoolerr_t dsk_image_init(imgtool::image *img, imgtool::stream::ptr &&stream, ti99_img_format img_format) +static imgtoolerr_t dsk_image_init(imgtool::image &img, imgtool::stream::ptr &&stream, ti99_img_format img_format) { - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) img->extra_bytes(); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(img); dsk_vib vib; imgtoolerr_t reply; int totphysrecs; @@ -4096,7 +4101,7 @@ static imgtoolerr_t dsk_image_init(imgtool::image *img, imgtool::stream::ptr &&s /* Open a file as a ti99_image (MESS format). */ -static imgtoolerr_t dsk_image_init_mess(imgtool::image *image, imgtool::stream::ptr &&stream) +static imgtoolerr_t dsk_image_init_mess(imgtool::image &image, imgtool::stream::ptr &&stream) { return dsk_image_init(image, std::move(stream), if_mess); } @@ -4104,7 +4109,7 @@ static imgtoolerr_t dsk_image_init_mess(imgtool::image *image, imgtool::stream:: /* Open a file as a ti99_image (V9T9 format). */ -static imgtoolerr_t dsk_image_init_v9t9(imgtool::image *image, imgtool::stream::ptr &&stream) +static imgtoolerr_t dsk_image_init_v9t9(imgtool::image &image, imgtool::stream::ptr &&stream) { return dsk_image_init(image, std::move(stream), if_v9t9); } @@ -4112,7 +4117,7 @@ static imgtoolerr_t dsk_image_init_v9t9(imgtool::image *image, imgtool::stream:: /* Open a file as a ti99_image (PC99 FM format). */ -static imgtoolerr_t dsk_image_init_pc99_fm(imgtool::image *image, imgtool::stream::ptr &&stream) +static imgtoolerr_t dsk_image_init_pc99_fm(imgtool::image &image, imgtool::stream::ptr &&stream) { return dsk_image_init(image, std::move(stream), if_pc99_fm); } @@ -4120,7 +4125,7 @@ static imgtoolerr_t dsk_image_init_pc99_fm(imgtool::image *image, imgtool::strea /* Open a file as a ti99_image (PC99 MFM format). */ -static imgtoolerr_t dsk_image_init_pc99_mfm(imgtool::image *image, imgtool::stream::ptr &&stream) +static imgtoolerr_t dsk_image_init_pc99_mfm(imgtool::image &image, imgtool::stream::ptr &&stream) { return dsk_image_init(image, std::move(stream), if_pc99_mfm); } @@ -4128,9 +4133,9 @@ static imgtoolerr_t dsk_image_init_pc99_mfm(imgtool::image *image, imgtool::stre /* Open a file as a ti99_image (harddisk format). */ -static imgtoolerr_t win_image_init(imgtool::image *img, imgtool::stream::ptr &&stream) +static imgtoolerr_t win_image_init(imgtool::image &img, imgtool::stream::ptr &&stream) { - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) img->extra_bytes(); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(img); win_vib_ddr vib; int reply; int i; @@ -4184,9 +4189,9 @@ static imgtoolerr_t win_image_init(imgtool::image *img, imgtool::stream::ptr &&s /* close a ti99_image */ -static void ti99_image_exit(imgtool::image *img) +static void ti99_image_exit(imgtool::image &img) { - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) img->extra_bytes(); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(img); close_image_lvl1(&image->l1_img); } @@ -4196,9 +4201,9 @@ static void ti99_image_exit(imgtool::image *img) Currently returns the volume name */ -static void ti99_image_info(imgtool::image *img, char *string, size_t len) +static void ti99_image_info(imgtool::image &img, char *string, size_t len) { - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) img->extra_bytes(); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(img); char vol_name[11]; fname_to_str(vol_name, image->vol_name, 11); @@ -4211,7 +4216,7 @@ static void ti99_image_info(imgtool::image *img, char *string, size_t len) */ static imgtoolerr_t dsk_image_beginenum(imgtool::directory *enumeration, const char *path) { - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) enumeration->image().extra_bytes(); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(enumeration->image()); dsk_iterator *iter = (dsk_iterator *) enumeration->extra_bytes(); iter->image = image; @@ -4336,7 +4341,7 @@ static imgtoolerr_t dsk_image_nextenum(imgtool::directory *enumeration, imgtool_ */ static imgtoolerr_t win_image_beginenum(imgtool::directory *enumeration, const char *path) { - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) enumeration->image().extra_bytes(); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(enumeration->image()); win_iterator *iter = (win_iterator *) enumeration->extra_bytes(); imgtoolerr_t errorcode; @@ -4480,8 +4485,8 @@ static imgtoolerr_t win_image_nextenum(imgtool::directory *enumeration, imgtool_ */ static imgtoolerr_t ti99_image_freespace(imgtool::partition *partition, UINT64 *size) { - imgtool::image *img = &partition->image(); - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) img->extra_bytes(); + imgtool::image &img(partition->image()); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(img); size_t freeAUs; int i; @@ -4504,11 +4509,11 @@ static imgtoolerr_t ti99_image_freespace(imgtool::partition *partition, UINT64 * */ static imgtoolerr_t ti99_image_readfile(imgtool::partition *partition, const char *fpath, const char *fork, imgtool::stream &destf) { - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); #if 1 /* extract data as TIFILES */ - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) img->extra_bytes(); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(img); ti99_lvl2_fileref src_file; ti99_lvl2_fileref dst_file; ti99_date_time date_time; @@ -4595,7 +4600,7 @@ static imgtoolerr_t ti99_image_readfile(imgtool::partition *partition, const cha #else - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) img->extra_bytes(); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(img); ti99_lvl3_fileref src_file; UINT8 buf[256]; int reclen; @@ -4646,8 +4651,8 @@ static imgtoolerr_t ti99_image_readfile(imgtool::partition *partition, const cha */ static imgtoolerr_t ti99_image_writefile(imgtool::partition *partition, const char *fpath, const char *fork, imgtool::stream &sourcef, util::option_resolution *writeoptions) { - imgtool::image *img = &partition->image(); - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) img->extra_bytes(); + imgtool::image &img(partition->image()); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(img); const char *filename; char ti_fname[10]; ti99_lvl2_fileref src_file; @@ -4872,8 +4877,8 @@ static imgtoolerr_t ti99_image_writefile(imgtool::partition *partition, const ch */ static imgtoolerr_t dsk_image_deletefile(imgtool::partition *partition, const char *fpath) { - imgtool::image *img = &partition->image(); - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) img->extra_bytes(); + imgtool::image &img(partition->image()); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(img); dsk_fdr fdr; int i, cluster_index; unsigned cur_AU, cluster_lastfphysrec; @@ -5014,8 +5019,8 @@ static imgtoolerr_t dsk_image_deletefile(imgtool::partition *partition, const ch static imgtoolerr_t win_image_deletefile(imgtool::partition *partition, const char *fpath) { - imgtool::image *img = &partition->image(); - struct ti99_lvl2_imgref *image = (struct ti99_lvl2_imgref *) img->extra_bytes(); + imgtool::image &img(partition->image()); + struct ti99_lvl2_imgref *image = get_lvl2_imgref(img); int parent_ddr_AU, is_dir, catalog_index; win_fdr fdr; int i; @@ -5226,7 +5231,7 @@ static imgtoolerr_t win_image_deletefile(imgtool::partition *partition, const ch Supports MESS and V9T9 formats only */ -static imgtoolerr_t dsk_image_create(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions, ti99_img_format img_format) +static imgtoolerr_t dsk_image_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions, ti99_img_format img_format) { const char *volname; int density; @@ -5346,7 +5351,7 @@ static imgtoolerr_t dsk_image_create(imgtool::image *image, imgtool::stream::ptr /* Create a blank ti99_image (MESS format). */ -static imgtoolerr_t dsk_image_create_mess(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions) +static imgtoolerr_t dsk_image_create_mess(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions) { return dsk_image_create(image, std::move(stream), createoptions, if_mess); } @@ -5354,7 +5359,7 @@ static imgtoolerr_t dsk_image_create_mess(imgtool::image *image, imgtool::stream /* Create a blank ti99_image (V9T9 format). */ -static imgtoolerr_t dsk_image_create_v9t9(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions) +static imgtoolerr_t dsk_image_create_v9t9(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions) { return dsk_image_create(image, std::move(stream), createoptions, if_v9t9); } diff --git a/src/tools/imgtool/modules/ti990hd.cpp b/src/tools/imgtool/modules/ti990hd.cpp index fc768e268e4..a7b0acc1eac 100644 --- a/src/tools/imgtool/modules/ti990hd.cpp +++ b/src/tools/imgtool/modules/ti990hd.cpp @@ -385,10 +385,15 @@ struct ti990_iterator directory_entry xdr[MAX_DIR_LEVEL]; /* fdr records */ }; +static ti990_image *get_ti990_image(imgtool::image &image) +{ + return (ti990_image *)image.extra_bytes(); +} -static imgtoolerr_t ti990_image_init(imgtool::image *img, imgtool::stream::ptr &&stream); -static void ti990_image_exit(imgtool::image *img); -static void ti990_image_info(imgtool::image *img, char *string, size_t len); + +static imgtoolerr_t ti990_image_init(imgtool::image &img, imgtool::stream::ptr &&stream); +static void ti990_image_exit(imgtool::image &img); +static void ti990_image_info(imgtool::image &img, char *string, size_t len); static imgtoolerr_t ti990_image_beginenum(imgtool::directory *enumeration, const char *path); static imgtoolerr_t ti990_image_nextenum(imgtool::directory *enumeration, imgtool_dirent *ent); static void ti990_image_closeenum(imgtool::directory *enumeration); @@ -398,7 +403,7 @@ static imgtoolerr_t ti990_image_readfile(imgtool::partition *partition, const ch static imgtoolerr_t ti990_image_writefile(imgtool::partition *partition, const char *fpath, imgtool::stream *sourcef, util::option_resolution *writeoptions); static imgtoolerr_t ti990_image_deletefile(imgtool::partition *partition, const char *fpath); #endif -static imgtoolerr_t ti990_image_create(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions); +static imgtoolerr_t ti990_image_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions); enum { @@ -1106,9 +1111,9 @@ static int qsort_catalog_compare(const void *p1, const void *p2) /* Open a file as a ti990_image. */ -static imgtoolerr_t ti990_image_init(imgtool::image *img, imgtool::stream::ptr &&stream) +static imgtoolerr_t ti990_image_init(imgtool::image &img, imgtool::stream::ptr &&stream) { - ti990_image *image = (ti990_image *) img->extra_bytes(); + ti990_image *image = get_ti990_image(img); disk_image_header header; int reply; unsigned totsecs; @@ -1163,9 +1168,9 @@ static imgtoolerr_t ti990_image_init(imgtool::image *img, imgtool::stream::ptr & /* close a ti990_image */ -static void ti990_image_exit(imgtool::image *img) +static void ti990_image_exit(imgtool::image &img) { - ti990_image *image = (ti990_image *) img->extra_bytes(); + ti990_image *image = get_ti990_image(img); delete image->file_handle; } @@ -1174,9 +1179,9 @@ static void ti990_image_exit(imgtool::image *img) Currently returns the volume name */ -static void ti990_image_info(imgtool::image *img, char *string, size_t len) +static void ti990_image_info(imgtool::image &img, char *string, size_t len) { - ti990_image *image = (ti990_image *) img->extra_bytes(); + ti990_image *image = get_ti990_image(img); char vol_name[9]; fname_to_str(vol_name, image->sec0.vnm, 9); @@ -1416,8 +1421,8 @@ static void ti990_image_closeenum(imgtool::directory *enumeration) */ static imgtoolerr_t ti990_image_freespace(imgtool::partition *partition, UINT64 *size) { - imgtool::image *img = &partition->image(); - ti990_image *image = (ti990_image *) img->extra_bytes(); + imgtool::image &img(partition->image()); + ti990_image *image = get_ti990_image(img); int totadus = get_UINT16BE(image->sec0.tna); int adu, record, sub_adu; char buf[256]; @@ -1457,7 +1462,7 @@ static imgtoolerr_t ti990_image_freespace(imgtool::partition *partition, UINT64 static imgtoolerr_t ti990_image_readfile(imgtool::partition *partition, const char *fpath, imgtool::stream *destf) { imgtool::image *img = &partition->image(); - ti990_image *image = (ti990_image *) img->extra_bytes(); + ti990_image *image = get_ti990_image(img); int catalog_index, fdr_secnum, parent_fdr_secnum; imgtoolerr_t reply; @@ -1554,7 +1559,7 @@ static imgtoolerr_t ti990_image_readfile(imgtool::partition *partition, const ch static imgtoolerr_t ti990_image_writefile(imgtool::partition *partition, const char *fpath, imgtool::stream *sourcef, util::option_resolution *writeoptions) { imgtool::image *img = &partition->image(); - ti990_image *image = (ti990_image *) img->extra_bytes(); + ti990_image *image = get_ti990_image(img); int catalog_index, fdr_secnum, parent_fdr_secnum; imgtoolerr_t reply; @@ -1678,7 +1683,7 @@ static imgtoolerr_t ti990_image_writefile(imgtool::partition *partition, const c static imgtoolerr_t ti990_image_deletefile(imgtool::partition *partition, const char *fpath) { imgtool::image *img = &partition->image(); - ti990_image *image = (ti990_image *) img->extra_bytes(); + ti990_image *image = get_ti990_image(img); int catalog_index, fdr_secnum, parent_fdr_secnum; imgtoolerr_t reply; @@ -1765,7 +1770,7 @@ static imgtoolerr_t ti990_image_deletefile(imgtool::partition *partition, const /* Create a blank ti990_image. */ -static imgtoolerr_t ti990_image_create(imgtool::image *image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions) +static imgtoolerr_t ti990_image_create(imgtool::image &image, imgtool::stream::ptr &&stream, util::option_resolution *createoptions) { //const char *volname; ti990_geometry geometry; diff --git a/src/tools/imgtool/modules/vzdos.cpp b/src/tools/imgtool/modules/vzdos.cpp index 612c5ebe8fc..b6ded13f5ab 100644 --- a/src/tools/imgtool/modules/vzdos.cpp +++ b/src/tools/imgtool/modules/vzdos.cpp @@ -2,7 +2,7 @@ // copyright-holders:Dirk Best /**************************************************************************** - vzdos.c + vzdos.cpp Laser/VZ disk images @@ -93,7 +93,7 @@ static UINT16 chksum16(UINT8 *buffer, int len) } /* returns the offset where the actual sector data starts */ -static imgtoolerr_t vzdos_get_data_start(imgtool::image *img, int track, int sector, int *start) +static imgtoolerr_t vzdos_get_data_start(imgtool::image &img, int track, int sector, int *start) { imgtoolerr_t ret; UINT8 buffer[25]; /* enough to read the sector header */ @@ -115,7 +115,7 @@ static imgtoolerr_t vzdos_get_data_start(imgtool::image *img, int track, int sec } /* return the actual data of a sector */ -static imgtoolerr_t vzdos_read_sector_data(imgtool::image *img, int track, int sector, UINT8 *data) +static imgtoolerr_t vzdos_read_sector_data(imgtool::image &img, int track, int sector, UINT8 *data) { int ret, data_start; UINT8 buffer[DATA_SIZE + 4]; /* data + checksum */ @@ -136,7 +136,7 @@ static imgtoolerr_t vzdos_read_sector_data(imgtool::image *img, int track, int s } /* write data to sector */ -static imgtoolerr_t vzdos_write_sector_data(imgtool::image *img, int track, int sector, UINT8 *data) +static imgtoolerr_t vzdos_write_sector_data(imgtool::image &img, int track, int sector, UINT8 *data) { int ret, data_start; UINT8 buffer[DATA_SIZE + 4]; /* data + checksum */ @@ -154,7 +154,7 @@ static imgtoolerr_t vzdos_write_sector_data(imgtool::image *img, int track, int } /* write formatted empty sector */ -static imgtoolerr_t vzdos_clear_sector(imgtool::image *img, int track, int sector) +static imgtoolerr_t vzdos_clear_sector(imgtool::image &img, int track, int sector) { UINT8 data[DATA_SIZE + 2]; @@ -164,7 +164,7 @@ static imgtoolerr_t vzdos_clear_sector(imgtool::image *img, int track, int secto } /* return a directory entry for an index */ -static imgtoolerr_t vzdos_get_dirent(imgtool::image *img, int index, vzdos_dirent *ent) +static imgtoolerr_t vzdos_get_dirent(imgtool::image &img, int index, vzdos_dirent *ent) { int ret, entry; UINT8 buffer[DATA_SIZE + 2]; @@ -194,7 +194,7 @@ static imgtoolerr_t vzdos_get_dirent(imgtool::image *img, int index, vzdos_diren } /* save a directory entry to disk */ -static imgtoolerr_t vzdos_set_dirent(imgtool::image *img, int index, vzdos_dirent ent) +static imgtoolerr_t vzdos_set_dirent(imgtool::image &img, int index, vzdos_dirent ent) { int ret, entry; UINT8 buffer[DATA_SIZE + 2]; @@ -219,7 +219,7 @@ static imgtoolerr_t vzdos_set_dirent(imgtool::image *img, int index, vzdos_diren } /* clear a directory entry */ -static imgtoolerr_t vzdos_clear_dirent(imgtool::image *img, int index) +static imgtoolerr_t vzdos_clear_dirent(imgtool::image &img, int index) { int ret; vzdos_dirent entry; @@ -233,7 +233,7 @@ static imgtoolerr_t vzdos_clear_dirent(imgtool::image *img, int index) } /* search the index for a directory entry */ -static imgtoolerr_t vzdos_searchentry(imgtool::image *image, const char *fname, int *entry) { +static imgtoolerr_t vzdos_searchentry(imgtool::image &image, const char *fname, int *entry) { int i, len, ret; vzdos_dirent ent; char filename[9]; @@ -272,7 +272,7 @@ static imgtoolerr_t vzdos_searchentry(imgtool::image *image, const char *fname, } /* return a directory entry for a filename */ -static imgtoolerr_t vzdos_get_dirent_fname(imgtool::image *img, const char *fname, vzdos_dirent *ent) +static imgtoolerr_t vzdos_get_dirent_fname(imgtool::image &img, const char *fname, vzdos_dirent *ent) { int ret, index; @@ -285,7 +285,7 @@ static imgtoolerr_t vzdos_get_dirent_fname(imgtool::image *img, const char *fnam return IMGTOOLERR_SUCCESS; } -static imgtoolerr_t vzdos_toggle_trackmap(imgtool::image *img, int track, int sector, int clear) +static imgtoolerr_t vzdos_toggle_trackmap(imgtool::image &img, int track, int sector, int clear) { int ret, value, bit; UINT8 buffer[DATA_SIZE + 2]; @@ -309,19 +309,19 @@ static imgtoolerr_t vzdos_toggle_trackmap(imgtool::image *img, int track, int se } /* clear a trackmap entry */ -static imgtoolerr_t vzdos_clear_trackmap(imgtool::image *img, int track, int sector) +static imgtoolerr_t vzdos_clear_trackmap(imgtool::image &img, int track, int sector) { return vzdos_toggle_trackmap(img, track, sector, 1); } /* enable a trackmap entry */ -static imgtoolerr_t vzdos_set_trackmap(imgtool::image *img, int track, int sector) +static imgtoolerr_t vzdos_set_trackmap(imgtool::image &img, int track, int sector) { return vzdos_toggle_trackmap(img, track, sector, 0); } /* return the status of a trackmap entry */ -static imgtoolerr_t vzdos_get_trackmap(imgtool::image *img, int track, int sector, int *used) +static imgtoolerr_t vzdos_get_trackmap(imgtool::image &img, int track, int sector, int *used) { int ret, value, bit; UINT8 buffer[DATA_SIZE + 2]; @@ -342,7 +342,7 @@ static imgtoolerr_t vzdos_get_trackmap(imgtool::image *img, int track, int secto } /* return the next free sector */ -static imgtoolerr_t vzdos_free_trackmap(imgtool::image *img, int *track, int *sector) +static imgtoolerr_t vzdos_free_trackmap(imgtool::image &img, int *track, int *sector) { int ret, used = 0; @@ -357,7 +357,7 @@ static imgtoolerr_t vzdos_free_trackmap(imgtool::image *img, int *track, int *se return IMGTOOLERR_NOSPACE; } -static imgtoolerr_t vzdos_write_formatted_sector(imgtool::image *img, int track, int sector) +static imgtoolerr_t vzdos_write_formatted_sector(imgtool::image &img, int track, int sector) { int ret; UINT8 sector_data[DATA_SIZE + 4 + 24]; @@ -410,7 +410,7 @@ static imgtoolerr_t vzdos_diskimage_nextenum(imgtool::directory *enumeration, im int ret, len; vzdos_dirent dirent; - ret = vzdos_get_dirent(&enumeration->image(), iter->index - 1, &dirent); + ret = vzdos_get_dirent(enumeration->image(), iter->index - 1, &dirent); if (ret == IMGTOOLERR_FILENOTFOUND) { @@ -459,7 +459,7 @@ static imgtoolerr_t vzdos_diskimage_freespace(imgtool::partition *partition, UIN { imgtoolerr_t ret; int i; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); UINT8 c, v, buffer[DATA_SIZE + 2]; *size = 0; @@ -481,7 +481,7 @@ static imgtoolerr_t vzdos_diskimage_freespace(imgtool::partition *partition, UIN static imgtoolerr_t vzdos_diskimage_readfile(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &destf) { imgtoolerr_t ret; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); int filesize, track, sector; vzdos_dirent ent; UINT8 buffer[DATA_SIZE + 2]; @@ -527,7 +527,7 @@ static imgtoolerr_t vzdos_diskimage_readfile(imgtool::partition *partition, cons static imgtoolerr_t vzdos_diskimage_deletefile(imgtool::partition *partition, const char *fname) { imgtoolerr_t ret; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); int index, filesize, track, sector, next_track, next_sector; vzdos_dirent entry, next_entry; UINT8 buffer[DATA_SIZE + 2]; @@ -605,7 +605,7 @@ static imgtoolerr_t vzdos_diskimage_deletefile(imgtool::partition *partition, co static imgtoolerr_t vzdos_writefile(imgtool::partition *partition, int offset, imgtool::stream &sourcef, vzdos_dirent *entry) { imgtoolerr_t ret; - imgtool::image *img = &partition->image(); + imgtool::image &img(partition->image()); int index, track, sector, toread, next_track, next_sector; vzdos_dirent temp_entry; UINT64 filesize = 0, freespace = 0; @@ -744,7 +744,7 @@ static imgtoolerr_t vzdos_diskimage_writefile(imgtool::partition *partition, con static imgtoolerr_t vzdos_diskimage_suggesttransfer(imgtool::partition *partition, const char *fname, imgtool_transfer_suggestion *suggestions, size_t suggestions_length) { imgtoolerr_t ret; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); vzdos_dirent entry; if (fname) { @@ -789,7 +789,7 @@ static imgtoolerr_t vzdos_diskimage_suggesttransfer(imgtool::partition *partitio return IMGTOOLERR_SUCCESS; } -static imgtoolerr_t vzdos_diskimage_create(imgtool::image *img, imgtool::stream::ptr &&dummy, util::option_resolution *opts) +static imgtoolerr_t vzdos_diskimage_create(imgtool::image &img, imgtool::stream::ptr &&dummy, util::option_resolution *opts) { imgtoolerr_t ret; int track, sector; @@ -811,7 +811,7 @@ static imgtoolerr_t vzdos_diskimage_create(imgtool::image *img, imgtool::stream: static imgtoolerr_t vzsnapshot_readfile(imgtool::partition *partition, const char *filename, const char *fork, imgtool::stream &destf) { imgtoolerr_t ret; - imgtool::image *image = &partition->image(); + imgtool::image &image(partition->image()); vzdos_dirent entry; UINT8 header[24]; |