summaryrefslogtreecommitdiffstatshomepage
path: root/src/tools/imgtool/modules/cybiko.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/imgtool/modules/cybiko.cpp')
-rw-r--r--src/tools/imgtool/modules/cybiko.cpp37
1 files changed, 21 insertions, 16 deletions
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;