From 37677a62c3d4baa4c70cefd9646ba62fd1e62649 Mon Sep 17 00:00:00 2001 From: Jan Sucan Date: Sun, 6 Jun 2021 13:51:00 +0200 Subject: Fix restoring a diff image --- src/file.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/file.c') diff --git a/src/file.c b/src/file.c index 634bb3b..57a847a 100644 --- a/src/file.c +++ b/src/file.c @@ -48,3 +48,20 @@ file_size(FILE *const file) return size; } + +size_t +file_read_sectors(FILE *const file, char *const buffer, uint32_t buffer_size, + uint32_t sector_size) +{ + const size_t bytes_read = fread(buffer, 1U, buffer_size, file); + + if (ferror(file)) { + print_error("cannot read from file: %s", strerror(errno)); + return 0; + } else if ((bytes_read % sector_size) != 0) { + print_error("data read from input file is not multiple of sector size"); + return 0; + } else { + return (bytes_read / sector_size); + } +} -- cgit v1.2.3