diff --git a/lfs.c b/lfs.c index a18752c4..3d716acc 100644 --- a/lfs.c +++ b/lfs.c @@ -8,23 +8,6 @@ #include "lfs.h" #include "lfs_util.h" -// Configuration Sanity Check -#if (LFS_NAME_MAX <= 0) || (LFS_NAME_MAX > 1022) -#error "LFS_NAME_MAX must be in the range (0, 1022]" -#endif - -#if (LFS_FILE_MAX <= 0) || (LFS_FILE_MAX > 4294967295) -#error "LFS_FILE_MAX must be in the range (0, 4294967295]" -#endif - -#if (LFS_FILE_MAX > 2147483647) -#warning "LFS_FILE_MAX>2147483647; lfs_file_seek, lfs_file_size, and lfs_file_tell will not function properly." -#endif - -#if (LFS_ATTR_MAX < 0) || (LFS_ATTR_MAX > 1022) -#error "LFS_ATTR_MAX must be in the range [0, 1022]" -#endif - // some constants used throughout the code #define LFS_BLOCK_NULL ((lfs_block_t)-1) @@ -4123,6 +4106,21 @@ static int lfs_rawremoveattr(lfs_t *lfs, const char *path, uint8_t type) { /// Filesystem operations /// + +// compile time checks, see lfs.h for why these limits exist +#if LFS_NAME_MAX > 1022 +#error "Invalid LFS_NAME_MAX, must be <= 1022" +#endif + +#if LFS_FILE_MAX > 4294967295 +#error "Invalid LFS_FILE_MAX, must be <= 4294967295" +#endif + +#if LFS_ATTR_MAX > 1022 +#error "Invalid LFS_ATTR_MAX, must be <= 1022" +#endif + +// common filesystem initialization static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) { lfs->cfg = cfg; lfs->block_count = cfg->block_count; // May be 0