Jelajahi Sumber

Add an alternative way to override LFS_MALLOC etc

With the existing method, (-DLFS_MALLOC=my_malloc)
users often had to use compiler options like -include, which
was not so portable.
This change introduces another way to provide partial overrides of
lfs_util.h using a user-provided header.
YAMAMOTO Takashi 1 tahun lalu
induk
melakukan
e1636d05ab
1 mengubah file dengan 20 tambahan dan 2 penghapusan
  1. 20 2
      lfs_util.h

+ 20 - 2
lfs_util.h

@@ -8,6 +8,9 @@
 #ifndef LFS_UTIL_H
 #define LFS_UTIL_H
 
+#define LFS_STRINGIZE(x) LFS_STRINGIZE2(x)
+#define LFS_STRINGIZE2(x) #x
+
 // 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).
 //
@@ -15,11 +18,26 @@
 // 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
 
+// Alternatively, users can provide a header file which defines
+// macros and other things consumed by littlefs.
+//
+// For example, provide my_defines.h, which contains
+// something like:
+//
+// #include <stddef.h>
+// extern void *my_malloc(size_t sz);
+// #define LFS_MALLOC(sz) my_malloc(sz)
+//
+// And build littlefs with the header by defining LFS_USER_DEFINES.
+// (-DLFS_USER_DEFINES=my_defines.h)
+
+#ifdef LFS_USER_DEFINES
+#include LFS_STRINGIZE(LFS_USER_DEFINES)
+#endif
+
 // System includes
 #include <stdint.h>
 #include <stdbool.h>