Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
Infuse-IoT LittleFS wrapper

Infuse-IoT LittleFS wrapper. More...

Data Structures

 Metadata associated with all files. More...
struct  infuse_littlefs_fs_info
 Runtime state of the filesystem. More...
struct  infuse_littlefs_cb
 Infuse LittleFS callback structure. More...

Macros

#define INFUSE_LITTLEFS_METADATA_TYPE   0x1F

Typedefs

typedef bool(* infuse_littlefs_file_cb) (enum infuse_littlefs_folder folder, uint32_t file, void *user_data)
 Callback run by infuse_littlefs_folder_iter.

Enumerations

enum  infuse_littlefs_folder { INFUSE_LFS_FOLDER_GENERAL = 0 , INFUSE_LFS_FOLDER_ALGORITHMS = 1 , INFUSE_LFS_FOLDER_A_GNSS = 2 , INFUSE_LFS_FOLDER_COPY = 3 }
 Infuse-IoT defined filesystem folders. More...

Functions

int infuse_littlefs_init (void)
 Initialise and mount the LittleFS filesystem.
int infuse_littlefs_fs_info (struct infuse_littlefs_fs_info *info)
 LittleFS filesystem info.
void infuse_littlefs_register_cb (struct infuse_littlefs_cb *cb)
 Register to be notified of LittleFS filesystem events.
int infuse_littlefs_file_size (enum infuse_littlefs_folder folder, uint32_t file)
 File size.
int infuse_littlefs_file_metadata (enum infuse_littlefs_folder folder, uint32_t file, struct infuse_littlefs_metadata *metadata)
 Read file metadata.
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_open (enum infuse_littlefs_folder folder, uint32_t file)
 Open 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.
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_write (const void *data, size_t data_len)
 Write data to file opened by infuse_littlefs_file_create.
int infuse_littlefs_file_close (void)
 Close currently open file.
int infuse_littlefs_file_delete (enum infuse_littlefs_folder folder, uint32_t file)
 Delete a file on 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.

Detailed Description

Infuse-IoT LittleFS wrapper.

Macro Definition Documentation

◆ INFUSE_LITTLEFS_METADATA_TYPE

#define INFUSE_LITTLEFS_METADATA_TYPE   0x1F

Typedef Documentation

◆ infuse_littlefs_file_cb

typedef bool(* infuse_littlefs_file_cb) (enum infuse_littlefs_folder folder, uint32_t file, void *user_data)

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Callback run by infuse_littlefs_folder_iter.

Parameters
folderFolder that file exists in
fileFile that exists in the folder
Return values
trueto continue iterating
falseto terminate iteration

Enumeration Type Documentation

◆ infuse_littlefs_folder

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Infuse-IoT defined filesystem folders.

Enumerator
INFUSE_LFS_FOLDER_GENERAL 

Folder for singleton files that don't fit in other locations.

INFUSE_LFS_FOLDER_ALGORITHMS 

Folder for dynamic algorithms.

INFUSE_LFS_FOLDER_A_GNSS 

Folder for GNSS assistance data.

INFUSE_LFS_FOLDER_COPY 

Folder for files to copy to other devices.

Function Documentation

◆ infuse_littlefs_file_close()

int infuse_littlefs_file_close ( void )

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Close currently open file.

Return values
0On success
-EINVALIf file has not been opened with infuse_littlefs_file_create or infuse_littlefs_file_open
-errnoOther error code on failure

◆ infuse_littlefs_file_crc32()

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 )

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Calculate the CRC32-IEEE over a file.

Note
Automatically opens and closes underlying file
Depends on CONFIG_CRC
Parameters
folderFolder containing the file
fileFilename to compute CRC of
max_lenMaximum length to compute CRC over
crc32_ieeeOutput storage for CRC32-IEEE result
working_memWorking memory buffer to read data into
working_mem_lenLength of working memory buffer
Return values
0on success
-EAGAINfilesystem not mounted
-ENOENTIf file does not exist
-EINVALIf previously open file is not yet closed
-errnoOther error code on failure

◆ infuse_littlefs_file_create()

int infuse_littlefs_file_create ( enum infuse_littlefs_folder folder,
uint32_t file,
struct infuse_littlefs_metadata * metadata )

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Create a new file in the filesystem.

Parameter metadata MUST remain accessible until the final call to infuse_littlefs_file_close. As the attribute structure is not committed until the file is closed, the values can be updated at runtime at any point until the infuse_littlefs_file_close call.

Parameters
folderFolder to create file in
fileFilename
metadataInfuse metadata object to associate with file
Return values
0on success
-EAGAINfilesystem not mounted
-EEXISTIf file already exists
-EINVALIf previously open file is not yet closed
-errnoOther error code on failure

◆ infuse_littlefs_file_delete()

int infuse_littlefs_file_delete ( enum infuse_littlefs_folder folder,
uint32_t file )

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Delete a file on the filesystem.

Parameters
folderFolder to create file in
fileFilename inside the folder
Return values
0on success
-EAGAINfilesystem not mounted
-ENOENTIf file does not exist
-EINVALIf previously open file is not yet closed
-errnoOther error code on failure

◆ infuse_littlefs_file_metadata()

int infuse_littlefs_file_metadata ( enum infuse_littlefs_folder folder,
uint32_t file,
struct infuse_littlefs_metadata * metadata )

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Read file metadata.

Parameters
folderFolder containing the file
fileFilename inside the folder
metadataOutput storage for metadata
Return values
0on success
-EAGAINfilesystem not mounted
-EINVALother file open for reading or writing
-ENOENTfile does not exist
-errnoother negative error code on failure

◆ infuse_littlefs_file_open()

int infuse_littlefs_file_open ( enum infuse_littlefs_folder folder,
uint32_t file )

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Open a file on the filesystem.

Parameters
folderFolder to create file in
fileFilename inside the folder
Return values
0on success
-EAGAINfilesystem not mounted
-ENOENTIf file does not exist
-EINVALIf previously open file is not yet closed
-errnoOther error code on failure

◆ infuse_littlefs_file_read()

int infuse_littlefs_file_read ( void * data,
size_t data_len )

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Read data from file opened by infuse_littlefs_file_open.

Parameters
dataBuffer for read data
data_lenLength of data in bytes
Return values
>0Number of bytes read
0No more data remaining in file
-EINVALIf file has not been opened with infuse_littlefs_file_open
-errnoOther error code on failure

◆ infuse_littlefs_file_seek()

int infuse_littlefs_file_seek ( uint32_t offset)

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Set current read offset of file opened by infuse_littlefs_file_open.

Parameters
offsetNew read offset in bytes
Return values
>=0 Updated file offset in bytes
-EINVALIf file has not been opened with infuse_littlefs_file_open
-errnoOther error code on failure

◆ infuse_littlefs_file_size()

int infuse_littlefs_file_size ( enum infuse_littlefs_folder folder,
uint32_t file )

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

File size.

Parameters
folderFolder containing the file
fileFilename inside the folder
Return values
>=0size of the file in bytes
-EAGAINfilesystem not mounted
-ENOENTfile does not exist
-errnoother negative error code on failure

◆ infuse_littlefs_file_write()

int infuse_littlefs_file_write ( const void * data,
size_t data_len )

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Write data to file opened by infuse_littlefs_file_create.

Parameters
dataData to write
data_lenLength of data in bytes
Return values
>0Number of bytes written
-EINVALIf file has not been opened with infuse_littlefs_file_create
-errnoOther error code on failure

◆ infuse_littlefs_folder_iter()

int infuse_littlefs_folder_iter ( enum infuse_littlefs_folder folder,
infuse_littlefs_file_cb cb,
void * user_data )

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Iterate all files inside a folder.

Parameters
folderFolder to iterate over
cbCallback to run on each file found
user_dataArbitrary pointer to provide to cb
Return values
0on success
-EAGAINfilesystem not mounted
-EINVALother file open for reading or writing
-errnoother negative error code on failure

◆ infuse_littlefs_fs_info()

int infuse_littlefs_fs_info ( struct infuse_littlefs_fs_info * info)

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

LittleFS filesystem info.

Parameters
infoOutput storage for filesystem information
Return values
0on success
-EAGAINfilesystem not mounted
-EINVALfile open for reading or writing
-errnoother negative error code on failure

◆ infuse_littlefs_init()

int infuse_littlefs_init ( void )

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Initialise and mount the LittleFS filesystem.

Return values
0on success
-errnonegative error code on failure

◆ infuse_littlefs_register_cb()

void infuse_littlefs_register_cb ( struct infuse_littlefs_cb * cb)

#include </__w/infuse-sdk/infuse-sdk/infuse-sdk/include/infuse/fs/littlefs.h>

Register to be notified of LittleFS filesystem events.

Parameters
cbCallback struct to register