ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_i3c_internal.h File Reference

Test-access surface for ra8_i3c internal helpers (MC/DC). More...

#include <stdint.h>
#include "ra8_attributes.h"
Include dependency graph for ra8_i3c_internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

bool priv_ra8_i3c_internal_recv_ccc_invalid (uint8_t addr_mask, uint8_t target, uint8_t max_len)
 Pure predicate: target_addr out of range OR max_len is zero.
bool priv_ra8_i3c_internal_hdr_mode_invalid (uint32_t sdr_val, uint32_t ddr_val, uint32_t ts_val, uint32_t mode)
 Pure predicate: HDR mode value is not one of {SDR, DDR, TS}.

Detailed Description

Test-access surface for ra8_i3c internal helpers (MC/DC).

Declares bounded module-private predicates used to validate I3C controller operations and expose focused coverage seams.

Definition in file ra8_i3c_internal.h.

Function Documentation

◆ priv_ra8_i3c_internal_hdr_mode_invalid()

bool priv_ra8_i3c_internal_hdr_mode_invalid ( uint32_t sdr_val,
uint32_t ddr_val,
uint32_t ts_val,
uint32_t mode )

Pure predicate: HDR mode value is not one of {SDR, DDR, TS}.

Promoted from the inline triple AND at libs/ra8_hal/src/ra8_i3c.c in ra8_i3c_set_hdr_mode.

Parameters
[in]sdr_valNumeric value of k_ra8_i3c_hdr_mode_sdr.
[in]ddr_valNumeric value of k_ra8_i3c_hdr_mode_ddr.
[in]ts_valNumeric value of k_ra8_i3c_hdr_mode_ts.
[in]modeCandidate mode value.
Returns
Boolean reject predicate.
Return values
trueMode is not one of the three legal values.
falseMode is legal.
Precondition
None.
None.
Postcondition
No state mutated.
Return depends solely on the four inputs.
Note
Test-access only. Pure function.
MC/DC:
3-condition AND of inequalities (== compound NOT-OR); N+1 = 4 vectors:
  • mode=SDR -> false (SDR check varies)
  • mode=DDR -> false (DDR check varies)
  • mode=TS -> false (TS check varies)
  • mode=99 -> true (all inequalities true)
Since
0.1.0

Pure predicate: HDR mode value is not one of {SDR, DDR, TS}.

Promoted helper so the line-815 AND can be driven under MC/DC.

Parameters
[in]sdr_valNumeric value of k_ra8_i3c_hdr_mode_sdr.
[in]ddr_valNumeric value of k_ra8_i3c_hdr_mode_ddr.
[in]ts_valNumeric value of k_ra8_i3c_hdr_mode_ts.
[in]modeCandidate mode value.
Returns
Boolean reject predicate.
Return values
trueMode is not legal.
falseMode is legal.
Precondition
None.
None.
Postcondition
No state mutated.
Return depends solely on inputs.
Note
Pure; thread-safe.
Since
0.1.0

Definition at line 80 of file ra8_i3c.c.

Referenced by ra8_i3c_set_hdr_mode().

◆ priv_ra8_i3c_internal_recv_ccc_invalid()

bool priv_ra8_i3c_internal_recv_ccc_invalid ( uint8_t addr_mask,
uint8_t target,
uint8_t max_len )

Pure predicate: target_addr out of range OR max_len is zero.

Promoted from the inline OR at libs/ra8_hal/src/ra8_i3c.c in ra8_i3c_recv_ccc.

Parameters
[in]addr_maskMaximum valid 7-bit address (mask).
[in]targetCandidate target address.
[in]max_lenCaller-supplied max read length.
Returns
Boolean reject predicate.
Return values
trueCaller must return k_ra8_err_invalid_arg.
falseInputs valid.
Precondition
None.
None.
Postcondition
No state mutated.
Return depends solely on the three inputs.
Note
Test-access only. Pure function.
MC/DC:
2-condition OR; N+1 = 3 vectors:
  • target<=mask, max_len>0 -> false
  • target>mask, max_len>0 -> true (varies left)
  • target<=mask, max_len=0 -> true (varies right)
Since
0.1.0

Pure predicate: target_addr out of range OR max_len is zero.

Promoted helper so the line-688 OR can be driven under MC/DC.

Parameters
[in]addr_maskMaximum valid 7-bit address mask.
[in]targetCandidate target address.
[in]max_lenCaller-supplied max read length.
Returns
Boolean reject predicate.
Return values
trueInputs invalid.
falseInputs OK.
Precondition
None.
None.
Postcondition
No state mutated.
Return depends solely on inputs.
Note
Pure; thread-safe.
Since
0.1.0

Definition at line 58 of file ra8_i3c.c.

Referenced by ra8_i3c_recv_ccc().