ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
mdl_stream.c
Go to the documentation of this file.
1
10
12typedef enum : uint8_t {
15
17{
18 return (prior == k_ra8_ok) ? ra8_io_stream_puts(stream, text) : prior;
19}
20
22{
23 return (prior == k_ra8_ok) ? ra8_io_stream_put_u64(stream, value) : prior;
24}
25
27{
28 return (prior == k_ra8_ok) ? ra8_io_stream_put_hex(stream, value, 1U) : prior;
29}
30
32 ra8_io_stream_t* stream,
33 char byte,
34 size_t count)
35{
36 if (prior != k_ra8_ok) {
37 return prior;
38 }
39 if (count > (size_t)k_mdl_stream_repeat_max) {
41 }
43 for (size_t i = 0U; i < count; ++i) {
44 const ra8_err_t error = ra8_io_stream_putc(stream, byte);
45 if (error != k_ra8_ok) {
46 return error;
47 }
48 }
49 return k_ra8_ok;
50}
51
53{
54 return (prior == k_ra8_ok) ? ra8_io_stream_flush(stream) : prior;
55}
mdl_stream_limit_t
Maximum repeated byte count accepted by one helper call.
Definition mdl_stream.c:12
@ k_mdl_stream_repeat_max
Fixed loop bound for presenter fragments.
Definition mdl_stream.c:13
ra8_err_t priv_mdl_stream_hex(ra8_err_t prior, ra8_io_stream_t *stream, uint32_t value)
Append one hexadecimal error/status value after prior success.
Definition mdl_stream.c:26
ra8_err_t priv_mdl_stream_text(ra8_err_t prior, ra8_io_stream_t *stream, const char *text)
Append text unless an earlier operation already failed.
Definition mdl_stream.c:16
ra8_err_t priv_mdl_stream_flush(ra8_err_t prior, ra8_io_stream_t *stream)
Flush a stream only when every earlier append succeeded.
Definition mdl_stream.c:52
ra8_err_t priv_mdl_stream_repeat(ra8_err_t prior, ra8_io_stream_t *stream, char byte, size_t count)
Append a bounded repeated byte after prior success.
Definition mdl_stream.c:31
ra8_err_t priv_mdl_stream_u64(ra8_err_t prior, ra8_io_stream_t *stream, uint64_t value)
Append one unsigned integer unless an earlier append failed.
Definition mdl_stream.c:21
Private bounded text helpers over the portable byte-stream contract.
#define RA8_PRIV
Module-private helper: shared across TUs but only inside one library.
#define RA8_LOOP_BOUND(ceiling)
NASA Power-of-10 Rule 2: bind ONE loop to a compile-time ceiling.
@ k_ra8_ok
Success – operation completed with all postconditions satisfied.
Definition ra8_err.h:119
@ k_ra8_err_invalid_size
Invalid size parameter (too large, too small, or misaligned).
Definition ra8_err.h:167
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
ra8_err_t ra8_io_stream_puts(ra8_io_stream_t *s, const char *str)
Write a NUL-terminated string (without the NUL) to the bound sink.
ra8_err_t ra8_io_stream_flush(ra8_io_stream_t *s)
Flush any sink-side buffering to its destination.
ra8_err_t ra8_io_stream_put_u64(ra8_io_stream_t *s, uint64_t value)
Write value as unsigned 64-bit decimal ASCII without leading zeros.
ra8_err_t ra8_io_stream_putc(ra8_io_stream_t *s, char c)
Write a single byte to the bound sink.
ra8_err_t ra8_io_stream_put_hex(ra8_io_stream_t *s, uint32_t value, uint8_t min_digits)
Write value as lowercase hex ASCII, zero-padded to min_digits.
Caller-allocated byte-stream handle binding a sink to its context.