From: Carl Hetherington Date: Thu, 12 Jan 2017 13:45:04 +0000 (+0000) Subject: Add call to set up the partition offset for filedev. X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;h=3902d297cd3bbb1c2a0a1fc790454a9a60bc606a;p=lwext4.git Add call to set up the partition offset for filedev. --- 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; } /******************************************************************************/ diff --git a/blockdev/linux/ext4_filedev.h b/blockdev/linux/ext4_filedev.h index 8f13d9a..ce3ecdd 100644 --- a/blockdev/linux/ext4_filedev.h +++ b/blockdev/linux/ext4_filedev.h @@ -39,5 +39,7 @@ struct ext4_blockdev *ext4_filedev_get(void); /**@brief Set filename to open.*/ void ext4_filedev_filename(const char *n); +/**@brief Set offset to work at within file (in bytes) */ +void ext4_filedev_offset(uint64_t o); #endif /* EXT4_FILEDEV_H_ */