Structured some of the bulk of the codebase

- Removed lfs_config.h, distributed between lfs.h and lfs_util.h
- Moved some functions that felt out of place
This commit is contained in:
Christopher Haster
2017-04-23 21:40:03 -05:00
parent ba8afb9d92
commit 5790ec2ce4
5 changed files with 384 additions and 386 deletions

35
lfs.h
View File

@@ -7,9 +7,25 @@
#ifndef LFS_H
#define LFS_H
#include "lfs_config.h"
#include <stdint.h>
#include <stdbool.h>
// Type definitions
typedef uint32_t lfs_size_t;
typedef uint32_t lfs_off_t;
typedef int32_t lfs_ssize_t;
typedef int32_t lfs_soff_t;
typedef uint32_t lfs_block_t;
// Configurable littlefs constants
#ifndef LFS_NAME_MAX
#define LFS_NAME_MAX 255
#endif
// The littefs constants
enum lfs_error {
LFS_ERROR_OK = 0,
@@ -109,7 +125,7 @@ struct lfs_info {
};
// Internal data structures
// littlefs data structures
typedef struct lfs_entry {
lfs_block_t pair[2];
lfs_off_t off;
@@ -169,8 +185,7 @@ typedef struct lfs_superblock {
} d;
} lfs_superblock_t;
// Little filesystem type
// littlefs type
typedef struct lfs {
const struct lfs_config *cfg;
lfs_size_t words; // number of 32-bit words that can fit in a block
@@ -191,15 +206,17 @@ typedef struct lfs {
} lfs_t;
// Functions
// filesystem functions
int lfs_format(lfs_t *lfs, const struct lfs_config *config);
int lfs_mount(lfs_t *lfs, const struct lfs_config *config);
int lfs_unmount(lfs_t *lfs);
// general operations
int lfs_remove(lfs_t *lfs, const char *path);
int lfs_rename(lfs_t *lfs, const char *oldpath, const char *newpath);
int lfs_stat(lfs_t *lfs, const char *path, struct lfs_info *info);
// directory operations
int lfs_mkdir(lfs_t *lfs, const char *path);
int lfs_dir_open(lfs_t *lfs, lfs_dir_t *dir, const char *path);
int lfs_dir_close(lfs_t *lfs, lfs_dir_t *dir);
@@ -208,20 +225,22 @@ int lfs_dir_seek(lfs_t *lfs, lfs_dir_t *dir, lfs_off_t off);
lfs_soff_t lfs_dir_tell(lfs_t *lfs, lfs_dir_t *dir);
int lfs_dir_rewind(lfs_t *lfs, lfs_dir_t *dir);
// file operations
int lfs_file_open(lfs_t *lfs, lfs_file_t *file,
const char *path, int flags);
int lfs_file_close(lfs_t *lfs, lfs_file_t *file);
int lfs_file_sync(lfs_t *lfs, lfs_file_t *file);
lfs_ssize_t lfs_file_write(lfs_t *lfs, lfs_file_t *file,
const void *buffer, lfs_size_t size);
lfs_ssize_t lfs_file_read(lfs_t *lfs, lfs_file_t *file,
void *buffer, lfs_size_t size);
lfs_ssize_t lfs_file_write(lfs_t *lfs, lfs_file_t *file,
const void *buffer, lfs_size_t size);
lfs_soff_t lfs_file_seek(lfs_t *lfs, lfs_file_t *file,
lfs_soff_t off, int whence);
lfs_soff_t lfs_file_size(lfs_t *lfs, lfs_file_t *file);
lfs_soff_t lfs_file_tell(lfs_t *lfs, lfs_file_t *file);
int lfs_file_rewind(lfs_t *lfs, lfs_file_t *file);
lfs_soff_t lfs_file_size(lfs_t *lfs, lfs_file_t *file);
// miscellaneous lfs specific operations
int lfs_deorphan(lfs_t *lfs);
int lfs_traverse(lfs_t *lfs, int (*cb)(void*, lfs_block_t), void *data);