ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
mdl_storage.h
Go to the documentation of this file.
1
18#pragma once
19
20#include <stddef.h>
21#include <stdint.h>
22
23#include "fw_if_fs.h"
24#include "ra8_err.h"
25
27typedef enum : uint16_t {
30
49
65
94[[nodiscard]] ra8_err_t mdl_storage_init(mdl_storage_t* storage,
95 const fw_fs_t* fs,
96 void* file_workspace,
97 uint32_t file_workspace_bytes,
98 void* transaction_workspace,
99 uint32_t transaction_workspace_bytes,
100 uint8_t* io_buffer,
101 uint32_t io_buffer_bytes);
102
134[[nodiscard]] ra8_err_t
135mdl_storage_copy_atomic(mdl_storage_t* storage, const char* source, const char* destination);
136
154[[nodiscard]] ra8_err_t
155mdl_storage_txn_begin(mdl_storage_txn_t* writer, mdl_storage_t* storage, const char* destination);
156
180 mdl_storage_t* storage,
181 const char* destination);
182
200[[nodiscard]] ra8_err_t
201mdl_storage_txn_write(mdl_storage_txn_t* writer, const uint8_t* bytes, uint32_t length);
202
218
Architecture-neutral filesystem namespace, stream, and transaction ports.
ra8_err_t mdl_storage_txn_write(mdl_storage_txn_t *writer, const uint8_t *bytes, uint32_t length)
Append one complete caller chunk, tolerating bounded short writes.
ra8_err_t mdl_storage_txn_begin_new(mdl_storage_txn_t *writer, mdl_storage_t *storage, const char *destination)
Begin one streamed create-new publication without replacement.
ra8_err_t mdl_storage_txn_abort(mdl_storage_txn_t *writer)
Abort and clear one streamed transaction.
ra8_err_t mdl_storage_copy_atomic(mdl_storage_t *storage, const char *source, const char *destination)
Copy a regular file through a validated atomic transaction.
ra8_err_t mdl_storage_txn_commit(mdl_storage_txn_t *writer)
Independently validate and publish a completed streamed transaction.
ra8_err_t mdl_storage_init(mdl_storage_t *storage, const fw_fs_t *fs, void *file_workspace, uint32_t file_workspace_bytes, void *transaction_workspace, uint32_t transaction_workspace_bytes, uint8_t *io_buffer, uint32_t io_buffer_bytes)
Validate and retain one filesystem plus caller-owned workspaces.
mdl_storage_limit_t
Recommended portable streaming scratch extent.
Definition mdl_storage.h:27
@ k_mdl_storage_io_bytes
One bounded read/write chunk.
Definition mdl_storage.h:28
ra8_err_t mdl_storage_txn_begin(mdl_storage_txn_t *writer, mdl_storage_t *storage, const char *destination)
Begin one streamed create or truthful atomic replacement.
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
One complete composition-root filesystem binding.
Caller-owned transaction; fields are private to the facade.
One non-reentrant downloader filesystem dependency bundle.
Definition mdl_storage.h:40
uint32_t transaction_workspace_bytes
Transaction workspace extent.
Definition mdl_storage.h:46
uint32_t file_workspace_bytes
File workspace extent.
Definition mdl_storage.h:45
void * transaction_workspace
Transaction backend state.
Definition mdl_storage.h:43
uint8_t * io_buffer
Caller-owned stream scratch.
Definition mdl_storage.h:44
const fw_fs_t * fs
Injected portable filesystem.
Definition mdl_storage.h:41
void * file_workspace
Open-file backend state.
Definition mdl_storage.h:42
uint32_t io_buffer_bytes
Stream scratch extent.
Definition mdl_storage.h:47
Caller-owned streaming publication transaction with running identity.
Definition mdl_storage.h:58
uint64_t hash
Running FNV-1a identity.
Definition mdl_storage.h:62
mdl_storage_t * storage
Exclusively borrowed storage binding.
Definition mdl_storage.h:59
fw_fs_transaction_t transaction
Active private filesystem stage.
Definition mdl_storage.h:60
uint64_t size_bytes
Exact bytes accepted into the stage.
Definition mdl_storage.h:61
uint32_t write_calls
Bounded backend write-call tally.
Definition mdl_storage.h:63