ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
mdl_library.h
Go to the documentation of this file.
1
19#pragma once
20
21#include <stddef.h>
22#include <stdint.h>
23
24#include "mdl_state.h"
25#include "mdl_storage.h"
26#include "ra8_err.h"
27
34
39typedef struct {
40 uint32_t max_entries;
41 uint32_t max_operations;
42 uint16_t max_depth;
44
64
84 void* directory_workspace,
85 uint32_t directory_workspace_bytes);
86
101
121typedef ra8_err_t (*mdl_library_fn)(const char* series_dir,
122 const char* state_path,
123 const mdl_state_t* state,
124 void* ctx,
125 bool* out_continue);
126
155[[nodiscard]] ra8_err_t mdl_library_for_each(mdl_storage_t* storage,
156 const char* out_dir,
157 mdl_state_t* state_scratch,
158 mdl_library_workspace_t* workspace,
159 const mdl_library_policy_t* policy,
160 mdl_library_fn callback,
161 void* callback_ctx);
162
189[[nodiscard]] ra8_err_t mdl_library_remove_tree(mdl_storage_t* storage,
190 const char* dir,
191 const mdl_library_policy_t* policy,
192 mdl_library_workspace_t* workspace);
@ k_fw_fs_path_cap
Largest portable path including its NUL.
ra8_err_t mdl_library_workspace_init(mdl_library_workspace_t *workspace, void *directory_workspace, uint32_t directory_workspace_bytes)
Bind caller-owned directory storage to a reusable library workspace.
Definition mdl_library.c:36
ra8_err_t mdl_library_for_each(mdl_storage_t *storage, const char *out_dir, mdl_state_t *state_scratch, mdl_library_workspace_t *workspace, const mdl_library_policy_t *policy, mdl_library_fn callback, void *callback_ctx)
Visit every authenticated tracked series under a library root.
mdl_library_policy_t mdl_library_policy_default(void)
Return the production library traversal policy.
Definition mdl_library.c:29
mdl_library_limit_t
Hard ceilings accepted by the portable library algorithms.
Definition mdl_library.h:29
@ k_mdl_library_entry_limit
Maximum discovered entries.
Definition mdl_library.h:30
@ k_mdl_library_operation_limit
Maximum namespace calls.
Definition mdl_library.h:31
@ k_mdl_library_depth_limit
Maximum child-dir nesting.
Definition mdl_library.h:32
ra8_err_t mdl_library_remove_tree(mdl_storage_t *storage, const char *dir, const mdl_library_policy_t *policy, mdl_library_workspace_t *workspace)
Remove one canonical directory tree through portable namespace calls.
ra8_err_t(* mdl_library_fn)(const char *series_dir, const char *state_path, const mdl_state_t *state, void *ctx, bool *out_continue)
Per-series visitor callback for mdl_library_for_each.
Persistent per-series library state for the media downloader.
Injected portable storage resources for downloader domain code.
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
Caller-selected limits within the compile-time hard ceilings.
Definition mdl_library.h:39
uint32_t max_operations
Namespace calls permitted for removal.
Definition mdl_library.h:41
uint32_t max_entries
Entries accepted before fail-closed stop.
Definition mdl_library.h:40
uint16_t max_depth
Child-directory nesting below the root.
Definition mdl_library.h:42
Caller-owned directory cursor storage and iterative traversal stack.
Definition mdl_library.h:53
uint32_t required_entries
Entries observed through cap+1.
Definition mdl_library.h:59
uint16_t depth
Current stack depth, root is zero.
Definition mdl_library.h:62
char paths[(size_t) k_mdl_library_depth_limit+1U][k_fw_fs_path_cap]
DFS path stack, one canonical path at each permitted depth.
Definition mdl_library.h:55
void * directory_workspace
Backend cursor workspace.
Definition mdl_library.h:56
uint32_t entry_limit
Active explicit traversal limit.
Definition mdl_library.h:60
uint32_t entries
Entries accepted by the traversal.
Definition mdl_library.h:58
uint32_t operations
Namespace calls attempted.
Definition mdl_library.h:61
uint32_t directory_workspace_bytes
Cursor workspace extent.
Definition mdl_library.h:57
One series' complete persistent state (declare at file scope).
Definition mdl_state.h:175
One non-reentrant downloader filesystem dependency bundle.
Definition mdl_storage.h:40