Soletta™ Framework
Framework for making IoT devices

Full online documentation | C API Index
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Functions
sol-memmap-storage.h File Reference

Routines to save values to memory mapped persistent storage. More...

#include <stddef.h>
#include <stdint.h>
#include "sol-buffer.h"
#include "sol-str-table.h"
#include "sol-types.h"

Go to the source code of this file.

Data Structures

struct  sol_memmap_entry
 A memory map entry. More...
 
struct  sol_memmap_map
 Memory map basic struct. More...
 

Macros

#define CREATE_BLOB(_val)
 Macro to create a struct sol_blob with value passed as argument. More...
 
#define CREATE_BUFFER(_val)
 Macro to create a struct sol_buffer with value passed as argument and flags SOL_BUFFER_FLAGS_MEMORY_NOT_OWNED and SOL_BUFFER_FLAGS_NO_NUL_BYTE. More...
 
#define SOL_MEMMAP_BOOL_ENTRY(_name, _offset, _bit_offset)   SOL_MEMMAP_ENTRY_BIT_SIZE(_name, _offset, 1, _bit_offset, 1)
 Macro to declare a sol_memmap_entry variable for boolean. More...
 
#define SOL_MEMMAP_ENTRY(_name, _offset, _size)   SOL_MEMMAP_ENTRY_BIT_SIZE(_name, _offset, _size, 0, 0)
 Macro to declare a sol_memmap_entry variable without bit_offset and bit_size. More...
 
#define SOL_MEMMAP_ENTRY_BIT_SIZE(_name, _offset, _size, _bit_offset, _bit_size)   static struct sol_memmap_entry _name = { .offset = (_offset), .size = (_size), .bit_size = (_bit_size), .bit_offset = (_bit_offset) }
 Macro to declare a sol_memmap_entry variable setting fields with values passed by argument. More...
 
#define SOL_MEMMAP_VERSION_ENTRY   "_version"
 Name of property which contains stored map version. More...
 

Typedefs

typedef struct sol_memmap_entry sol_memmap_entry
 A memory map entry. More...
 
typedef struct sol_memmap_map sol_memmap_map
 Memory map basic struct. More...
 

Functions

int sol_memmap_add_map (const struct sol_memmap_map *map)
 Add a map to internal list of available maps. More...
 
uint32_t sol_memmap_get_timeout (const struct sol_memmap_map *map)
 Get map timeout. More...
 
static int sol_memmap_read_bool (const char *name, bool *value)
 Reads a boolean contents. More...
 
static int sol_memmap_read_double (const char *name, double *value)
 Reads a double contents. More...
 
static int sol_memmap_read_drange (const char *name, struct sol_drange *value)
 Reads a drange contents. More...
 
static int sol_memmap_read_int32 (const char *name, int32_t *value)
 Reads an int32_t contents. More...
 
static int sol_memmap_read_irange (const char *name, struct sol_irange *value)
 Reads an irange content. More...
 
int sol_memmap_read_raw (const char *name, struct sol_buffer *buffer)
 Read storage contents to buffer. More...
 
static int sol_memmap_read_string (const char *name, char **value)
 Reads a string contents. More...
 
static int sol_memmap_read_uint8 (const char *name, uint8_t *value)
 Read an uint8_t contents. More...
 
int sol_memmap_remove_map (const struct sol_memmap_map *map)
 Removes a previously added map from internal list of available maps. More...
 
int sol_memmap_set_timeout (struct sol_memmap_map *map, uint32_t timeout)
 Defines map timeout to actually perform write. More...
 
static int sol_memmap_write_bool (const char *name, bool value, void(*cb)(void *data, const char *name, struct sol_blob *blob, int status), const void *data)
 Writes a bool contents to storage. More...
 
static int sol_memmap_write_double (const char *name, double value, void(*cb)(void *data, const char *name, struct sol_blob *blob, int status), const void *data)
 Writes a double contents to storage. More...
 
static int sol_memmap_write_drange (const char *name, struct sol_drange *value, void(*cb)(void *data, const char *name, struct sol_blob *blob, int status), const void *data)
 Writes an drange contents to storage. More...
 
static int sol_memmap_write_int32 (const char *name, int32_t value, void(*cb)(void *data, const char *name, struct sol_blob *blob, int status), const void *data)
 Writes an int32_t contents to storage. More...
 
static int sol_memmap_write_irange (const char *name, struct sol_irange *value, void(*cb)(void *data, const char *name, struct sol_blob *blob, int status), const void *data)
 Writes an irange contents to storage. More...
 
int sol_memmap_write_raw (const char *name, struct sol_blob *blob, void(*cb)(void *data, const char *name, struct sol_blob *blob, int status), const void *data)
 Writes buffer contents to storage. More...
 
static int sol_memmap_write_string (const char *name, const char *value, void(*cb)(void *data, const char *name, struct sol_blob *blob, int status), const void *data)
 Writes a string contents to storage. More...
 
static int sol_memmap_write_uint8 (const char *name, uint8_t value, void(*cb)(void *data, const char *name, struct sol_blob *blob, int status), const void *data)
 Writes an uint8_t contents to storage. More...
 

Detailed Description

Routines to save values to memory mapped persistent storage.