Skip to content

Commit

Permalink
Merge pull request #909 from littlefs-project/easy-util-defines
Browse files Browse the repository at this point in the history
Add some easier util overrides: LFS_MALLOC/FREE/CRC
  • Loading branch information
geky authored Jan 19, 2024
2 parents 1711bde + 9a620c7 commit 1195d60
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
3 changes: 3 additions & 0 deletions lfs_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
#ifndef LFS_CONFIG


// If user provides their own CRC impl we don't need this
#ifndef LFS_CRC
// Software CRC implementation with small lookup table
uint32_t lfs_crc(uint32_t crc, const void *buffer, size_t size) {
static const uint32_t rtable[16] = {
Expand All @@ -29,6 +31,7 @@ uint32_t lfs_crc(uint32_t crc, const void *buffer, size_t size) {

return crc;
}
#endif


#endif
14 changes: 12 additions & 2 deletions lfs_util.h
Original file line number Diff line number Diff line change
Expand Up @@ -212,12 +212,20 @@ static inline uint32_t lfs_tobe32(uint32_t a) {
}

// Calculate CRC-32 with polynomial = 0x04c11db7
#ifdef LFS_CRC
uint32_t lfs_crc(uint32_t crc, const void *buffer, size_t size) {
return LFS_CRC(crc, buffer, size)
}
#else
uint32_t lfs_crc(uint32_t crc, const void *buffer, size_t size);
#endif

// Allocate memory, only used if buffers are not provided to littlefs
// Note, memory must be 64-bit aligned
static inline void *lfs_malloc(size_t size) {
#ifndef LFS_NO_MALLOC
#if defined(LFS_MALLOC)
return LFS_MALLOC(size);
#elif !defined(LFS_NO_MALLOC)
return malloc(size);
#else
(void)size;
Expand All @@ -227,7 +235,9 @@ static inline void *lfs_malloc(size_t size) {

// Deallocate memory, only used if buffers are not provided to littlefs
static inline void lfs_free(void *p) {
#ifndef LFS_NO_MALLOC
#if defined(LFS_FREE)
LFS_FREE(p);
#elif !defined(LFS_NO_MALLOC)
free(p);
#else
(void)p;
Expand Down

0 comments on commit 1195d60

Please sign in to comment.