mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-11-01 08:48:31 +01:00 
			
		
		
		
	Compare commits
	
		
			9 Commits
		
	
	
		
			fix-travis
			...
			fix-inline
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 0c363d2666 | ||
|  | f35fb8c148 | ||
|  | 0a1f706ca2 | ||
|  | fdd239fe21 | ||
|  | 780ef2fce4 | ||
|  | 73ea008b74 | ||
|  | c849748453 | ||
|  | 905727b684 | ||
|  | 26d25608b6 | 
| @@ -136,6 +136,7 @@ jobs: | |||||||
|       env: |       env: | ||||||
|         - STAGE=test |         - STAGE=test | ||||||
|         - NAME=littlefs-migration |         - NAME=littlefs-migration | ||||||
|  |       if: branch !~ -prefix$ | ||||||
|       install: |       install: | ||||||
|         - sudo apt-get install libfuse-dev |         - sudo apt-get install libfuse-dev | ||||||
|         - git clone --depth 1 https://github.com/geky/littlefs-fuse -b v2-alpha v2 |         - git clone --depth 1 https://github.com/geky/littlefs-fuse -b v2-alpha v2 | ||||||
|   | |||||||
							
								
								
									
										23
									
								
								lfs.c
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								lfs.c
									
									
									
									
									
								
							| @@ -29,7 +29,7 @@ static inline void lfs_cache_drop(lfs_t *lfs, lfs_cache_t *rcache) { | |||||||
|  |  | ||||||
| static inline void lfs_cache_zero(lfs_t *lfs, lfs_cache_t *pcache) { | static inline void lfs_cache_zero(lfs_t *lfs, lfs_cache_t *pcache) { | ||||||
|     // zero to avoid information leak |     // zero to avoid information leak | ||||||
|     memset(pcache->buffer, 0xff, lfs->cfg->prog_size); |     memset(pcache->buffer, 0xff, lfs->cfg->cache_size); | ||||||
|     pcache->block = 0xffffffff; |     pcache->block = 0xffffffff; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -80,21 +80,6 @@ static int lfs_bd_read(lfs_t *lfs, | |||||||
|             diff = lfs_min(diff, rcache->off-off); |             diff = lfs_min(diff, rcache->off-off); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if (size >= hint && off % lfs->cfg->read_size == 0 && |  | ||||||
|                 size >= lfs->cfg->read_size) { |  | ||||||
|             // bypass cache? |  | ||||||
|             diff = lfs_aligndown(diff, lfs->cfg->read_size); |  | ||||||
|             int err = lfs->cfg->read(lfs->cfg, block, off, data, diff); |  | ||||||
|             if (err) { |  | ||||||
|                 return err; |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             data += diff; |  | ||||||
|             off += diff; |  | ||||||
|             size -= diff; |  | ||||||
|             continue; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         // load to cache, first condition can no longer fail |         // load to cache, first condition can no longer fail | ||||||
|         LFS_ASSERT(block < lfs->cfg->block_count); |         LFS_ASSERT(block < lfs->cfg->block_count); | ||||||
|         rcache->block = block; |         rcache->block = block; | ||||||
| @@ -2749,7 +2734,7 @@ lfs_ssize_t lfs_file_write(lfs_t *lfs, lfs_file_t *file, | |||||||
|  |  | ||||||
|     if ((file->flags & LFS_F_INLINE) && |     if ((file->flags & LFS_F_INLINE) && | ||||||
|             lfs_max(file->pos+nsize, file->ctz.size) > |             lfs_max(file->pos+nsize, file->ctz.size) > | ||||||
|             lfs_min(LFS_ATTR_MAX, lfs_min( |             lfs_min(0x3fe, lfs_min( | ||||||
|                 lfs->cfg->cache_size, lfs->cfg->block_size/8))) { |                 lfs->cfg->cache_size, lfs->cfg->block_size/8))) { | ||||||
|         // inline file doesn't fit anymore |         // inline file doesn't fit anymore | ||||||
|         file->off = file->pos; |         file->off = file->pos; | ||||||
| @@ -2864,6 +2849,10 @@ int lfs_file_truncate(lfs_t *lfs, lfs_file_t *file, lfs_off_t size) { | |||||||
|         return LFS_ERR_BADF; |         return LFS_ERR_BADF; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     if (size > LFS_FILE_MAX) { | ||||||
|  |         return LFS_ERR_INVAL; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     lfs_off_t oldsize = lfs_file_size(lfs, file); |     lfs_off_t oldsize = lfs_file_size(lfs, file); | ||||||
|     if (size < oldsize) { |     if (size < oldsize) { | ||||||
|         // need to flush since directly changing metadata |         // need to flush since directly changing metadata | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								lfs.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								lfs.h
									
									
									
									
									
								
							| @@ -578,7 +578,8 @@ int lfs_dir_close(lfs_t *lfs, lfs_dir_t *dir); | |||||||
| // Read an entry in the directory | // Read an entry in the directory | ||||||
| // | // | ||||||
| // Fills out the info structure, based on the specified file or directory. | // Fills out the info structure, based on the specified file or directory. | ||||||
| // Returns a negative error code on failure. | // Returns a positive value on success, 0 at the end of directory, | ||||||
|  | // or a negative error code on failure. | ||||||
| int lfs_dir_read(lfs_t *lfs, lfs_dir_t *dir, struct lfs_info *info); | int lfs_dir_read(lfs_t *lfs, lfs_dir_t *dir, struct lfs_info *info); | ||||||
|  |  | ||||||
| // Change the position of the directory | // Change the position of the directory | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user