Midnight Sun Firmware
Loading...
Searching...
No Matches
persist.h
1
#pragma once
2
3
/************************************************************************************************
4
* @file persist.h
5
*
6
* @brief Persist API Header file
7
*
8
* @date 2025-03-10
9
* @author Midnight Sun Team #24 - MSXVI
10
************************************************************************************************/
11
12
/* Standard library Headers */
13
#include <stdbool.h>
14
#include <stddef.h>
15
16
/* Inter-component Headers */
17
18
/* Intra-component Headers */
19
#include "flash.h"
20
#include "status.h"
21
28
/* Commit data every second if dirty */
29
#define PERSIST_COMMIT_TIMEOUT_MS 1000
30
31
typedef
struct
{
32
void
*
blob
;
33
size_t
blob_size
;
34
uintptr_t
flash_addr
;
35
uintptr_t
prev_flash_addr
;
36
uint8_t
page
;
37
}
PersistStorage
;
38
53
StatusCode
persist_init
(
PersistStorage
*persist, uint8_t page,
void
*blob,
size_t
blob_size,
bool
overwrite);
54
62
StatusCode
persist_commit
(
PersistStorage
*persist);
63
StatusCode
StatusCode
StatusCodes for various errors.
Definition
status.h:27
persist_commit
StatusCode persist_commit(PersistStorage *persist)
Force a persist data commit.
Definition
persist.c:109
persist_init
StatusCode persist_init(PersistStorage *persist, uint8_t page, void *blob, size_t blob_size, bool overwrite)
Attempt to load stored data into the provided blob.
Definition
persist.c:35
PersistStorage
Definition
persist.h:31
PersistStorage::flash_addr
uintptr_t flash_addr
Definition
persist.h:34
PersistStorage::page
uint8_t page
Definition
persist.h:36
PersistStorage::blob
void * blob
Definition
persist.h:32
PersistStorage::blob_size
size_t blob_size
Definition
persist.h:33
PersistStorage::prev_flash_addr
uintptr_t prev_flash_addr
Definition
persist.h:35
libraries
ms-common
inc
persist.h
Generated by
1.9.8