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
27
39
41#define INFUSE_LITTLEFS_METADATA_TYPE 0x1F
42
46 uint32_t timestamp;
48 uint32_t identifier;
50 uint32_t crc;
51} __packed;
52
56 uint32_t disk_version;
58 uint32_t block_size;
60 uint32_t block_count;
62 uint32_t blocks_used;
63};
64
74 void (*file_created)(enum infuse_littlefs_folder folder, uint32_t file,
75 struct infuse_littlefs_metadata *meta, void *user_data);
76
81 void (*file_deleted)(enum infuse_littlefs_folder folder, uint32_t file, void *user_data);
82
84 void *user_data;
85
87 sys_snode_t node;
89};
90
98
110
117
127
128#ifdef CONFIG_ZTEST
129
133void infuse_littfs_format(void);
134
138void infuse_littlefs_reset(void);
139
140#endif /* CONFIG_ZTEST */
141
154int infuse_littlefs_file_size(enum infuse_littlefs_folder folder, uint32_t file);
155
170 struct infuse_littlefs_metadata *metadata);
171
181typedef bool (*infuse_littlefs_file_cb)(enum infuse_littlefs_folder folder, uint32_t file,
182 void *user_data);
183
197 void *user_data);
198
211int infuse_littlefs_file_open(enum infuse_littlefs_folder folder, uint32_t file);
212
224int infuse_littlefs_file_read(void *data, size_t data_len);
225
235int infuse_littlefs_file_seek(uint32_t offset);
236
256 struct infuse_littlefs_metadata *metadata);
257
268int infuse_littlefs_file_write(const void *data, size_t data_len);
269
279
293
314int infuse_littlefs_file_crc32(enum infuse_littlefs_folder folder, uint32_t file, uint32_t max_len,
315 uint32_t *crc32_ieee, void *working_mem, size_t working_mem_len);
316
320
321#ifdef __cplusplus
322}
323#endif
324
325#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:181
int infuse_littlefs_file_close(void)
Close currently open file.
bool infuse_littlefs_unregister_cb(struct infuse_littlefs_cb *cb)
Unregister a previously registered LittleFS callback.
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:29
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:33
@ INFUSE_LFS_FOLDER_GENERAL
Folder for singleton files that don't fit in other locations.
Definition littlefs.h:31
@ INFUSE_LFS_FOLDER_A_GNSS
Folder for GNSS assistance data.
Definition littlefs.h:35
@ INFUSE_LFS_FOLDER_COPY
Folder for files to copy to other devices.
Definition littlefs.h:37
Infuse LittleFS callback structure.
Definition littlefs.h:66
void(* file_deleted)(enum infuse_littlefs_folder folder, uint32_t file, void *user_data)
File deleted from the filesystem.
Definition littlefs.h:81
void * user_data
User provided context pointer.
Definition littlefs.h:84
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:74
Runtime state of the filesystem.
Definition littlefs.h:54
uint32_t disk_version
On-disk filesystem version.
Definition littlefs.h:56
uint32_t block_count
Total number of blocks in the filesystem.
Definition littlefs.h:60
uint32_t blocks_used
Blocks currently in use by the filesystem.
Definition littlefs.h:62
uint32_t block_size
Size of filesystem blocks in bytes.
Definition littlefs.h:58
Metadata associated with all files.
Definition littlefs.h:44
uint32_t timestamp
Creation timestamp.
Definition littlefs.h:46
uint32_t crc
Data validation.
Definition littlefs.h:50
uint32_t identifier
Opaque identifier for cloud.
Definition littlefs.h:48