diff --git a/lib_littlefs/lib_littlefs/api/lfs.h b/lib_littlefs/lib_littlefs/api/lfs.h index 739fa30..ec81025 100644 --- a/lib_littlefs/lib_littlefs/api/lfs.h +++ b/lib_littlefs/lib_littlefs/api/lfs.h @@ -183,10 +183,12 @@ struct lfs_config { #ifdef LFS_THREADSAFE // Lock the underlying block device. Negative error codes // are propagated to the user. + LFS_FPTRGROUP("lfs_cfg_lock_fptr_grp") int (*lock)(const struct lfs_config *c); // Unlock the underlying block device. Negative error codes // are propagated to the user. + LFS_FPTRGROUP("lfs_cfg_unlock_fptr_grp") int (*unlock)(const struct lfs_config *c); #endif diff --git a/lib_littlefs/lib_littlefs/api/lfs_util.h b/lib_littlefs/lib_littlefs/api/lfs_util.h index 7102b69..a8985af 100644 --- a/lib_littlefs/lib_littlefs/api/lfs_util.h +++ b/lib_littlefs/lib_littlefs/api/lfs_util.h @@ -63,6 +63,13 @@ extern "C" #endif +// xCORE fptrgroup attribute for stack analysis +#ifdef __xcore__ +#define LFS_FPTRGROUP(name) __attribute__((fptrgroup(name))) +#else +#define LFS_FPTRGROUP(name) +#endif + // Macros, may be replaced by system specific wrappers. Arguments to these // macros must not have side-effects as the macros can be removed for a smaller // code footprint diff --git a/lib_littlefs/lib_littlefs/src/lfs.c b/lib_littlefs/lib_littlefs/src/lfs.c index 8ef1cfc..82ab063 100644 --- a/lib_littlefs/lib_littlefs/src/lfs.c +++ b/lib_littlefs/lib_littlefs/src/lfs.c @@ -593,6 +593,7 @@ static void lfs_fs_prepsuperblock(lfs_t *lfs, bool needssuperblock); #ifdef LFS_MIGRATE static int lfs1_traverse(lfs_t *lfs, + LFS_FPTRGROUP("lfs_traverse_cb_fptr_grp") int (*cb)(void*, lfs_block_t), void *data); #endif @@ -5555,7 +5556,9 @@ static int lfs1_dir_next(lfs_t *lfs, lfs1_dir_t *dir, lfs1_entry_t *entry) { } /// littlefs v1 specific operations /// -int lfs1_traverse(lfs_t *lfs, int (*cb)(void*, lfs_block_t), void *data) { +int lfs1_traverse(lfs_t *lfs, + LFS_FPTRGROUP("lfs_traverse_cb_fptr_grp") + int (*cb)(void*, lfs_block_t), void *data) { if (lfs_pair_isnull(lfs->lfs1->root)) { return 0; }