Folded lfsr_ck_t into lfsr_data_t

This reduces lfsr_ck_t to just the cksize/cksum fields, and moves all of
the compile-time ifdef LFS_CKDATACKSUMS logic up into the relevant
lfsr_data_* functions.

This doesn't solve the lfsr_data_t/lfsr_bptr_t duplication problem,
unfortunately, but does simplify the code base a bit.

No significant code changes:

                        code          stack          ctx
  default before:      38128           2624          752
  default after:       38128 (+0.0%)   2624 (+0.0%)  752 (+0.0%)

  ckdatacksums before: 39240           3008          752
  ckdatacksums after:  39232 (-0.0%)   3008 (+0.0%)  752 (+0.0%)
This commit is contained in:
Christopher Haster
2025-01-04 13:45:03 -06:00
parent 1d21355707
commit 6307cba8bb
2 changed files with 166 additions and 245 deletions
+5 -11
View File
@@ -612,16 +612,6 @@ typedef struct lfsr_omdir {
// lfs_block_t tail[2];
//} lfs_mdir_t;
#ifdef LFS_CKDATACKSUMS
// context for validating data
typedef struct lfsr_ck {
// cksize=0 => no checksum
// cksize>0 => yes checksum
lfs_size_t cksize;
uint32_t cksum;
} lfsr_ck_t;
#endif
// either an on-disk or in-device data pointer
typedef struct lfsr_data {
// sign(size)=0 => in-RAM buffer
@@ -632,8 +622,12 @@ typedef struct lfsr_data {
struct {
lfs_block_t block;
lfs_size_t off;
// optional context for validating data
#ifdef LFS_CKDATACKSUMS
lfsr_ck_t ck;
// cksize==0 => no checksum
// cksize!=0 => yes checksum
lfs_size_t cksize;
uint32_t cksum;
#endif
} disk;
} u;