mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 08:42:40 +01:00 
			
		
		
		
	Added LFS_CONFIG for user provided configuration of the utils
Suggested by sn00pster, LFS_CONFIG is an opt-in user provided configuration file that will override the util implementation in lfs_util.h. This is useful for allowing system-specific overrides without needing to rely on git merges or other forms of patching for updates.
This commit is contained in:
		| @@ -17,7 +17,11 @@ | |||||||
|  */ |  */ | ||||||
| #include "lfs_util.h" | #include "lfs_util.h" | ||||||
|  |  | ||||||
|  | // Only compile if user does not provide custom config | ||||||
|  | #ifndef LFS_CONFIG | ||||||
|  |  | ||||||
|  |  | ||||||
|  | // Software CRC implementation with small lookup table | ||||||
| void lfs_crc(uint32_t *restrict crc, const void *buffer, size_t size) { | void lfs_crc(uint32_t *restrict crc, const void *buffer, size_t size) { | ||||||
|     static const uint32_t rtable[16] = { |     static const uint32_t rtable[16] = { | ||||||
|         0x00000000, 0x1db71064, 0x3b6e20c8, 0x26d930ac, |         0x00000000, 0x1db71064, 0x3b6e20c8, 0x26d930ac, | ||||||
| @@ -34,3 +38,5 @@ void lfs_crc(uint32_t *restrict crc, const void *buffer, size_t size) { | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #endif | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								lfs_util.h
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								lfs_util.h
									
									
									
									
									
								
							| @@ -18,6 +18,19 @@ | |||||||
| #ifndef LFS_UTIL_H | #ifndef LFS_UTIL_H | ||||||
| #define LFS_UTIL_H | #define LFS_UTIL_H | ||||||
|  |  | ||||||
|  | // Users can override lfs_util.h with their own configuration by defining | ||||||
|  | // LFS_CONFIG as a header file to include (-DLFS_CONFIG=lfs_config.h). | ||||||
|  | // | ||||||
|  | // If LFS_CONFIG is used, none of the default utils will be emitted and must be | ||||||
|  | // provided by the config file. To start I would suggest copying lfs_util.h and | ||||||
|  | // modifying as needed. | ||||||
|  | #ifdef LFS_CONFIG | ||||||
|  | #define LFS_STRINGIZE(x) LFS_STRINGIZE2(x) | ||||||
|  | #define LFS_STRINGIZE2(x) #x | ||||||
|  | #include LFS_STRINGIZE(LFS_CONFIG) | ||||||
|  | #else | ||||||
|  |  | ||||||
|  | // System includes | ||||||
| #include <stdint.h> | #include <stdint.h> | ||||||
| #include <stdbool.h> | #include <stdbool.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
| @@ -169,3 +182,4 @@ static inline void lfs_free(void *p) { | |||||||
|  |  | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|  | #endif | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user