Zephyr API Documentation
4.0.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
littlefs.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2019 Bolt Innovation Management, LLC
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
7
#ifndef ZEPHYR_INCLUDE_FS_LITTLEFS_H_
8
#define ZEPHYR_INCLUDE_FS_LITTLEFS_H_
9
10
#include <
zephyr/types.h
>
11
#include <
zephyr/kernel.h
>
12
#include <
zephyr/storage/flash_map.h
>
13
14
#include <lfs.h>
15
16
#ifdef __cplusplus
17
extern
"C"
{
18
#endif
19
26
#define FS_LITTLEFS_DISK_VERSION_MAJOR_GET(disk_version) FIELD_GET(GENMASK(31, 16), disk_version)
27
34
#define FS_LITTLEFS_DISK_VERSION_MINOR_GET(disk_version) FIELD_GET(GENMASK(15, 0), disk_version)
35
37
struct
fs_littlefs
{
38
/* Defaulted in driver, customizable before mount. */
39
struct
lfs_config
cfg
;
40
41
/* Must be cfg.cache_size */
42
uint8_t
*
read_buffer
;
43
44
/* Must be cfg.cache_size */
45
uint8_t
*
prog_buffer
;
46
47
/* Must be cfg.lookahead_size/4 elements, and
48
* cfg.lookahead_size must be a multiple of 8.
49
*/
50
uint32_t
*
lookahead_buffer
[CONFIG_FS_LITTLEFS_LOOKAHEAD_SIZE /
sizeof
(
uint32_t
)];
51
52
/* These structures are filled automatically at mount. */
53
struct
lfs
lfs
;
54
void
*
backend
;
55
struct
k_mutex
mutex
;
56
};
57
86
#define FS_LITTLEFS_DECLARE_CUSTOM_CONFIG(name, alignment, read_sz, prog_sz, cache_sz, \
87
lookahead_sz) \
88
static uint8_t __aligned(alignment) name ## _read_buffer[cache_sz]; \
89
static uint8_t __aligned(alignment) name ## _prog_buffer[cache_sz]; \
90
static uint32_t name ## _lookahead_buffer[(lookahead_sz) / sizeof(uint32_t)]; \
91
static struct fs_littlefs name = { \
92
.cfg = { \
93
.read_size = (read_sz), \
94
.prog_size = (prog_sz), \
95
.cache_size = (cache_sz), \
96
.lookahead_size = (lookahead_sz), \
97
.read_buffer = name ## _read_buffer, \
98
.prog_buffer = name ## _prog_buffer, \
99
.lookahead_buffer = name ## _lookahead_buffer, \
100
}, \
101
}
102
112
#define FS_LITTLEFS_DECLARE_DEFAULT_CONFIG(name) \
113
FS_LITTLEFS_DECLARE_CUSTOM_CONFIG(name, \
114
4, \
115
CONFIG_FS_LITTLEFS_READ_SIZE, \
116
CONFIG_FS_LITTLEFS_PROG_SIZE, \
117
CONFIG_FS_LITTLEFS_CACHE_SIZE, \
118
CONFIG_FS_LITTLEFS_LOOKAHEAD_SIZE)
119
120
#ifdef __cplusplus
121
}
122
#endif
123
124
#endif
/* ZEPHYR_INCLUDE_FS_LITTLEFS_H_ */
flash_map.h
Public API for flash map.
types.h
kernel.h
Public kernel APIs.
uint32_t
__UINT32_TYPE__ uint32_t
Definition
stdint.h:90
uint8_t
__UINT8_TYPE__ uint8_t
Definition
stdint.h:88
fs_littlefs
Filesystem info structure for LittleFS mount.
Definition
littlefs.h:37
fs_littlefs::backend
void * backend
Definition
littlefs.h:54
fs_littlefs::prog_buffer
uint8_t * prog_buffer
Definition
littlefs.h:45
fs_littlefs::mutex
struct k_mutex mutex
Definition
littlefs.h:55
fs_littlefs::lfs
struct lfs lfs
Definition
littlefs.h:53
fs_littlefs::lookahead_buffer
uint32_t * lookahead_buffer[CONFIG_FS_LITTLEFS_LOOKAHEAD_SIZE/sizeof(uint32_t)]
Definition
littlefs.h:50
fs_littlefs::cfg
struct lfs_config cfg
Definition
littlefs.h:39
fs_littlefs::read_buffer
uint8_t * read_buffer
Definition
littlefs.h:42
k_mutex
Mutex Structure.
Definition
kernel.h:3004
zephyr
fs
littlefs.h
Generated on Thu Dec 19 2024 15:02:34 for Zephyr API Documentation by
1.12.0