summaryrefslogtreecommitdiff
path: root/blockdev/linux/ext4_filedev.c
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2017-01-12 13:45:04 +0000
committerCarl Hetherington <cth@carlh.net>2017-01-12 13:45:04 +0000
commit3902d297cd3bbb1c2a0a1fc790454a9a60bc606a (patch)
tree8c797f533102d897eb8813dfca6e5ccd44537417 /blockdev/linux/ext4_filedev.c
parente18b3d66d9f442862304fbe0b99e0068be22f590 (diff)
Add call to set up the partition offset for filedev.
Diffstat (limited to 'blockdev/linux/ext4_filedev.c')
-rw-r--r--blockdev/linux/ext4_filedev.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/blockdev/linux/ext4_filedev.c b/blockdev/linux/ext4_filedev.c
index d441799..864e6c6 100644
--- a/blockdev/linux/ext4_filedev.c
+++ b/blockdev/linux/ext4_filedev.c
@@ -38,6 +38,7 @@
/**@brief Default filename.*/
static const char *fname = "ext2";
+static uint64_t offset = 0;
/**@brief Image block size.*/
#define EXT4_FILEDEV_BSIZE 512
@@ -73,8 +74,8 @@ static int filedev_open(struct ext4_blockdev *bdev)
if (fseeko(dev_file, 0, SEEK_END))
return EFAULT;
- _filedev.part_offset = 0;
- _filedev.part_size = ftello(dev_file);
+ _filedev.part_offset = offset;
+ _filedev.part_size = ftello(dev_file) - offset;
_filedev.bdif->ph_bcnt = _filedev.part_size / _filedev.bdif->ph_bsize;
return EOK;
@@ -133,5 +134,6 @@ static int filedev_close(struct ext4_blockdev *bdev)
struct ext4_blockdev *ext4_filedev_get(void) { return &_filedev; }
/******************************************************************************/
void ext4_filedev_filename(const char *n) { fname = n; }
+void ext4_filedev_offset(uint64_t o) { offset = o; }
/******************************************************************************/