Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
littlefs.h
Go to the documentation of this file.
1
9
10#ifndef INFUSE_SDK_INCLUDE_INFUSE_FS_LITTLEFS_H_
11#define INFUSE_SDK_INCLUDE_INFUSE_FS_LITTLEFS_H_
12
13#include <stdint.h>
14
15#include <zephyr/sys/slist.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
26
38
39#define INFUSE_LITTLEFS_METADATA_TYPE 0x1F
40
44 uint32_t timestamp;
46 uint32_t identifier;
48 uint32_t crc;
49} __packed;
50
54 uint32_t disk_version;
56 uint32_t block_size;
58 uint32_t block_count;
60 uint32_t blocks_used;
61};
62
72 void (*file_created)(enum infuse_littlefs_folder folder, uint32_t file,
73 struct infuse_littlefs_metadata *meta, void *user_data);
74
79 void (*file_deleted)(enum infuse_littlefs_folder folder, uint32_t file, void *user_data);
80
82 void *user_data;
83
84 sys_snode_t node;
85};
86
94
106
113
114#ifdef CONFIG_ZTEST
115
119void infuse_littfs_format(void);
120
124void infuse_littlefs_reset(void);
125
126#endif /* CONFIG_ZTEST */
127
139int infuse_littlefs_file_size(enum infuse_littlefs_folder folder, uint32_t file);
140
155 struct infuse_littlefs_metadata *metadata);
156
166typedef bool (*infuse_littlefs_file_cb)(enum infuse_littlefs_folder folder, uint32_t file,
167 void *user_data);
168
182 void *user_data);
183
196int infuse_littlefs_file_open(enum infuse_littlefs_folder folder, uint32_t file);
197
209int infuse_littlefs_file_read(void *data, size_t data_len);
210
220int infuse_littlefs_file_seek(uint32_t offset);
221
241 struct infuse_littlefs_metadata *metadata);
242
253int infuse_littlefs_file_write(const void *data, size_t data_len);
254
264
278
299int infuse_littlefs_file_crc32(enum infuse_littlefs_folder folder, uint32_t file, uint32_t max_len,
300 uint32_t *crc32_ieee, void *working_mem, size_t working_mem_len);
301
305
306#ifdef __cplusplus
307}
308#endif
309
310#endif /* INFUSE_SDK_INCLUDE_INFUSE_FS_LITTLEFS_H_ */
int infuse_littlefs_init(void)
Initialise and mount the LittleFS filesystem.
int infuse_littlefs_folder_iter(enum infuse_littlefs_folder folder, infuse_littlefs_file_cb cb, void *user_data)
Iterate all files inside a folder.
int infuse_littlefs_file_size(enum infuse_littlefs_folder folder, uint32_t file)
File size.
int infuse_littlefs_file_open(enum infuse_littlefs_folder folder, uint32_t file)
Open a file on the filesystem.
bool(* infuse_littlefs_file_cb)(enum infuse_littlefs_folder folder, uint32_t file, void *user_data)
Callback run by infuse_littlefs_folder_iter.
Definition littlefs.h:166
int infuse_littlefs_file_close(void)
Close currently open file.
void infuse_littlefs_register_cb(struct infuse_littlefs_cb *cb)
Register to be notified of LittleFS filesystem events.
int infuse_littlefs_fs_info(struct infuse_littlefs_fs_info *info)
LittleFS filesystem info.
int infuse_littlefs_file_write(const void *data, size_t data_len)
Write data to file opened by infuse_littlefs_file_create.
infuse_littlefs_folder
Infuse-IoT defined filesystem folders.
Definition littlefs.h:28
int infuse_littlefs_file_create(enum infuse_littlefs_folder folder, uint32_t file, struct infuse_littlefs_metadata *metadata)
Create a new file in the filesystem.
int infuse_littlefs_file_crc32(enum infuse_littlefs_folder folder, uint32_t file, uint32_t max_len, uint32_t *crc32_ieee, void *working_mem, size_t working_mem_len)
Calculate the CRC32-IEEE over a file.
int infuse_littlefs_file_metadata(enum infuse_littlefs_folder folder, uint32_t file, struct infuse_littlefs_metadata *metadata)
Read file metadata.
int infuse_littlefs_file_delete(enum infuse_littlefs_folder folder, uint32_t file)
Delete a file on the filesystem.
int infuse_littlefs_file_read(void *data, size_t data_len)
Read data from file opened by infuse_littlefs_file_open.
int infuse_littlefs_file_seek(uint32_t offset)
Set current read offset of file opened by infuse_littlefs_file_open.
@ INFUSE_LFS_FOLDER_ALGORITHMS
Folder for dynamic algorithms.
Definition littlefs.h:32
@ INFUSE_LFS_FOLDER_GENERAL
Folder for singleton files that don't fit in other locations.
Definition littlefs.h:30
@ INFUSE_LFS_FOLDER_A_GNSS
Folder for GNSS assistance data.
Definition littlefs.h:34
@ INFUSE_LFS_FOLDER_COPY
Folder for files to copy to other devices.
Definition littlefs.h:36
Infuse LittleFS callback structure.
Definition littlefs.h:64
void(* file_deleted)(enum infuse_littlefs_folder folder, uint32_t file, void *user_data)
File deleted from the filesystem.
Definition littlefs.h:79
void * user_data
User provided context pointer.
Definition littlefs.h:82
void(* file_created)(enum infuse_littlefs_folder folder, uint32_t file, struct infuse_littlefs_metadata *meta, void *user_data)
File created in the filesystem.
Definition littlefs.h:72
sys_snode_t node
Definition littlefs.h:84
Runtime state of the filesystem.
Definition littlefs.h:52
uint32_t disk_version
On-disk filesystem version.
Definition littlefs.h:54
uint32_t block_count
Total number of blocks in the filesystem.
Definition littlefs.h:58
uint32_t blocks_used
Blocks currently in use by the filesystem.
Definition littlefs.h:60
uint32_t block_size
Size of filesystem blocks in bytes.
Definition littlefs.h:56
Metadata associated with all files.
Definition littlefs.h:42
uint32_t timestamp
Creation timestamp.
Definition littlefs.h:44
uint32_t crc
Data validation.
Definition littlefs.h:48
uint32_t identifier
Opaque identifier for cloud.
Definition littlefs.h:46