summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extmod/extmod.mk2
-rw-r--r--extmod/littlefs-include/lfs2_defines.h12
-rw-r--r--lib/littlefs/lfs2_util.h4
3 files changed, 15 insertions, 3 deletions
diff --git a/extmod/extmod.mk b/extmod/extmod.mk
index b2a0f490b..997dd3ba9 100644
--- a/extmod/extmod.mk
+++ b/extmod/extmod.mk
@@ -206,7 +206,7 @@ endif
ifeq ($(MICROPY_VFS_LFS2),1)
CFLAGS_EXTMOD += -DMICROPY_VFS_LFS2=1
-CFLAGS_THIRDPARTY += -DLFS2_NO_MALLOC -DLFS2_NO_DEBUG -DLFS2_NO_WARN -DLFS2_NO_ERROR -DLFS2_NO_ASSERT
+CFLAGS_THIRDPARTY += -DLFS2_NO_MALLOC -DLFS2_NO_DEBUG -DLFS2_NO_WARN -DLFS2_NO_ERROR -DLFS2_NO_ASSERT -DLFS2_DEFINES=extmod/littlefs-include/lfs2_defines.h
SRC_THIRDPARTY_C += $(addprefix $(LITTLEFS_DIR)/,\
lfs2.c \
lfs2_util.c \
diff --git a/extmod/littlefs-include/lfs2_defines.h b/extmod/littlefs-include/lfs2_defines.h
new file mode 100644
index 000000000..4ae566f50
--- /dev/null
+++ b/extmod/littlefs-include/lfs2_defines.h
@@ -0,0 +1,12 @@
+#ifndef LFS2_DEFINES_H
+#define LFS2_DEFINES_H
+
+#include "py/mpconfig.h"
+
+#if MICROPY_PY_DEFLATE
+// We reuse the CRC32 implementation from uzlib to save a few bytes
+#include "lib/uzlib/uzlib.h"
+#define LFS2_CRC(crc, buffer, size) uzlib_crc32(buffer, size, crc)
+#endif
+
+#endif \ No newline at end of file
diff --git a/lib/littlefs/lfs2_util.h b/lib/littlefs/lfs2_util.h
index 48d9f4c57..3b191f688 100644
--- a/lib/littlefs/lfs2_util.h
+++ b/lib/littlefs/lfs2_util.h
@@ -231,8 +231,8 @@ static inline uint32_t lfs2_tobe32(uint32_t a) {
// Calculate CRC-32 with polynomial = 0x04c11db7
#ifdef LFS2_CRC
-uint32_t lfs2_crc(uint32_t crc, const void *buffer, size_t size) {
- return LFS2_CRC(crc, buffer, size)
+static inline uint32_t lfs2_crc(uint32_t crc, const void *buffer, size_t size) {
+ return LFS2_CRC(crc, buffer, size);
}
#else
uint32_t lfs2_crc(uint32_t crc, const void *buffer, size_t size);