Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/littlefs-project/littlefs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Haster <geky@geky.net>2023-09-12 07:23:07 +0300
committerChristopher Haster <geky@geky.net>2023-09-12 09:31:21 +0300
commit2c222af17d8c3066e663b3adca422bf8ea50c243 (patch)
tree53dcc3c2e4514f551262890184e67655698cefe2
parent127d84b68146490730c2648bff533a3969add267 (diff)
Tweaked lfs_fsinfo block_size/block_count fields
Mainly to match superblock ordering and emphasize these are logical blocks.
-rw-r--r--lfs.c10
-rw-r--r--lfs.h16
2 files changed, 13 insertions, 13 deletions
diff --git a/lfs.c b/lfs.c
index 60c5a8b..99550fe 100644
--- a/lfs.c
+++ b/lfs.c
@@ -46,7 +46,8 @@ static int lfs_bd_read(lfs_t *lfs,
lfs_block_t block, lfs_off_t off,
void *buffer, lfs_size_t size) {
uint8_t *data = buffer;
- if (off+size > lfs->cfg->block_size || (lfs->block_count && block >= lfs->block_count)) {
+ if (off+size > lfs->cfg->block_size
+ || (lfs->block_count && block >= lfs->block_count)) {
return LFS_ERR_CORRUPT;
}
@@ -4509,14 +4510,15 @@ static int lfs_fs_rawstat(lfs_t *lfs, struct lfs_fsinfo *fsinfo) {
fsinfo->disk_version = superblock.version;
}
+ // filesystem geometry
+ fsinfo->block_size = lfs->cfg->block_size;
+ fsinfo->block_count = lfs->block_count;
+
// other on-disk configuration, we cache all of these for internal use
fsinfo->name_max = lfs->name_max;
fsinfo->file_max = lfs->file_max;
fsinfo->attr_max = lfs->attr_max;
- fsinfo->block_count = lfs->block_count;
- fsinfo->block_size = lfs->cfg->block_size;
-
return 0;
}
diff --git a/lfs.h b/lfs.h
index c777f30..6f40c55 100644
--- a/lfs.h
+++ b/lfs.h
@@ -293,6 +293,12 @@ struct lfs_fsinfo {
// On-disk version.
uint32_t disk_version;
+ // Size of a logical block in bytes.
+ lfs_size_t block_size;
+
+ // Number of logical blocks in filesystem.
+ lfs_size_t block_count;
+
// Upper limit on the length of file names in bytes.
lfs_size_t name_max;
@@ -301,13 +307,6 @@ struct lfs_fsinfo {
// Upper limit on the size of custom attributes in bytes.
lfs_size_t attr_max;
-
- // Number of blocks in filesystem.
- // May differ from cfg->block_count if autodetected from filesystem.
- lfs_size_t block_count;
-
- // Size of block in bytes.
- lfs_size_t block_size;
};
// Custom attribute structure, used to describe custom attributes
@@ -440,12 +439,11 @@ typedef struct lfs {
} free;
const struct lfs_config *cfg;
+ lfs_size_t block_count;
lfs_size_t name_max;
lfs_size_t file_max;
lfs_size_t attr_max;
- lfs_size_t block_count;
-
#ifdef LFS_MIGRATE
struct lfs1 *lfs1;
#endif