Tweaked thread-safe implementation

- Stayed on non-system include for lfs_util.h for now
- Named internal functions "lfs_functionraw"
- Merged lfs_fs_traverseraw
- Added LFS_LOCK/UNLOCK macros
- Changed LFS_THREADSAFE from 1/0 to defined/undefined to
  match LFS_READONLY
This commit is contained in:
Christopher Haster 2020-11-28 11:15:23 -06:00
parent fc6988c7c3
commit 00a9ba7826
3 changed files with 360 additions and 498 deletions

849
lfs.c

File diff suppressed because it is too large Load Diff

4
lfs.h
View File

@ -9,7 +9,7 @@
#include <stdint.h>
#include <stdbool.h>
#include <lfs_util.h>
#include "lfs_util.h"
#ifdef __cplusplus
extern "C"
@ -174,7 +174,7 @@ struct lfs_config {
// are propogated to the user.
int (*sync)(const struct lfs_config *c);
#if LFS_THREADSAFE
#ifdef LFS_THREADSAFE
// Lock the underlying block device. Negative error codes
// are propogated to the user.
int (*lock)(const struct lfs_config *c);

View File

@ -43,11 +43,6 @@ extern "C"
{
#endif
// Enables thread-safe wrappers using the lock/unlock callbacks in lfs_config
#ifndef LFS_THREADSAFE
#define LFS_THREADSAFE 0
#endif
// Macros, may be replaced by system specific wrappers. Arguments to these
// macros must not have side-effects as the macros can be removed for a smaller
// code footprint