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

Validation and Error-Checking Macros for ra8-firmware. More...

#include <stdint.h>
#include "ra8_err.h"
#include "ra8_log.h"
#include "ra8_error_handler.h"
Include dependency graph for ra8_check.h:

Go to the source code of this file.

Macros

#define RA8_STATIC_ASSERT(cond, msg)
 Compile-time assertion wrapper.
#define RA8_ASSERT(condition, message)
 Runtime invariant check.
#define RA8_ERROR_CHECK(err)
 Halt on fatal error.
#define RA8_ERROR_CHECK_NO_ABORT(err)
 Log and continue on non-fatal error.
#define RA8_RETURN_ON_ERROR(err, tag, message)
 Early return on error, propagating the code upward.
#define RA8_RETURN_VOID_ON_ERROR(err, tag, message)
 Early return from a void function on error.
#define RA8_RETURN_NULL_ON_ERROR(err, tag, message)
 Early return nullptr from a pointer-returning function on error.
#define RA8_CHECK_NULL_PTR(ptr, tag, message)
 Reject nullptr pointer, returning k_ra8_err_null_ptr.
#define RA8_CHECK_NULL_PTR_RETURN(ptr, return_value, tag, message)
 Reject nullptr while preserving an externally specified return ABI.
#define RA8_CHECK_RANGE(value, min, max, errcode)
 Reject out-of-range value, returning errcode.
#define RA8_CHECK_RANGE_TAG(value, min, max, errcode, tag)
 Tagged range check (adds a component tag to the log line).
#define RA8_VALIDATE_PTR(ptr, tag, message)
 Alias for RA8_CHECK_NULL_PTR in precondition style.
#define RA8_VALIDATE_INIT(initialized, tag, message)
 Precondition: module must be initialized.

Detailed Description

Validation and Error-Checking Macros for ra8-firmware.

This header is the only place error handling lives. Every function that can fail uses these macros to check preconditions and propagate errors, keeping the error-handling vocabulary tiny and uniform.

Design

  • Macros, not functions: we need to return from the caller's stack frame on a failure, and we want the check to disappear at -O2 when the argument is a compile-time constant. Both require macros.
  • do { ... } while (0) wrappers: safe inside if/else without braces, forces a trailing semicolon, and gives the check its own scope so local variables do not leak.
  • Lowercase macro names are forbidden by .clang-tidy, so each identifier is RA8_*.
  • Fatal vs. non-fatal: RA8_ASSERT and RA8_ERROR_CHECK halt the system on failure (they are reserved for irrecoverable programmer errors and critical init paths). RA8_RETURN_ON_ERROR, RA8_RETURN_VOID_ON_ERROR, RA8_RETURN_NULL_ON_ERROR, and RA8_CHECK_* log and return to let the caller handle it.

Error handling matrix

Macro Fatal? Returns Typical use
RA8_ASSERT(cond, msg) yes never Programmer errors, invariants
RA8_ERROR_CHECK(err) yes never Critical init steps
RA8_ERROR_CHECK_NO_ABORT no - Optional init that may fail
RA8_RETURN_ON_ERROR no ra8_err_t Error propagation in most APIs
RA8_RETURN_VOID_ON_ERROR no void Error handling in void helpers
RA8_RETURN_NULL_ON_ERROR no void* Pointer-returning factories
RA8_CHECK_NULL_PTR no ra8_err_t Precondition: non-NULL pointer
RA8_CHECK_NULL_PTR_RETURN no caller-supplied Foreign callback precondition
RA8_CHECK_RANGE no ra8_err_t Precondition: numeric range
RA8_VALIDATE_INIT no ra8_err_t Precondition: module initialized

NASA Power of 10 Compliance

  • Rule 5: every function in this firmware uses at least two of the RA8_CHECK_* / RA8_VALIDATE_* / RA8_ASSERT macros. Most drivers hit the six-precondition mark.
  • Rule 7: every ra8_err_t return flows through exactly one of RA8_RETURN_ON_ERROR, RA8_ERROR_CHECK, or an explicit if in the caller. The pre-commit hook rejects unchecked ra8_err_t values.
  • Rule 8: macros exist only because the alternative (inline function + return code) is strictly worse. There are no macros here that could be a function.

Definition in file ra8_check.h.

Macro Definition Documentation

◆ RA8_ASSERT

#define RA8_ASSERT ( condition,
message )
Value:
do { \
if (!(condition)) { \
ra8_fatal_error("ASSERT", (message), (uint32_t)k_ra8_err_validation_failed); \
} \
} while (0)
@ k_ra8_err_validation_failed
Validation rule failed (caller-supplied invariant not satisfied).
Definition ra8_err.h:459

Runtime invariant check.

Halts the system on failure.

Use for programmer errors – preconditions that must hold for the code to make sense. Do NOT use for runtime errors (bad user input, peripheral timeouts, etc.) – those are what ra8_err_t return codes are for.

Failure path: logs message with tag "ASSERT" and calls ra8_fatal_error, which halts. No allocation, no RTT.

Parameters
[in]conditionExpression that must be true.
[in]messageString literal shown if the assertion fires.
Note
condition is evaluated exactly once.

Definition at line 123 of file ra8_check.h.

Referenced by internal_bilinear_sample(), internal_dec_decode_scan(), and ra8_batt_nag_str().

◆ RA8_CHECK_NULL_PTR

#define RA8_CHECK_NULL_PTR ( ptr,
tag,
message )
Value:
do { \
if ((ptr) == nullptr) { \
ra8_log_error((tag), (message)); \
} \
} while (0)
@ k_ra8_err_null_ptr
Pointer was NULL where a valid pointer was required.
Definition ra8_err.h:478

Reject nullptr pointer, returning k_ra8_err_null_ptr.

Parameters
[in]ptrPointer expression to test.
[in]tagComponent tag for logging.
[in]messageString literal identifying which argument is NULL.
Note
Expands to return k_ra8_err_null_ptr; on failure, so the enclosing function must return ra8_err_t.

Definition at line 243 of file ra8_check.h.

Referenced by app_ecdsa_verify(), app_flash_program(), app_flash_readback(), app_net_close(), app_net_open(), app_net_read(), app_read_bootsel(), app_sha_final(), app_sha_init(), app_sha_update(), book_chapter_text(), book_chapter_text_src(), book_chapter_to_xhtml(), book_chunked_open(), book_chunked_read(), book_open(), book_src_image(), book_src_image_rect(), book_src_paged(), book_src_prefetch_chapter(), book_src_read(), book_src_resident(), book_validate(), cache_store_demo_run(), cam_get_probe_ports(), cam_image_generate(), cam_probe_sync_activity(), cam_puts(), cam_strlen(), comic_close(), comic_open_wrapped(), comic_page_info(), comic_page_read(), demo_build_dlist(), demo_wear_phase(), demo_write_verify(), display_get_caps(), display_get_framebuffer(), display_init(), display_policy_decide(), display_policy_full_rect(), display_policy_init(), drw_blend_render(), drw_demo_fill_and_check(), dtc_arm_run_armed(), dtc_arm_run_disarmed(), dtc_coh_run_once(), dtc_demo_run_once(), epub_entry_close(), epub_entry_open(), epub_entry_read(), ez_cfg_ptrs_ok(), ez_cfg_scratch_ok(), ez_scene_init(), ez_scene_prefetch(), ez_scene_present(), ez_scene_render(), ez_scene_selftest(), ez_tile_decode(), internal_agt_cascade_resolve_halves(), internal_alloc_blank(), internal_alloc_run(), internal_atomic_replace(), internal_await_association(), internal_bdsink_commit_sector(), internal_bdsink_flush(), internal_bdsink_write(), internal_bind_manifest_material(), internal_bkup_demo_rw_check(), internal_bring_up(), internal_bringup(), internal_bringup_spi(), internal_c6link_op_close(), internal_c6link_op_get_ap(), internal_c6link_op_get_mac(), internal_c6link_op_join(), internal_c6link_op_leave(), internal_c6link_op_open(), internal_c6link_op_radio_down(), internal_c6link_op_radio_up(), internal_c6link_op_service(), internal_cache_bind(), internal_cache_erase(), internal_cache_get_caps(), internal_cache_read(), internal_cache_sync(), internal_cache_write(), internal_cfg_ptrs_ok(), internal_check_backend_lifecycle(), internal_check_backend_query(), internal_check_backend_session(), internal_check_buffer_members(), internal_check_caps(), internal_check_ptrs(), internal_checkpoint(), internal_cmac_check_args(), internal_compile_and_cache(), internal_compose_check(), internal_compute_source_key(), internal_copy_name(), internal_crc_stream(), internal_crc_stream_validate_args(), internal_cs(), internal_decode_csd(), internal_decode_stream(), internal_decompress_check(), internal_demo_build_cfg(), internal_demo_get_and_verify(), internal_demo_mount(), internal_demo_mount(), internal_demo_phase_evict(), internal_demo_phase_remount(), internal_demo_phase_seed(), internal_demo_probe_fat(), internal_demo_put_and_verify(), internal_demo_read_once(), internal_demo_roundtrip(), internal_demo_run(), internal_demo_run(), internal_demo_verify_survivors(), internal_derive_names(), internal_derive_stem(), internal_dev_erase(), internal_dev_get_caps(), internal_dev_read(), internal_dev_sync(), internal_dev_write(), internal_devcfg_xm_read(), internal_devcfg_xm_write(), internal_dir_load(), internal_dotf_demo_sample(), internal_eink_clear(), internal_eink_deinit(), internal_eink_flush(), internal_eink_get_caps(), internal_eink_get_framebuffer(), internal_eink_init(), internal_eink_validate_cfg(), internal_ensure_radio_up(), internal_fs_erase(), internal_fs_get_capacity(), internal_fs_read(), internal_fs_write(), internal_geometry(), internal_get_capacity(), internal_i2c_bitrate(), internal_js_bind_geometry(), internal_lcd_clear(), internal_lcd_deinit(), internal_lcd_flush(), internal_lcd_get_caps(), internal_lcd_get_framebuffer(), internal_lcd_init(), internal_lcd_validate_cfg(), internal_lin_rx_buf(), internal_lin_tx_buf(), internal_lsm6dso_fifo_check_args(), internal_lvd_demo_sample(), internal_make_name(), internal_mark_dirty(), internal_mecc_inject(), internal_mecc_run_pass(), internal_mount(), internal_mount(), internal_mram_erase(), internal_mram_get_caps(), internal_mram_read(), internal_mram_write(), internal_ns_verify_or_deny(), internal_open_levelx(), internal_open_or_provision(), internal_open_reject_null(), internal_open_validate(), internal_ops_read(), internal_ops_transfer(), internal_ops_write(), internal_ops_xfer8(), internal_pdg_demo_sample(), internal_pick_free(), internal_poeg_demo_cycle(), internal_pread_null_ok(), internal_produce_args_ok(), internal_pull_data_stage(), internal_put_check(), internal_ra8_cache_maintain_range(), internal_ra8_compress_validate(), internal_ra8_io_roundtrip_mount_check(), internal_ra8_vfs_compress_read_validate(), internal_ra8_vfs_compress_write_validate(), internal_ram_erase(), internal_ram_get_caps(), internal_ram_read(), internal_ram_write(), internal_ram_write(), internal_rar_extract_reject_null(), internal_read_args_ok(), internal_read_at(), internal_read_block(), internal_read_font(), internal_read_one(), internal_read_stamp(), internal_read_stream(), internal_reclaim_stale(), internal_recover(), internal_release_run(), internal_render_ready(), internal_reset_tables(), internal_run_acmd41(), internal_sample(), internal_scan_log(), internal_sci_transport_bringup(), internal_sci_transport_cs(), internal_sci_transport_set_clock(), internal_sci_transport_xfer(), internal_sdhi_get_caps(), internal_sdhi_read(), internal_sdhi_write(), internal_sdspi_get_caps(), internal_sdspi_read(), internal_sdspi_write(), internal_set_clock(), internal_source_read(), internal_start_with_mode(), internal_stream_open(), internal_super_read(), internal_swap_replay_capture(), internal_swap_run_all(), internal_swap_run_one(), internal_swap_vfs_read_verify(), internal_swap_vfs_write(), internal_tas_validate(), internal_tx_ext_init(), internal_uart_flush(), internal_uart_write(), internal_unwrap_reject_null(), internal_usbcdc_write(), internal_usbmsc_get_caps(), internal_usbmsc_read(), internal_usbmsc_write(), internal_validate(), internal_validate_cfg(), internal_validate_cfg_crypto(), internal_validate_cfg_flash(), internal_validate_cfg_net(), internal_validate_cfg_ptrs(), internal_validate_init_args(), internal_validate_init_cfg(), internal_validate_memory_finalize(), internal_validate_open_args(), internal_validate_required_ops_group1(), internal_validate_required_ops_group2(), internal_validate_stream_args(), internal_write_block(), internal_write_entry(), internal_write_one(), internal_write_one_sector(), internal_write_stamp(), internal_xfer(), internal_xspi_erase(), internal_xspi_get_caps(), internal_xspi_program_chunked(), internal_xspi_read(), internal_xspi_read_chunked(), internal_xspi_write(), jof_memstore_pread(), jof_memstore_sink(), jof_parse(), jof_probe_dims(), jof_tile_dims(), longstrip_band_at_y(), longstrip_fling(), longstrip_prefetch(), longstrip_render(), longstrip_scroll_by(), longstrip_set_viewport(), longstrip_tile_decode(), longstrip_visible_bands(), ls_band_decode(), ls_blit(), lx_fs_backend_bind(), mg_reader_check_ptrs(), mg_reader_prefetch(), mg_reader_render(), mg_reader_status(), mg_tile_decode(), priv_book_container_header_fields(), priv_cache_store_dir_save(), priv_cache_store_sector_read(), priv_cache_store_sector_release(), priv_cache_store_sector_write(), priv_cache_store_super_write(), priv_comic_cbr_extract(), priv_comic_cbr_open(), priv_comic_cbt_extract(), priv_comic_cbt_open(), priv_comic_cbz_close(), priv_comic_cbz_extract(), priv_comic_cbz_open(), priv_comic_page_add(), priv_epub_zip_guard_archive(), priv_epub_zip_guard_entry(), priv_jof_on_rows(), priv_jof_png_rows(), priv_ota_validate_cfg(), priv_ra8_esp_hosted_gpio_bind(), priv_ra8_esp_hosted_osi_bind_all(), priv_ra8_esp_hosted_port_cfg_check(), priv_ra8_esp_hosted_rtos_bind(), priv_ra8_esp_hosted_rtos_bind_pool(), priv_ra8_esp_hosted_rtos_bind_sync(), priv_ra8_esp_hosted_rtos_block_size(), priv_ra8_esp_hosted_rtos_release(), priv_ra8_esp_hosted_spi_bind(), priv_ra8_key_import_build_blob(), priv_ra8_key_import_resolve(), priv_ra8_key_import_seal(), priv_ra8_sec_cmac_compute(), priv_ra8_sec_cmac_verify(), priv_ra8_secure_trng_read(), priv_rabook_pipeline_check_common(), priv_unarch_tar_num(), priv_unarch_tar_pax_parse(), ra8_acmphs_channel_deinit(), ra8_acmphs_channel_enable(), ra8_acmphs_channel_init(), ra8_acmphs_clear_status(), ra8_acmphs_get_status(), ra8_acmphs_read_output(), ra8_acmphs_set_inputs(), ra8_adc_configure_scan_group(), ra8_adc_get_status(), ra8_adc_init_configured(), ra8_adc_read_channel(), ra8_adc_read_group_results(), ra8_adc_read_internal_channel(), ra8_adc_self_diagnose(), ra8_agt_deinit(), ra8_agt_enter_stop(), ra8_agt_get_status(), ra8_agt_set_reload(), ra8_agt_start_cascade(), ra8_agt_start_free_run(), ra8_agt_start_pulse_output(), ra8_agt_stop(), ra8_app_active(), ra8_app_at(), ra8_app_count(), ra8_app_find(), ra8_app_launch(), ra8_app_nav_back(), ra8_app_nav_depth(), ra8_app_nav_go(), ra8_app_nav_go_index(), ra8_app_nav_init(), ra8_app_register(), ra8_app_registry_init(), ra8_app_render(), ra8_app_route_input(), ra8_app_state(), ra8_app_tick(), ra8_app_uninstall(), ra8_arena_carve(), ra8_arena_init(), ra8_arena_remaining(), ra8_batt_monitor_init(), ra8_batt_update(), ra8_bkup_get_status(), ra8_bkup_get_voltage_monitor_enabled(), ra8_bkup_init(), ra8_bkup_read_byte(), ra8_bkup_read_input(), ra8_bkup_read_word(), ra8_bkup_security_apply(), ra8_bkup_security_get(), ra8_bkup_tamper_init(), ra8_bkup_warm_start_check(), ra8_bkup_write_byte(), ra8_bkup_write_word(), ra8_ble_open(), ra8_ble_set_random_address(), ra8_board_camera_sccb_read_reg(), ra8_board_console_stream(), ra8_board_shared_ram(), ra8_board_touch_open(), ra8_box_layout(), ra8_box_tree_init(), ra8_bscan_get_idcode(), ra8_bscan_get_status(), ra8_cac_get_status(), ra8_cac_measure(), ra8_cache_store_close(), ra8_cache_store_evict(), ra8_cache_store_get(), ra8_cache_store_init(), ra8_cache_store_pin(), ra8_cache_store_read(), ra8_cache_store_sync(), ra8_canfd_clear_status(), ra8_canfd_deinit(), ra8_canfd_filter_set(), ra8_canfd_get_error_state(), ra8_canfd_get_status(), ra8_canfd_init(), ra8_canfd_receive(), ra8_canfd_set_accept_filter(), ra8_canfd_set_bitrate(), ra8_canfd_set_brs(), ra8_canfd_set_iso_mode(), ra8_canfd_set_tdc(), ra8_canfd_set_test_mode(), ra8_canfd_transmit(), ra8_ceu_byte_swap_set(), ra8_ceu_capture_arm(), ra8_ceu_capture_start_ex(), ra8_ceu_data_size_get(), ra8_ceu_dma_pump(), ra8_ceu_get_status(), ra8_ceu_init(), ra8_ceu_set_dma_buffer(), ra8_ceu_status_snapshot(), ra8_cnecc_attach_handler(), ra8_cnecc_clear_status(), ra8_cnecc_disable_instance(), ra8_cnecc_enable_instance(), ra8_cnecc_get_counters(), ra8_cnecc_get_status(), ra8_cnecc_init(), ra8_cnecc_inject_fault(), ra8_cnecc_set_correction_permission(), ra8_cnecc_set_irq_enables(), ra8_cnecc_test_mode_active(), ra8_cnecc_test_mode_disable(), ra8_crc_compute(), ra8_crc_get_status(), ra8_dac_b_get_status(), ra8_dac_b_init_configured(), ra8_decomp_budget_charge_entry(), ra8_decomp_budget_charge_iter(), ra8_decomp_budget_charge_output(), ra8_decomp_budget_enter(), ra8_decomp_budget_init(), ra8_decomp_check_declared(), ra8_decomp_zip_entry_preflight(), ra8_decompress(), ra8_devcfg_commit(), ra8_devcfg_get_body(), ra8_devcfg_get_vcom_mv(), ra8_devcfg_load(), ra8_dma_channel_is_busy(), ra8_dma_request(), ra8_dmac_is_active(), ra8_dmac_start(), ra8_dmac_start_block(), ra8_doc_add16(), ra8_doc_sub16(), ra8_doc_window_compare(), ra8_dotf_clear_status(), ra8_dotf_disable(), ra8_dotf_enable(), ra8_dotf_get_active_region(), ra8_dotf_get_status(), ra8_dotf_install_key(), ra8_dotf_open(), ra8_dotf_rotate_key(), ra8_dotf_run_self_test(), ra8_dotf_select_region(), ra8_dotf_set_iv(), ra8_dotf_set_key_size(), ra8_dotf_set_region(), ra8_dotf_set_sca_level(), ra8_drw_blit_textured_rect(), ra8_drw_dlist_add_fill(), ra8_drw_dlist_begin(), ra8_drw_dlist_end(), ra8_drw_dlist_run(), ra8_drw_draw_line(), ra8_drw_draw_triangle(), ra8_drw_fill_rect(), ra8_drw_get_hwrevision(), ra8_drw_get_status(), ra8_drw_init(), ra8_drw_load_clut(), ra8_drw_perf_read(), ra8_drw_set_blend(), ra8_drw_set_gradient(), ra8_drw_set_texture(), ra8_dtc_get_status(), ra8_dtc_init(), ra8_dtc_reconfigure(), ra8_elc_is_enabled(), ra8_epaper_align_area(), ra8_epaper_decode_dev_info(), ra8_epaper_dev_info(), ra8_epaper_display_area(), ra8_epaper_get_vcom(), ra8_epaper_image_bytes(), ra8_epaper_init(), ra8_epaper_load_image(), ra8_epaper_validate_cfg(), ra8_epaper_waveform_cfg_for_lut(), ra8_epd_cal_apply(), ra8_epd_cal_deserialize(), ra8_epd_cal_provision(), ra8_epd_cal_resolve(), ra8_epd_cal_serialize(), ra8_eth_coma_get_status(), ra8_eth_get_stats(), ra8_eth_get_status(), ra8_eth_gptp_get_avtp_ns(), ra8_eth_gptp_get_increment(), ra8_eth_gptp_get_time(), ra8_eth_gptp_init(), ra8_eth_gptp_ip_version(), ra8_eth_gptp_timer_is_enabled(), ra8_eth_gptp_tiv_from_hz(), ra8_eth_gwca_attach_buffers(), ra8_eth_gwca_configure_queue(), ra8_eth_gwca_default_open(), ra8_eth_gwca_default_recv(), ra8_eth_gwca_default_send(), ra8_eth_gwca_find_slot(), ra8_eth_gwca_get_status(), ra8_eth_gwca_init_ring(), ra8_eth_gwca_install_linkfix(), ra8_eth_gwca_rx_frame(), ra8_eth_gwca_set_descriptor_buffer(), ra8_eth_gwca_tx_frame(), ra8_eth_link_status(), ra8_eth_mfwd_get_status(), ra8_eth_mfwd_set_forwarding_masks(), ra8_eth_open(), ra8_eth_read(), ra8_eth_write(), ra8_etha_configure_cbs(), ra8_etha_get_cbs_state(), ra8_etha_get_queue_level(), ra8_etha_get_stats(), ra8_etha_get_status(), ra8_etha_init(), ra8_etha_open(), ra8_etha_read_stats(), ra8_etha_read_tas_entry(), ra8_etha_set_ipv_remap(), ra8_etha_set_tas_schedule(), ra8_etha_set_vlan_tag(), ra8_ether_phy_link_status_get(), ra8_ether_phy_mdio_read(), ra8_ether_phy_open(), ra8_flash_arc_read(), ra8_flash_blank_check(), ra8_flash_config_set_write(), ra8_flash_extra_mram_write(), ra8_flash_get_ecc_error_addr(), ra8_flash_get_extended_status(), ra8_flash_get_program_error_addr(), ra8_flash_get_startup_area(), ra8_flash_get_status(), ra8_flash_get_update_status(), ra8_flash_init(), ra8_flash_status(), ra8_flash_write(), ra8_flash_write_block(), ra8_ftl_as_blockdev(), ra8_ftl_checkpoint_load(), ra8_ftl_checkpoint_save(), ra8_ftl_checkpoint_size(), ra8_ftl_phys_of(), ra8_ftl_wear_stats(), ra8_gfx_dither_gray8_to_gray4(), ra8_glcdc_gamma_enable(), ra8_glcdc_get_status(), ra8_glcdc_init(), ra8_glcdc_set_clut_double_buffered(), ra8_glcdc_set_gamma(), ra8_glcdc_set_layer2(), ra8_glyph_atlas_get(), ra8_glyph_atlas_init(), ra8_glyph_atlas_put(), ra8_glyph_atlas_stats(), ra8_gpio_attach_irq(), ra8_gpio_read(), ra8_gpt_capture_configure(), ra8_gpt_capture_read(), ra8_gpt_clear_status(), ra8_gpt_counter_set(), ra8_gpt_dead_time_set(), ra8_gpt_deinit(), ra8_gpt_duty_cycle_set(), ra8_gpt_event_count_configure(), ra8_gpt_get_status(), ra8_gpt_init(), ra8_gpt_period_set(), ra8_gpt_pwm_pin_configure(), ra8_gpt_read(), ra8_gpt_read_dma(), ra8_gpt_set_duty(), ra8_gpt_set_period(), ra8_gpt_start_free_run(), ra8_gpt_stop(), ra8_gpt_three_phase_open(), ra8_gpt_write_dma(), ra8_i2c_get_errors(), ra8_i2c_init(), ra8_i2c_peripheral_init(), ra8_i2c_peripheral_poll(), ra8_i2c_peripheral_receive(), ra8_i2c_peripheral_transmit(), ra8_i2c_read(), ra8_i2c_scan(), ra8_i2c_write(), ra8_i3c_dynamic_address_assign(), ra8_i3c_get_status(), ra8_i3c_i2c_get_errors(), ra8_i3c_i2c_init(), ra8_i3c_i2c_peripheral_open(), ra8_i3c_i2c_peripheral_status(), ra8_i3c_i2c_read(), ra8_i3c_i2c_scan(), ra8_i3c_i2c_write(), ra8_i3c_ibi_read(), ra8_i3c_init(), ra8_i3c_peripheral_open(), ra8_i3c_read(), ra8_i3c_recv_ccc(), ra8_icu_configure_irq_pin(), ra8_icu_nmi_status(), ra8_icu_read_irqcr(), ra8_img_decode_blit(), ra8_img_probe_size(), ra8_io_blockdev_as_fs_backend(), ra8_io_blockdev_cache_init(), ra8_io_blockdev_cache_stats(), ra8_io_blockdev_get_caps(), ra8_io_blockdev_mram_init(), ra8_io_blockdev_ram_init(), ra8_io_blockdev_read(), ra8_io_blockdev_sdhi_init(), ra8_io_blockdev_sdram_init(), ra8_io_blockdev_sdspi_init(), ra8_io_blockdev_usbmsc_init(), ra8_io_blockdev_vsource_init(), ra8_io_blockdev_vsource_read(), ra8_io_blockdev_write(), ra8_io_blockdev_xspi_init(), ra8_io_fsfmt_get_builtin(), ra8_io_fsfmt_probe(), ra8_io_fsfmt_register(), ra8_io_i2c_bus_as_ops(), ra8_io_i2c_bus_bind_i3c_compat(), ra8_io_i2c_bus_bind_riic(), ra8_io_i2c_bus_read(), ra8_io_i2c_bus_transfer(), ra8_io_i2c_bus_write(), ra8_io_log_attach(), ra8_io_roundtrip_mount(), ra8_io_roundtrip_root_file(), ra8_io_roundtrip_subdir_file(), ra8_io_spi_bus_as_ops(), ra8_io_spi_bus_bind_sci_spi(), ra8_io_spi_bus_bind_spi_b(), ra8_io_spi_bus_set_clock(), ra8_io_spi_bus_write_read(), ra8_io_spi_bus_xfer8(), ra8_io_stream_blockdev_init(), ra8_io_stream_puts(), ra8_io_stream_ram_init(), ra8_io_stream_ram_used(), ra8_io_stream_uart_init(), ra8_io_stream_usbcdc_init(), ra8_io_stream_write(), ra8_io_vfs_file_close(), ra8_io_vfs_file_open(), ra8_io_vfs_file_read(), ra8_io_vfs_file_seek(), ra8_io_vfs_file_size(), ra8_io_vfs_file_sync(), ra8_io_vfs_file_tell(), ra8_io_vfs_file_write(), ra8_io_vfs_free_space(), ra8_io_vfs_get_caps(), ra8_io_vfs_listdir(), ra8_io_vfs_mkdir(), ra8_io_vfs_mount(), ra8_io_vfs_mount_auto(), ra8_io_vfs_open(), ra8_io_vfs_rename(), ra8_io_vfs_rmdir(), ra8_io_vfs_stat(), ra8_io_vfs_unlink(), ra8_io_vfs_unmount(), ra8_ipc_can_access(), ra8_ipc_can_send(), ra8_ipc_channel_for_recv(), ra8_ipc_channel_for_send(), ra8_ipc_clear_event(), ra8_ipc_clear_status(), ra8_ipc_deinit(), ra8_ipc_get_attribution(), ra8_ipc_get_nmi_attribution(), ra8_ipc_get_sem_attribution(), ra8_ipc_get_status(), ra8_ipc_has_data(), ra8_ipc_init(), ra8_ipc_nmi_get_status(), ra8_ipc_recv_burst(), ra8_ipc_recv_message(), ra8_ipc_recv_message_retry(), ra8_ipc_ring_consume(), ra8_ipc_ring_init(), ra8_ipc_ring_is_empty(), ra8_ipc_ring_is_full(), ra8_ipc_ring_produce(), ra8_ipc_sem_is_locked(), ra8_ipc_sem_release(), ra8_ipc_sem_take_timeout(), ra8_ipc_sem_try_take(), ra8_ipc_send_burst(), ra8_ipc_send_event(), ra8_ipc_send_message(), ra8_ipc_send_message_retry(), ra8_isr_lookup_slot(), ra8_isr_register(), ra8_iwdt_get_counter(), ra8_iwdt_get_status(), ra8_jpeg_sw_decode(), ra8_jpeg_sw_decode_stripes(), ra8_jpeg_sw_encode(), ra8_jpeg_sw_get_dimensions(), ra8_kbd_apply(), ra8_kbd_layout_init(), ra8_kbd_text_init(), ra8_key_vault_load_mac_key(), ra8_key_vault_set_mac_key(), ra8_key_vault_sha256_xor_challenge(), ra8_key_vault_store(), ra8_keycache_get(), ra8_keycache_init(), ra8_keycache_prefetch(), ra8_keycache_put(), ra8_keycache_stats(), ra8_layer3_switch_open(), ra8_layer3_switch_route_add(), ra8_layer3_switch_status_get(), ra8_lpm_get_clock_stop(), ra8_lpm_get_dpsi_state(), ra8_lpm_get_exit_cause(), ra8_lpm_get_opccr(), ra8_lpm_get_status(), ra8_lpm_init(), ra8_lpm_set_ldo_standby(), ra8_lpm_set_ram_retention(), ra8_lsm6dso_init(), ra8_lsm6dso_read_accel(), ra8_lsm6dso_read_gyro(), ra8_lsm6dso_read_temp(), ra8_lsm6dso_set_accel_range(), ra8_lsm6dso_set_gyro_range(), ra8_lsm6dso_set_odr(), ra8_lsm6dso_who_am_i(), ra8_lvd_channel_init(), ra8_lvd_get_status(), ra8_mipi_csi_dl_get_status(), ra8_mipi_csi_get_module_info(), ra8_mipi_csi_get_module_irq_status(), ra8_mipi_csi_get_status(), ra8_mipi_csi_init(), ra8_mipi_csi_pm_get_status(), ra8_mipi_csi_read_short_packet(), ra8_mipi_csi_short_packet_get_status(), ra8_mipi_csi_vc_get_status(), ra8_mipi_dsi_ack_error_get(), ra8_mipi_dsi_get_status(), ra8_mipi_dsi_init(), ra8_mipi_dsi_link_status_get(), ra8_mipi_dsi_read_packet(), ra8_mipi_dsi_rx_payload_read(), ra8_mipi_dsi_rx_result_get(), ra8_mipi_dsi_send_command(), ra8_mipi_dsi_send_command_short(), ra8_mipi_dsi_set_video_timing(), ra8_mipi_dsi_te_event_pending(), ra8_mipi_dsi_video_configure(), ra8_mipi_dsi_video_start(), ra8_mipi_phy_get_status(), ra8_mipi_phy_recover_from_error(), ra8_mipi_phy_set_lane_speed(), ra8_mipi_phy_validate_pll_band(), ra8_modem_at_register_unsolicited_handler(), ra8_modem_at_send_cmd(), ra8_modem_at_send_cmd_capture(), ra8_mpc_read_pfs(), ra8_mpu_configure(), ra8_mpu_set_region(), ra8_mstp_get_refcount(), ra8_mstp_is_stopped(), ra8_net_pal_get_mac_addr(), ra8_net_pal_link_status(), ra8_net_pal_recv_frame(), ra8_net_pal_send_frame(), ra8_net_pal_set_mac_addr(), ra8_npu_dequantize_i8(), ra8_npu_dequantize_u8(), ra8_npu_quantize_i8(), ra8_npu_quantize_u8(), ra8_nsc_acmphs_read_output(), ra8_nsc_adc_read_channel(), ra8_nsc_cgc_get_clock_hz(), ra8_nsc_crc_compute(), ra8_nsc_eth_recv(), ra8_nsc_eth_send(), ra8_nsc_glcdc_init(), ra8_nsc_gpt_init(), ra8_nsc_gpt_read(), ra8_nsc_iic_init(), ra8_nsc_iic_read(), ra8_nsc_iic_write(), ra8_nsc_key_vault_challenge(), ra8_nsc_log_emit(), ra8_nsc_sci_getc(), ra8_nsc_sci_init(), ra8_nsc_spi_init(), ra8_nsc_spi_read(), ra8_nsc_spi_write(), ra8_nsc_spi_write_read(), ra8_nsc_xspi_read(), ra8_nsc_xspi_status(), ra8_ota_check_for_update(), ra8_ota_commit_get_bank_config(), ra8_ota_commit_pending(), ra8_ota_download_to_inactive_bank(), ra8_ota_verify_signature(), ra8_ov5640_configure(), ra8_ov5640_init(), ra8_ov5640_jpeg_status_get(), ra8_ov5640_probe(), ra8_ov5640_read_reg(), ra8_ov5640_set_jpeg_quantization_scale(), ra8_ov5640_write_reg(), ra8_pdg_capture_start(), ra8_pdg_delay_ns_to_code(), ra8_pdg_get_delay(), ra8_pdg_get_status(), ra8_pdg_get_status_full(), ra8_pdg_init(), ra8_pdg_pick_frange(), ra8_pdg_required_write_ns(), ra8_pdg_set_delay_batch(), ra8_pdm_configure(), ra8_pdm_read(), ra8_pdm_stream_enable(), ra8_pfs_route_peripheral(), ra8_pin_validator_claim(), ra8_poeg_clear_status(), ra8_poeg_deinit(), ra8_poeg_get_status(), ra8_poeg_init(), ra8_poeg_trigger_stop(), ra8_power_profile_get_stats(), ra8_power_profile_init(), ra8_pwr_wake_source_is_enabled(), ra8_rabook_gray4_downscale(), ra8_rabook_gray4_encode(), ra8_rabook_gray8_encode(), ra8_rabook_link_child(), ra8_rabook_link_sibling(), ra8_rabook_set_metadata(), ra8_rar5_decompress(), ra8_rar_extract(), ra8_rar_extract_stored(), ra8_rar_next(), ra8_rar_open(), ra8_reset_get_attribution(), ra8_reset_get_cause(), ra8_reset_get_raw(), ra8_reset_get_source_mask(), ra8_rmac_get_status(), ra8_rmac_init(), ra8_rmac_mdio_c22_read(), ra8_rmac_mdio_c45_read(), ra8_rmac_phy_auto_neg_wait(), ra8_rmac_phy_link_status(), ra8_rmac_phy_link_status_get(), ra8_rmac_phy_lsi_get(), ra8_rmac_phy_mdio_read(), ra8_rmac_read_stats(), ra8_rmac_set_mac_address(), ra8_rsip_aes128_install_plain(), ra8_rsip_aes192_install_plain(), ra8_rsip_aes256_install_plain(), ra8_rsip_aes_ccm(), ra8_rsip_aes_cipher(), ra8_rsip_aes_gcm(), ra8_rsip_chacha20(), ra8_rsip_chacha20_install_plain(), ra8_rsip_chacha20_poly1305(), ra8_rsip_debug_level_get(), ra8_rsip_ecdh_compute(), ra8_rsip_ecdsa_sign(), ra8_rsip_ecdsa_verify(), ra8_rsip_eddsa_sign(), ra8_rsip_eddsa_verify(), ra8_rsip_get_status(), ra8_rsip_hash(), ra8_rsip_hmac(), ra8_rsip_hmac_install_plain(), ra8_rsip_hmac_sha256_final(), ra8_rsip_hmac_sha256_init(), ra8_rsip_hmac_sha256_update(), ra8_rsip_init(), ra8_rsip_kdf(), ra8_rsip_key_inject_aes(), ra8_rsip_key_inject_ecc(), ra8_rsip_key_inject_rsa(), ra8_rsip_key_unwrap(), ra8_rsip_key_validate(), ra8_rsip_key_wrap(), ra8_rsip_kv_count(), ra8_rsip_kv_read(), ra8_rsip_kv_write(), ra8_rsip_life_get(), ra8_rsip_oem_bl_version_get(), ra8_rsip_oem_install(), ra8_rsip_poly1305(), ra8_rsip_protected_aes_decrypt(), ra8_rsip_protected_aes_encrypt(), ra8_rsip_protected_aes_init(), ra8_rsip_protected_ecdsa_sign(), ra8_rsip_protected_rsa_decrypt(), ra8_rsip_rsa_decrypt(), ra8_rsip_rsa_encrypt(), ra8_rsip_rsa_sign(), ra8_rsip_rsa_verify(), ra8_rsip_sha256(), ra8_rsip_sha256_final(), ra8_rsip_sha256_init(), ra8_rsip_sha256_update(), ra8_rsip_tamper_status(), ra8_rsip_trng_read(), ra8_rtc_get(), ra8_rtc_get_status(), ra8_rtc_set(), ra8_rtc_set_alarm(), ra8_scb_read_fault_status(), ra8_sci_baud_calculate(), ra8_sci_get_errors(), ra8_sci_getc_polling(), ra8_sci_init(), ra8_sci_lin_break_detected(), ra8_sci_lin_check_header(), ra8_sci_lin_check_response(), ra8_sci_lin_checksum(), ra8_sci_lin_clear_status(), ra8_sci_lin_init(), ra8_sci_lin_read_response(), ra8_sci_lin_send_break(), ra8_sci_lin_send_header(), ra8_sci_lin_send_response(), ra8_sci_lin_wait_break(), ra8_sci_read_dma(), ra8_sci_read_stop(), ra8_sci_spi_init(), ra8_sci_spi_xfer8(), ra8_sci_write_dma(), ra8_sdcard_get_capacity(), ra8_sdcard_get_type(), ra8_sdcard_init(), ra8_sdcard_read_blocks(), ra8_sdcard_write_blocks(), ra8_sdhi_attach_dma(), ra8_sdhi_clear_status(), ra8_sdhi_deinit(), ra8_sdhi_get_status(), ra8_sdhi_init(), ra8_sdhi_read_block(), ra8_sdhi_send_command(), ra8_sdhi_set_bus_width(), ra8_sdhi_set_bus_width_4bit(), ra8_sdhi_set_bus_width_8bit(), ra8_sdhi_set_clock(), ra8_sdhi_write_block(), ra8_sdmmc_spi_bind_fs_backend(), ra8_sdmmc_spi_get_capacity(), ra8_sdmmc_spi_get_card_type(), ra8_sdmmc_spi_read_block(), ra8_sdmmc_spi_read_blocks(), ra8_sdmmc_spi_transport_sci(), ra8_sdmmc_spi_write_block(), ra8_sdmmc_spi_write_blocks(), ra8_sdramc_get_status(), ra8_slab_alloc(), ra8_slab_free(), ra8_slab_init(), ra8_slab_stats(), ra8_smbus_block_read(), ra8_smbus_block_write(), ra8_smbus_init(), ra8_smbus_read_byte_data(), ra8_smbus_receive_byte(), ra8_spi_b_target_init(), ra8_spi_b_target_xfer(), ra8_spi_get_errors(), ra8_spi_init(), ra8_spi_read_dma(), ra8_spi_write_dma(), ra8_spi_xfer8(), ra8_sram_attach_bank_handler(), ra8_sram_attach_handler(), ra8_sram_get_bank_info(), ra8_sram_get_status(), ra8_sram_init(), ra8_sram_self_test(), ra8_sram_set_mode(), ra8_ssie_attach_dma(), ra8_ssie_get_status(), ra8_ssie_init(), ra8_ssie_read_buffer(), ra8_ssie_read_sample(), ra8_ssie_recv_iso(), ra8_ssie_send_iso(), ra8_ssie_write_buffer(), ra8_systick_reload_for(), ra8_threadx_systick_reload_for(), ra8_tile_cache_get(), ra8_tile_cache_init(), ra8_tile_cache_prefetch(), ra8_tile_cache_prefetch_pan(), ra8_tile_cache_put(), ra8_tile_cache_stats(), ra8_tile_rect_of_pixels(), ra8_touch_open(), ra8_touch_read(), ra8_tsn_convert_to_milli_c(), ra8_tsn_get_status(), ra8_tsn_init(), ra8_tsn_read_die_temp_milli_c(), ra8_tsn_read_raw(), ra8_tz_secure_boot_jump_ns(), ra8_tz_secure_boot_run(), ra8_ui_hit_test(), ra8_ui_nav_init(), ra8_ui_nav_pop(), ra8_ui_nav_push(), ra8_ui_nav_replace(), ra8_ui_nav_top(), ra8_ui_pager_goto(), ra8_ui_pager_init(), ra8_ui_pager_next(), ra8_ui_pager_prev(), ra8_ulpt_deinit(), ra8_ulpt_get_status(), ra8_ulpt_set_period(), ra8_ulpt_start(), ra8_ulpt_stop(), ra8_usb_cdc_get_line_coding(), ra8_usb_cdc_get_line_state(), ra8_usb_cdc_handle_setup(), ra8_usb_cdc_recv(), ra8_usb_composite_dispatch_setup(), ra8_usb_composite_get_class_count(), ra8_usb_composite_get_config_descriptor(), ra8_usb_composite_get_device_descriptor(), ra8_usb_composite_set_descriptors(), ra8_usb_get_device_state(), ra8_usb_get_status(), ra8_usb_haud_recv_samples(), ra8_usb_hcdc_ecm_get_link_status(), ra8_usb_hcdc_ecm_parse_mac(), ra8_usb_hcdc_ecm_recv_frame(), ra8_usb_hcdc_recv(), ra8_usb_hhid_get_input_report(), ra8_usb_hhid_get_report(), ra8_usb_hhub_get_port_count(), ra8_usb_hhub_get_port_status(), ra8_usb_hmsc_build_cbw(), ra8_usb_hmsc_decode_csw(), ra8_usb_hmsc_inquiry(), ra8_usb_hmsc_read10(), ra8_usb_hmsc_read_capacity(), ra8_usb_hmsc_write10(), ra8_usb_host_bulk_in(), ra8_usb_host_bulk_out(), ra8_usb_host_control_xfer(), ra8_usb_host_setup_request(), ra8_usb_pal_ep_recv(), ra8_usb_pal_get_state(), ra8_usb_paud_get_format(), ra8_usb_paud_get_volume(), ra8_usb_paud_handle_setup(), ra8_usb_paud_recv_frame(), ra8_usb_paud_set_descriptors(), ra8_usb_phid_get_idle(), ra8_usb_phid_get_protocol(), ra8_usb_phid_handle_setup(), ra8_usb_phid_recv_report(), ra8_usb_phid_set_descriptors(), ra8_usb_pmsc_attach_storage(), ra8_usb_pmsc_build_csw(), ra8_usb_pmsc_dispatch_command(), ra8_usb_pmsc_feed_cbw(), ra8_usb_pprn_get_port_status(), ra8_usb_pprn_handle_setup(), ra8_usb_pprn_recv(), ra8_usb_pprn_set_descriptors(), ra8_usb_pvnd_handle_setup(), ra8_usb_pvnd_recv(), ra8_usb_pvnd_set_descriptors(), ra8_usb_read_setup_if_valid(), ra8_usb_read_setup_unconditional(), ra8_vin_capture_start(), ra8_vin_get_active_buffer(), ra8_vin_get_line_count(), ra8_vin_get_module_status(), ra8_vin_get_status(), ra8_vin_init(), ra8_vin_lut_program(), ra8_vin_set_csi_input(), ra8_vin_set_data_mode(), ra8_vin_set_field_detect(), ra8_vin_set_preclip(), ra8_vin_set_rgb_to_yc(), ra8_vin_set_uds_ctrl(), ra8_vin_set_uds_scale(), ra8_vin_set_yc_to_rgb(), ra8_vmem_get(), ra8_vmem_init(), ra8_vmem_prefetch(), ra8_vmem_put(), ra8_vmem_stats(), ra8_vmem_stream_init(), ra8_vreg_get_status(), ra8_vreg_init(), ra8_vsource_add_paged(), ra8_vsource_add_xip(), ra8_vsource_init(), ra8_vsource_loader(), ra8_vsource_xip_ptr(), ra8_wdt_get_counter(), ra8_wdt_get_status(), ra8_wdt_init(), ra8_wdt_ofs_get(), ra8_wdt_pclkb_divisor(), ra8_wdt_subscribe(), ra8_wdt_timeout_cycles_get(), ra8_wdt_total_pclkb_cycles(), ra8_webp_decode_rgba(), ra8_webp_get_info(), ra8_widget_book_grid_init(), ra8_widget_button_init(), ra8_widget_damage(), ra8_widget_dispatch(), ra8_widget_invalidate(), ra8_widget_keyboard_init(), ra8_widget_label_init(), ra8_widget_layout_stack(), ra8_widget_nav_bar_init(), ra8_widget_panel_init(), ra8_widget_progress_bar_init(), ra8_widget_reflow_view_init(), ra8_widget_status_bar_init(), ra8_widget_toolbar_init(), ra8_wifi_c6link_setup(), ra8_wifi_connect(), ra8_wifi_deinit(), ra8_wifi_disconnect(), ra8_wifi_get_ap(), ra8_wifi_get_ip(), ra8_wifi_get_mac(), ra8_wifi_init(), ra8_wifi_poll(), ra8_wifi_status(), ra8_wifi_wait_ip(), ra8_xspi_calibrate_dqs(), ra8_xspi_clear_status(), ra8_xspi_deinit(), ra8_xspi_direct_command(), ra8_xspi_flash_erase_sector(), ra8_xspi_flash_program(), ra8_xspi_flash_read(), ra8_xspi_flash_read_id(), ra8_xspi_flash_read_status(), ra8_xspi_get_status(), ra8_xspi_init(), ra8_xspi_resume(), ra8_xspi_set_dtr_mode(), ra8_xspi_set_xip_mode(), ra8_xspi_software_reset(), ra8_xspi_suspend(), ra8_xspi_xip_enter(), ra8_xspi_xip_exit(), rabook_compile_from_epub(), rabook_compile_from_epub_to_buffer(), rabook_compile_init(), rabook_import_compile_adapter(), rabook_import_compile_adapter_m33(), reflow_find_anchor(), reflow_hit_test_image(), reflow_hit_test_link(), reflow_href_split(), sh_image_blit_cover(), sh_image_decode_gray8(), sh_image_loupe(), sh_paged_mram_read(), sh_sd_book_read(), unarch_gzip_unwrap(), unarch_tar_next(), unarch_tar_open(), unarch_tar_read(), unarch_xz_pool_install(), unarch_xz_stream_begin(), unarch_xz_stream_run(), zoom_source_init(), zoom_view_close(), zoom_view_invalidate(), zoom_view_open(), zoom_view_pan(), zoom_view_pan_dir(), zoom_view_present(), zoom_view_rebind(), zoom_view_set_scale(), and zoom_view_window().

◆ RA8_CHECK_NULL_PTR_RETURN

#define RA8_CHECK_NULL_PTR_RETURN ( ptr,
return_value,
tag,
message )
Value:
do { \
if ((ptr) == nullptr) { \
ra8_log_error((tag), (message)); \
return (return_value); \
} \
} while (0)

Reject nullptr while preserving an externally specified return ABI.

Use only at adaptation boundaries whose callback signature returns a status type other than ra8_err_t. Native firmware APIs use RA8_CHECK_NULL_PTR. The caller-provided failure value is evaluated once and only when ptr is nullptr.

Parameters
[in]ptrPointer expression to test.
[in]return_valueCallback-specific status returned on failure.
[in]tagComponent tag for logging.
[in]messageString literal identifying the invalid argument.
Returns
Returns from the enclosing callback only when ptr is nullptr.
Precondition
tag and message are non-null NUL-terminated strings.
Postcondition
A null pointer emits one error line and returns return_value.
A non-null pointer performs no logging and permits execution to continue.
Note
ptr is evaluated exactly once. return_value is evaluated exactly once on rejection and is not evaluated on acceptance.
See also
RA8_CHECK_NULL_PTR

Definition at line 276 of file ra8_check.h.

Referenced by mbedtls_psa_external_get_random().

◆ RA8_CHECK_RANGE

#define RA8_CHECK_RANGE ( value,
min,
max,
errcode )
Value:
do { \
if (((value) < (min)) || ((value) > (max))) { \
ra8_log_error("CHECK", "Range check failed"); \
return (errcode); \
} \
} while (0)
#define min(x, y)
Untyped minimum shim used by the SOUP's buffer clamping.
Definition xz_config.h:157

Reject out-of-range value, returning errcode.

Parameters
[in]valueNumeric expression to test.
[in]minInclusive lower bound.
[in]maxInclusive upper bound.
[in]errcodera8_err_t value to return on failure.

Definition at line 292 of file ra8_check.h.

Referenced by cam_put_hex().

◆ RA8_CHECK_RANGE_TAG

#define RA8_CHECK_RANGE_TAG ( value,
min,
max,
errcode,
tag )
Value:
do { \
(void)(min); \
if ((value) > (max)) { \
ra8_log_error((tag), "Range check failed"); \
return (errcode); \
} \
} while (0)

Tagged range check (adds a component tag to the log line).

Parameters
[in]valueNumeric expression to test.
[in]minInclusive lower bound (documented only; explicit check is omitted to avoid -Wtype-limits when min == 0 and value is unsigned).
[in]maxInclusive upper bound.
[in]errcodera8_err_t value to return on failure.
[in]tagComponent tag for logging.

Definition at line 311 of file ra8_check.h.

Referenced by internal_swap_vfs_read_verify(), internal_swap_vfs_write(), ra8_eth_rgmii_select(), ra8_lsm6dso_set_accel_range(), ra8_lsm6dso_set_gyro_range(), ra8_lsm6dso_set_odr(), ra8_pdm_configure(), ra8_pdm_read(), ra8_pdm_read_enable(), ra8_pdm_start(), ra8_pdm_stop(), ra8_pdm_stream_disable(), and ra8_pdm_stream_enable().

◆ RA8_ERROR_CHECK

#define RA8_ERROR_CHECK ( err)
Value:
do { \
ra8_err_t err_rc_ = (err); \
if (ra8_err_is_error(err_rc_)) { \
ra8_fatal_error("ERROR_CHECK", "Fatal error", (uint32_t)err_rc_); \
} \
} while (0)
static bool ra8_err_is_error(ra8_err_t err)
Test whether a code represents failure.
Definition ra8_err.h:568
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546

Halt on fatal error.

If err is non-success, log + halt. Use at critical init points where there is no meaningful recovery (clock bring-up, vector table install, etc.).

Parameters
[in]errra8_err_t value to check.
Note
Evaluates err exactly once via a local.

Definition at line 147 of file ra8_check.h.

◆ RA8_ERROR_CHECK_NO_ABORT

#define RA8_ERROR_CHECK_NO_ABORT ( err)
Value:
do { \
ra8_err_t err_rc_ = (err); \
if (ra8_err_is_error(err_rc_)) { \
ra8_log_error_val("ERROR_CHECK", "Non-fatal error", (uint32_t)err_rc_); \
} \
} while (0)

Log and continue on non-fatal error.

If err is non-success, log it but do not halt. Use for optional init paths where a failure is tolerated (e.g. an optional sensor not being present).

Parameters
[in]errra8_err_t value to check.

Definition at line 165 of file ra8_check.h.

◆ RA8_RETURN_NULL_ON_ERROR

#define RA8_RETURN_NULL_ON_ERROR ( err,
tag,
message )
Value:
do { \
ra8_err_t err_rc_ = (err); \
if (ra8_err_is_error(err_rc_)) { \
ra8_log_error((tag), (message)); \
ra8_log_error_val((tag), "Error", (uint32_t)err_rc_); \
return nullptr; \
} \
} while (0)

Early return nullptr from a pointer-returning function on error.

Parameters
[in]errra8_err_t value to check.
[in]tagComponent tag for logging.
[in]messageString literal to log on failure.

Definition at line 218 of file ra8_check.h.

◆ RA8_RETURN_ON_ERROR

#define RA8_RETURN_ON_ERROR ( err,
tag,
message )
Value:
do { \
ra8_err_t err_rc_ = (err); \
if (ra8_err_is_error(err_rc_)) { \
ra8_log_error((tag), (message)); \
ra8_log_error_val((tag), "Error", (uint32_t)err_rc_); \
return err_rc_; \
} \
} while (0)

Early return on error, propagating the code upward.

Parameters
[in]errra8_err_t value to check.
[in]tagComponent tag for logging.
[in]messageString literal to log on failure.
Note
Must be used only inside a function whose return type is ra8_err_t. See RA8_RETURN_VOID_ON_ERROR / RA8_RETURN_NULL_ON_ERROR for void and pointer-returning callers.

Definition at line 184 of file ra8_check.h.

Referenced by cam_image_clean_outputs(), demo_checkpoint(), demo_open(), demo_reopen_naive(), demo_restore(), demo_run(), demo_run(), demo_wear_phase(), demo_write_verify(), ez_bind_page(), ez_draw_lens_chrome(), ez_draw_status(), ez_open_views(), ez_render_and_hash(), ez_scene_init(), ez_scene_present(), ez_scene_render(), ez_scene_selftest(), ez_selftest_lens(), ez_selftest_pan(), ez_selftest_stages(), ez_selftest_zoom(), internal_agt_cascade_mstp_enable_both(), internal_apply_instance(), internal_attach_dma_dirs(), internal_bringup(), internal_cache_erase(), internal_cache_read(), internal_cache_read_block(), internal_cache_write(), internal_cache_write_block(), internal_cfg_ok(), internal_checkpoint(), internal_configure_pipes(), internal_configure_pipes(), internal_configure_pipes(), internal_configure_pipes(), internal_configure_pipes(), internal_dcp_in_payload(), internal_dcp_in_zlp(), internal_default_open_queues(), internal_default_open_rings(), internal_demo_mount(), internal_demo_mount(), internal_demo_open(), internal_demo_probe_fat(), internal_demo_probe_foreign(), internal_demo_read_once(), internal_demo_roundtrip(), internal_demo_roundtrip(), internal_demo_run(), internal_demo_run(), internal_demo_run(), internal_devcfg_write_record(), internal_devcfg_xm_write(), internal_dir_load(), internal_do_bus_reset(), internal_do_bus_reset(), internal_do_bus_reset(), internal_do_bus_reset(), internal_do_set_address(), internal_do_set_address(), internal_do_set_address(), internal_do_set_address(), internal_do_set_interface(), internal_do_walk_desc(), internal_do_walk_desc(), internal_do_walk_desc(), internal_emit_strip(), internal_enum_assign_addr(), internal_enum_configure(), internal_enum_ladder(), internal_enum_read_config(), internal_enum_read_dev_desc(), internal_fill_strip(), internal_graphics_confirm_powered(), internal_graphics_confirm_ready(), internal_host_hs_bringup(), internal_i3c_i2c_block_bringup(), internal_init_bind_owner(), internal_issue_cbw(), internal_lin_rx_buf(), internal_lin_tx_buf(), internal_mark_dirty(), internal_mount(), internal_open_finalise(), internal_open_levelx(), internal_open_stage_key_iv_region(), internal_open_validate_init(), internal_phy_read_link(), internal_ra8_io_roundtrip_format_mount(), internal_ra8_io_roundtrip_read_verify(), internal_ra8_io_roundtrip_write_subdir(), internal_ra8_vfs_compress_load_blob(), internal_ra8_vfs_compress_store_blob(), internal_read_at(), internal_read_csw(), internal_read_stream(), internal_release_run(), internal_reset_channel(), internal_run_data_in(), internal_run_data_out(), internal_sd_demo_roundtrip(), internal_sdcard_card_online(), internal_sdcard_identify(), internal_sdcard_publish_and_select(), internal_sdcard_publish_rca(), internal_sdhi_finish_xfer(), internal_sdspi_get_caps(), internal_ssie_power_up(), internal_swap_replay_capture(), internal_swap_run_all(), internal_swap_run_one(), internal_swap_vfs_read_verify(), internal_swap_vfs_write(), internal_validate_and_ungate(), internal_validate_caps(), internal_validate_memory_finalize(), internal_validate_required_ops(), internal_validate_security_cfg(), internal_validate_tamper_channels(), internal_vfs_file_open_resolve(), internal_vfs_open_resolve(), internal_vfs_probe_and_mount(), internal_vfs_rename_split(), internal_webp_check_output(), internal_webp_decode_impl(), internal_write_entry(), priv_cache_store_dir_save(), priv_dcp_push_chunk(), priv_ra8_esp_hosted_rtos_init(), priv_sdmmc_spi_run_init_sequence(), ra8_acmphs_channel_init(), ra8_acmphs_init(), ra8_adc_configure_scan_group(), ra8_adc_init(), ra8_adc_init_configured(), ra8_adc_read_internal_channel(), ra8_adc_self_diagnose(), ra8_adc_set_oversampling(), ra8_agt_start_cascade(), ra8_agt_start_free_run(), ra8_agt_start_pulse_output(), ra8_bkup_init(), ra8_bkup_security_apply(), ra8_bkup_tamper_init(), ra8_cac_init(), ra8_cache_store_close(), ra8_cache_store_evict(), ra8_cache_store_init(), ra8_cache_store_pin(), ra8_cache_store_put(), ra8_canfd_init(), ra8_ceu_init(), ra8_cnecc_exit_standby(), ra8_cnecc_init(), ra8_cnecc_verify(), ra8_crc_init(), ra8_dac_b_exit_stop(), ra8_dac_b_init(), ra8_dac_b_init_configured(), ra8_dmac_start(), ra8_doc_init(), ra8_dotf_exit_stop(), ra8_dotf_init(), ra8_dotf_open(), ra8_dotf_rotate_key(), ra8_drw_init(), ra8_dtc_init(), ra8_elc_init(), ra8_eth_coma_init(), ra8_eth_gptp_init(), ra8_eth_gwca_init(), ra8_eth_init(), ra8_eth_link_status(), ra8_eth_mfwd_init(), ra8_etha_init(), ra8_flash_erase(), ra8_flash_write(), ra8_flash_write_block(), ra8_glcdc_init(), ra8_gpt_init(), ra8_gpt_start_free_run(), ra8_i2c_init(), ra8_i3c_i2c_init(), ra8_i3c_i2c_peripheral_receive(), ra8_i3c_i2c_peripheral_send(), ra8_i3c_init(), ra8_io_blockdev_sdram_init(), ra8_io_fsfmt_init(), ra8_io_fsfmt_register(), ra8_io_roundtrip_mount(), ra8_io_roundtrip_read_verify(), ra8_io_roundtrip_root_file(), ra8_io_roundtrip_subdir_file(), ra8_io_vfs_file_open(), ra8_io_vfs_listdir(), ra8_io_vfs_mkdir(), ra8_io_vfs_mount(), ra8_io_vfs_open(), ra8_io_vfs_rmdir(), ra8_io_vfs_stat(), ra8_io_vfs_unlink(), ra8_lpm_enter_sleep(), ra8_lpm_graphics_power_on(), ra8_lvd_attach_channel_handler(), ra8_lvd_channel_deinit(), ra8_lvd_channel_init(), ra8_lvd_clear_status(), ra8_lvd_configure_for_standby(), ra8_lvd_disable_cmpe(), ra8_lvd_disable_elc_event(), ra8_lvd_disable_irq(), ra8_lvd_disable_reset(), ra8_lvd_enable_cmpe(), ra8_lvd_enable_elc_event(), ra8_lvd_enable_irq(), ra8_lvd_enable_reset(), ra8_lvd_get_status(), ra8_lvd_set_filter(), ra8_lvd_set_hysteresis_mode(), ra8_lvd_set_irq_edge(), ra8_lvd_set_irq_kind(), ra8_lvd_set_negate_mode(), ra8_lvd_set_threshold(), ra8_mipi_csi_init(), ra8_mipi_csi_set_ecc_mode(), ra8_mipi_csi_set_epd(), ra8_mipi_csi_set_frame_error_mode(), ra8_mipi_csi_set_lrte(), ra8_mipi_csi_start_receive(), ra8_mipi_dsi_init(), ra8_mipi_dsi_send_command(), ra8_mipi_phy_init(), ra8_mipi_phy_recover_from_error(), ra8_mipi_phy_set_lane_speed(), ra8_mipi_phy_validate_pll_band(), ra8_pdg_get_delay(), ra8_pdg_init(), ra8_pdg_set_delay(), ra8_pdm_init(), ra8_pdm_stop(), ra8_poeg_init(), ra8_rmac_init(), ra8_rsip_exit_stop(), ra8_rsip_init(), ra8_rsip_sha256(), ra8_sci_lin_check_response(), ra8_sci_lin_init(), ra8_sci_lin_read_response(), ra8_sci_lin_send_header(), ra8_sci_lin_send_response(), ra8_sci_spi_init(), ra8_sdcard_init(), ra8_sdhi_init(), ra8_sdhi_read_block(), ra8_sdhi_set_bus_width_4bit(), ra8_sdhi_set_bus_width_8bit(), ra8_sdhi_write_block(), ra8_sdmmc_spi_init(), ra8_sdmmc_spi_read_block(), ra8_sdmmc_spi_read_blocks(), ra8_sdmmc_spi_write_block(), ra8_sdmmc_spi_write_blocks(), ra8_spi_b_target_init(), ra8_spi_init(), ra8_sram_init(), ra8_sram_set_mode(), ra8_ssie_attach_dma(), ra8_ssie_init(), ra8_ssie_start(), ra8_ssie_start_recovery(), ra8_threadx_systick_retune(), ra8_touch_open(), ra8_tsn_init(), ra8_tsn_read_die_temp_milli_c(), ra8_ulpt_init(), ra8_usb_device_init(), ra8_usb_hmsc_inquiry(), ra8_usb_hmsc_read10(), ra8_usb_hmsc_read_capacity(), ra8_usb_hmsc_write10(), ra8_usb_host_init(), ra8_usb_phid_send_report(), ra8_usb_queue_in(), ra8_usb_queue_out(), ra8_vfs_compress_read(), ra8_vfs_compress_write(), ra8_vin_init(), ra8_xspi_init(), sdhi_card_block_roundtrip(), sdhi_card_check_capacity(), sdhi_card_roundtrip(), sdhi_demo_mount_via_io(), sdhi_demo_read_and_verify(), sdhi_demo_roundtrip(), sdhi_demo_write_payload(), ux_dcd_ra8_usb_initialize(), ux_hcd_ra8_usb_initialize(), zoom_view_open(), and zoom_view_render().

◆ RA8_RETURN_VOID_ON_ERROR

#define RA8_RETURN_VOID_ON_ERROR ( err,
tag,
message )
Value:
do { \
ra8_err_t err_rc_ = (err); \
if (ra8_err_is_error(err_rc_)) { \
ra8_log_error((tag), (message)); \
ra8_log_error_val((tag), "Error", (uint32_t)err_rc_); \
return; \
} \
} while (0)

Early return from a void function on error.

Parameters
[in]errra8_err_t value to check.
[in]tagComponent tag for logging.
[in]messageString literal to log on failure.

Definition at line 201 of file ra8_check.h.

◆ RA8_STATIC_ASSERT

#define RA8_STATIC_ASSERT ( cond,
msg )
Value:
static_assert((cond), msg)

Compile-time assertion wrapper.

Uses C23 static_assert. Provided so code reads consistently with the runtime RA8_ASSERT macro and so the pre-commit hook can enforce the C23 spelling instead of the older C11 underscore form.

Parameters
[in]condC-time constant boolean expression.
[in]msgString literal describing the invariant.
RA8_STATIC_ASSERT(sizeof(ra8_err_t) == 2, "ra8_err_t must be uint16_t");
#define RA8_STATIC_ASSERT(cond, msg)
Compile-time assertion wrapper.
Definition ra8_check.h:99

Definition at line 99 of file ra8_check.h.

◆ RA8_VALIDATE_INIT

#define RA8_VALIDATE_INIT ( initialized,
tag,
message )
Value:
do { \
if (!(initialized)) { \
ra8_log_error((tag), (message)); \
} \
} while (0)
@ k_ra8_err_not_initialized
Module not initialized – _init() not yet called successfully.
Definition ra8_err.h:235

Precondition: module must be initialized.

Parameters
[in]initializedBoolean expression (true if init complete).
[in]tagComponent tag for logging.
[in]messageString literal identifying the module.
Note
Returns k_ra8_err_not_initialized on failure.

Definition at line 334 of file ra8_check.h.

Referenced by internal_checkpoint(), internal_lsm6dso_fifo_check_args(), internal_mark_dirty(), internal_put_check(), internal_release_run(), internal_swap_replay_capture(), ra8_cache_store_close(), ra8_cache_store_evict(), ra8_cache_store_get(), ra8_cache_store_pin(), ra8_cache_store_sync(), ra8_eth_gptp_deinit(), ra8_eth_gptp_enter_stop(), ra8_eth_gptp_exit_stop(), ra8_eth_gptp_get_avtp_ns(), ra8_eth_gptp_get_increment(), ra8_eth_gptp_get_time(), ra8_eth_gptp_ip_version(), ra8_eth_gptp_set_increment(), ra8_eth_gptp_set_offset(), ra8_eth_gptp_timer_disable(), ra8_eth_gptp_timer_enable(), ra8_eth_gptp_timer_is_enabled(), ra8_flash_arc_increment(), ra8_flash_arc_read(), ra8_flash_erase(), ra8_flash_reset(), ra8_flash_write(), ra8_flash_zeroize_huk(), ra8_lsm6dso_read_accel(), ra8_lsm6dso_read_gyro(), ra8_lsm6dso_read_temp(), ra8_lsm6dso_set_accel_range(), ra8_lsm6dso_set_gyro_range(), ra8_lsm6dso_set_odr(), ra8_lsm6dso_who_am_i(), ra8_power_profile_get_stats(), ra8_power_profile_mark_enter(), ra8_power_profile_mark_exit(), and ra8_power_profile_reset_stats().

◆ RA8_VALIDATE_PTR

#define RA8_VALIDATE_PTR ( ptr,
tag,
message )
Value:
RA8_CHECK_NULL_PTR(ptr, tag, message)
#define RA8_CHECK_NULL_PTR(ptr, tag, message)
Reject nullptr pointer, returning k_ra8_err_null_ptr.
Definition ra8_check.h:243

Alias for RA8_CHECK_NULL_PTR in precondition style.

Definition at line 323 of file ra8_check.h.