|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Inter-Processor Communication (IPC) HAL driver – transfer API. More...
Go to the source code of this file.
Functions | |
| ra8_err_t | ra8_ipc_init (const ra8_ipc_config_t *cfg) |
| Initialise one IPC channel. | |
| ra8_err_t | ra8_ipc_deinit (uint8_t channel) |
| Tear down one IPC channel. | |
| ra8_err_t | ra8_ipc_reset_fifo (uint8_t channel) |
| Issue a CLR.RST on one channel without altering callbacks. | |
| ra8_err_t | ra8_ipc_set_event_mask (uint8_t channel, uint32_t mask) |
| Update the event-mask filter for an already-initialized channel. | |
| ra8_err_t | ra8_ipc_channel_for_send (ra8_ipc_core_id_t core, uint8_t pair, uint8_t *out_channel) |
| Pick the channel id this core writes to. | |
| ra8_err_t | ra8_ipc_channel_for_recv (ra8_ipc_core_id_t core, uint8_t pair, uint8_t *out_channel) |
| Pick the channel id this core reads from. | |
| ra8_err_t | ra8_ipc_send_event (uint8_t channel, ra8_ipc_irq_event_id_t event_id) |
| Generate a maskable IRQ event on the peer core. | |
| ra8_err_t | ra8_ipc_clear_event (uint8_t channel, ra8_ipc_irq_event_id_t event_id) |
| Clear one received IRQ event line on the local core. | |
| ra8_err_t | ra8_ipc_send_message (uint8_t channel, uint32_t message) |
| Push one 32-bit word into the channel TX FIFO. | |
| ra8_err_t | ra8_ipc_send_message_retry (uint8_t channel, uint32_t message, uint16_t max_retries) |
| Bounded-retry variant of ra8_ipc_send_message. | |
| ra8_err_t | ra8_ipc_send_burst (uint8_t channel, const uint32_t *data, uint32_t count, uint32_t *out_written) |
| Push up to count words into the channel TX FIFO. | |
| ra8_err_t | ra8_ipc_recv_message (uint8_t channel, uint32_t *out_msg) |
| Pop one 32-bit word from the channel RX FIFO. | |
| ra8_err_t | ra8_ipc_recv_message_retry (uint8_t channel, uint32_t *out_msg, uint16_t max_retries) |
| Bounded-retry variant of ra8_ipc_recv_message. | |
| ra8_err_t | ra8_ipc_recv_burst (uint8_t channel, uint32_t *out_data, uint32_t capacity, uint32_t *out_read) |
| Drain up to capacity words from the channel RX FIFO. | |
| ra8_err_t | ra8_ipc_get_status (uint8_t channel, uint32_t *out_sta) |
| Read the raw channel status register. | |
| ra8_err_t | ra8_ipc_clear_status (uint8_t channel, uint32_t mask) |
| Clear selected status bits on a channel. | |
| ra8_err_t | ra8_ipc_clear_errors (uint8_t channel) |
| Clear RERR + FERR on the channel. | |
| ra8_err_t | ra8_ipc_can_send (uint8_t channel, bool *out_can_send) |
| Predicate: would ra8_ipc_send_message succeed right now? | |
| ra8_err_t | ra8_ipc_has_data (uint8_t channel, bool *out_has_data) |
| Predicate: would ra8_ipc_recv_message succeed right now? | |
| ra8_err_t | ra8_ipc_get_attribution (uint8_t channel, ra8_ipc_attr_t *out_attr) |
| Read the security / privilege attribution for one channel. | |
| ra8_err_t | ra8_ipc_get_nmi_attribution (uint8_t unit, ra8_ipc_attr_t *out_attr) |
| Read the attribution for one NMI unit. | |
| ra8_err_t | ra8_ipc_get_sem_attribution (ra8_ipc_sem_attr_group_t group, ra8_ipc_attr_t *out_attr) |
| Read the attribution for an IPCSEM group. | |
| ra8_err_t | ra8_ipc_can_access (uint8_t channel, ra8_ipc_attr_t const *required, bool *out_can_access) |
| Predicate: does this core's attribution allow writing the channel? | |
Inter-Processor Communication (IPC) HAL driver – transfer API.
Lifecycle, channel-pair convention helpers, send / receive (single and burst), status / error inspection, and security / privilege attribution prototypes for the RA8D2 IPC mailbox driver. Split out of ra8_ipc.h so each header stays within the repository file-size budget; ra8_ipc.h re-includes this header so existing consumers are unaffected.
Definition in file ra8_ipc_xfer.h.
|
nodiscard |
Predicate: does this core's attribution allow writing the channel?
Reads IPCSAR / IPCPAR for the channel and compares against the core's expected security / privilege state. The driver does not know the running core's state directly – the caller passes a desired required attribution and the function returns true if the channel matches.
| [in] | channel | Channel id 0..3. |
| [in] | required | Desired attribution. |
| [out] | out_can_access | Receives true on a match. |
| k_ra8_ok | Predicate evaluated. |
| k_ra8_err_invalid_arg | channel >= 4. |
| k_ra8_err_null_ptr | out_can_access was NULL. |
Definition at line 689 of file ra8_ipc.c.
References k_ra8_ok, ra8_ipc_attr_t::privileged, RA8_CHECK_NULL_PTR, ra8_ipc_get_attribution(), s_tag, and ra8_ipc_attr_t::secure.
|
nodiscard |
Predicate: would ra8_ipc_send_message succeed right now?
| [in] | channel | Channel id 0..3. |
| [out] | out_can_send | Receives true if FIFO has at least one free slot. |
| k_ra8_ok | Predicate evaluated. |
| k_ra8_err_invalid_arg | channel >= 4. |
| k_ra8_err_null_ptr | out_can_send was NULL. |
Definition at line 608 of file ra8_ipc.c.
References internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_ipc_sta_mask_full, k_ra8_ok, RA8_CHECK_NULL_PTR, s_tag, and r_ipc_channel_regs_t::STA.
|
nodiscard |
Pick the channel id this core reads from.
Mirror of ra8_ipc_channel_for_send: CPU0 receives through IPC0 (channels 0/1); CPU1 receives through IPC1 (channels 2/3).
| [in] | core | Local CPU id. |
| [in] | pair | Pair within the unit (0 -> *_0, 1 -> *_1). |
| [out] | out_channel | Receives the resolved channel id 0..3. |
| k_ra8_ok | Resolved successfully. |
| k_ra8_err_null_ptr | out_channel was NULL. |
| k_ra8_err_invalid_arg | core or pair out of range. |
Definition at line 331 of file ra8_ipc.c.
References k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ipc_core_cpu0, k_ra8_ipc_core_cpu1, k_ra8_ok, RA8_CHECK_NULL_PTR, and s_tag.
|
nodiscard |
Pick the channel id this core writes to.
Encodes the channel-pair convention from HUM Ch 3.1 p 204: CPU0 (M85) sends through IPC1 (channels 2/3); CPU1 (M33) sends through IPC0 (channels 0/1). The pair argument selects between the two channels owned by each unit.
| [in] | core | Local CPU id. |
| [in] | pair | Channel pair within the unit (0 -> *_0, 1 -> *_1). |
| [out] | out_channel | Receives the resolved channel id 0..3. |
| k_ra8_ok | Resolved successfully. |
| k_ra8_err_null_ptr | out_channel was NULL. |
| k_ra8_err_invalid_arg | core or pair out of range. |
Definition at line 311 of file ra8_ipc.c.
References k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ipc_core_cpu0, k_ra8_ipc_core_cpu1, k_ra8_ok, RA8_CHECK_NULL_PTR, and s_tag.
|
nodiscard |
Clear RERR + FERR on the channel.
| [in] | channel | Channel id 0..3. |
| k_ra8_ok | Errors cleared. |
| k_ra8_err_invalid_arg | channel >= 4. |
Definition at line 596 of file ra8_ipc.c.
References r_ipc_channel_regs_t::CLR, internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_ipc_clr_mask_fclr, k_ra8_ipc_clr_mask_rclr, and k_ra8_ok.
|
nodiscard |
Clear one received IRQ event line on the local core.
| [in] | channel | Channel id 0..3 (call from the receive side). |
| [in] | event_id | IRQ event line 0..7 to acknowledge. |
| k_ra8_ok | Bit cleared. |
| k_ra8_err_invalid_arg | channel >= 4 or event_id > 7. |
Definition at line 376 of file ra8_ipc.c.
References r_ipc_channel_regs_t::CLR, internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ipc_irq_event_count, k_ra8_ok, RA8_CHECK_NULL_PTR, and s_tag.
|
nodiscard |
Clear selected status bits on a channel.
| [in] | channel | Channel id 0..3. |
| [in] | mask | Bitmask of ra8_ipc_event_t flags to clear. |
| k_ra8_ok | Mask written. |
| k_ra8_err_invalid_arg | channel >= 4. |
Definition at line 580 of file ra8_ipc.c.
References r_ipc_channel_regs_t::CLR, internal_ra8_ipc_event_to_clr(), internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ok, RA8_CHECK_NULL_PTR, and s_tag.
|
nodiscard |
Tear down one IPC channel.
Clears the channel STA register (cancels every IRQn / RDY / FULL / RERR / FERR bit) and resets the FIFO via CLR.RST so the next ra8_ipc_init starts from a known state. Also drops every per-event line callback registered via ra8_ipc_attach_event_handler.
| [in] | channel | Channel id 0..3. |
| k_ra8_ok | Channel cleared. |
| k_ra8_err_invalid_arg | channel >= 4. |
Definition at line 261 of file ra8_ipc.c.
References ra8_ipc_channel_state_t::active, r_ipc_channel_regs_t::CLR, ra8_ipc_irq_slot_t::ctx, ra8_ipc_channel_state_t::event_mask, ra8_ipc_irq_slot_t::fn, internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ipc_clr_mask_fclr, k_ra8_ipc_clr_mask_irq_all, k_ra8_ipc_clr_mask_rclr, k_ra8_ipc_clr_mask_rst, k_ra8_ipc_irq_event_count, k_ra8_ok, ra8_ipc_channel_state_t::per_event, RA8_CHECK_NULL_PTR, s_ipc_channels, and s_tag.
|
nodiscard |
Read the security / privilege attribution for one channel.
Decodes the matching SAIPCIRn / PAIPCIRn bits in IPCSAR / IPCPAR (HUM Ch 3.2.1 p 207, Ch 3.2.2 p 208). Useful for the secondary core to confirm it has access to the channel before issuing a register write that the SAU / IDAU would silently drop.
| [in] | channel | Channel id 0..3. |
| [out] | out_attr | Receives secure and privileged flags. |
| k_ra8_ok | Attribution read. |
| k_ra8_err_invalid_arg | channel >= 4. |
| k_ra8_err_null_ptr | out_attr was NULL. |
Definition at line 637 of file ra8_ipc.c.
References k_ra8_err_invalid_arg, k_ra8_ipc_attr_shift_ir_base, k_ra8_ipc_channel_count, k_ra8_ok, ra8_ipc_attr_t::privileged, RA8_CHECK_NULL_PTR, ra8_ipc_ipcpar(), ra8_ipc_ipcsar(), s_tag, and ra8_ipc_attr_t::secure.
Referenced by ra8_ipc_can_access().
|
nodiscard |
Read the attribution for one NMI unit.
IPCSAR.SAIPCNMI[0..1] and IPCPAR.PAIPCNMI[0..1] live at bits 8/9 of their respective registers (HUM Ch 3.2.1 p 205-207). Provided so the NMI-injection code can pre-flight before issuing IPCnNMISET writes.
| [in] | unit | NMI unit id 0..1 (k_ra8_ipc_unit_ipc0 / ipc1). |
| [out] | out_attr | Receives secure / privileged flags. |
| k_ra8_ok | Attribution read. |
| k_ra8_err_invalid_arg | unit >= 2. |
| k_ra8_err_null_ptr | out_attr was NULL. |
Definition at line 656 of file ra8_ipc.c.
References k_ra8_err_invalid_arg, k_ra8_ipc_attr_shift_nmi_base, k_ra8_ipc_nmi_unit_count, k_ra8_ok, ra8_ipc_attr_t::privileged, RA8_CHECK_NULL_PTR, ra8_ipc_ipcpar(), ra8_ipc_ipcsar(), s_tag, and ra8_ipc_attr_t::secure.
|
nodiscard |
Read the attribution for an IPCSEM group.
Wraps SAIPCSEM[0..1] / PAIPCSEM[0..1]. Group 0 covers IPCSEM0..7; group 1 covers IPCSEM8..15 (HUM Ch 3.3.1 p 228).
| [in] | group | Attribution group. |
| [out] | out_attr | Receives secure / privileged flags. |
| k_ra8_ok | Attribution read. |
| k_ra8_err_invalid_arg | group not in {0, 1}. |
| k_ra8_err_null_ptr | out_attr was NULL. |
Definition at line 672 of file ra8_ipc.c.
References k_ra8_err_invalid_arg, k_ra8_ipc_sem_group_high, k_ra8_ok, ra8_ipc_attr_t::privileged, RA8_CHECK_NULL_PTR, ra8_ipc_ipcpar(), ra8_ipc_ipcsar(), s_tag, and ra8_ipc_attr_t::secure.
|
nodiscard |
Read the raw channel status register.
| [in] | channel | Channel id 0..3. |
| [out] | out_sta | Receives STA value (full 32-bit raw register). |
| k_ra8_ok | Status read. |
| k_ra8_err_invalid_arg | channel >= 4. |
| k_ra8_err_null_ptr | out_sta was NULL. |
Definition at line 566 of file ra8_ipc.c.
References internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ok, RA8_CHECK_NULL_PTR, s_tag, and r_ipc_channel_regs_t::STA.
|
nodiscard |
Predicate: would ra8_ipc_recv_message succeed right now?
| [in] | channel | Channel id 0..3. |
| [out] | out_has_data | Receives true if at least one word is queued. |
| k_ra8_ok | Predicate evaluated. |
| k_ra8_err_invalid_arg | channel >= 4. |
| k_ra8_err_null_ptr | out_has_data was NULL. |
Definition at line 620 of file ra8_ipc.c.
References internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_ipc_sta_mask_rdy, k_ra8_ok, RA8_CHECK_NULL_PTR, s_tag, and r_ipc_channel_regs_t::STA.
|
nodiscard |
Initialise one IPC channel.
Issues an optional FIFO reset and an optional status clear, then stores the per-channel event mask the dispatch path uses to filter which status bits trigger the callback.
The peripheral itself does not have a dedicated MSTPCR bit on the RA8D2 – IPC sits on the always-on CPU bus and is reachable as soon as the secondary core comes out of reset, so no ra8_mstp_enable call is required.
| [in] | cfg | Non-NULL configuration descriptor. |
| k_ra8_ok | Channel ready for use. |
| k_ra8_err_null_ptr | cfg was NULL. |
| k_ra8_err_invalid_arg | cfg->channel >= 4. |
Definition at line 228 of file ra8_ipc.c.
References ra8_ipc_channel_state_t::active, ra8_ipc_config_t::channel, ra8_ipc_config_t::clear_status, r_ipc_channel_regs_t::CLR, ra8_ipc_irq_slot_t::ctx, ra8_ipc_channel_state_t::event_mask, ra8_ipc_config_t::event_mask, ra8_ipc_irq_slot_t::fn, internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ipc_clr_mask_fclr, k_ra8_ipc_clr_mask_irq_all, k_ra8_ipc_clr_mask_rclr, k_ra8_ipc_clr_mask_rst, k_ra8_ipc_irq_event_count, k_ra8_ok, ra8_ipc_channel_state_t::per_event, RA8_CHECK_NULL_PTR, ra8_log_info_val, ra8_ipc_config_t::reset_fifo, s_ipc_channels, and s_tag.
Referenced by arm_ipc_wake().
|
nodiscard |
Drain up to capacity words from the channel RX FIFO.
Pops one word per RDY-set FIFO stage; stops as soon as RDY drops or the buffer fills. out_read returns how many words landed in out_data.
| [in] | channel | Channel id 0..3. |
| [out] | out_data | Destination array, at least capacity words. |
| [in] | capacity | Maximum number of words to read. |
| [out] | out_read | Receives count actually popped (may be 0). |
| k_ra8_ok | Drain succeeded (may have read 0). |
| k_ra8_err_invalid_arg | channel >= 4 or capacity == 0. |
| k_ra8_err_null_ptr | out_data or out_read was NULL. |
Definition at line 532 of file ra8_ipc.c.
References internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ipc_sta_mask_rdy, k_ra8_ok, RA8_CHECK_NULL_PTR, r_ipc_channel_regs_t::RXD, s_tag, and r_ipc_channel_regs_t::STA.
|
nodiscard |
Pop one 32-bit word from the channel RX FIFO.
Reads the channel RXD register. If RDY was 0 at read time the read returns zero and STA.RERR is set (HUM Ch 3.2.13 p 216). The driver returns k_ra8_err_no_data in that case so the caller can retry once a peer has written.
| [in] | channel | Channel id 0..3. |
| [out] | out_msg | Receives the next FIFO word; left untouched on error. |
| k_ra8_ok | Word read. |
| k_ra8_err_invalid_arg | channel >= 4. |
| k_ra8_err_null_ptr | out_msg was NULL. |
| k_ra8_err_no_data | FIFO empty at read time. |
Definition at line 483 of file ra8_ipc.c.
References internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_err_no_data, k_ra8_ipc_channel_count, k_ra8_ipc_sta_mask_rdy, k_ra8_ok, RA8_CHECK_NULL_PTR, r_ipc_channel_regs_t::RXD, s_tag, and r_ipc_channel_regs_t::STA.
|
nodiscard |
Bounded-retry variant of ra8_ipc_recv_message.
Polls STA.RDY up to max_retries times, clearing RERR at each iteration. Returns k_ra8_err_hw_timeout if no word arrived in the budget.
| [in] | channel | Channel id 0..3. |
| [out] | out_msg | Receives the popped word on success. |
| [in] | max_retries | Iteration cap (<= k_ra8_ipc_retry_max). |
| k_ra8_ok | Word read. |
| k_ra8_err_invalid_arg | Bad channel or NULL output pointer. |
| k_ra8_err_hw_timeout | No word arrived in the retry budget. |
Definition at line 503 of file ra8_ipc.c.
References r_ipc_channel_regs_t::CLR, internal_ra8_ipc_get_regs(), k_ra8_err_hw_timeout, k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ipc_clr_mask_rclr, k_ra8_ipc_retry_max, k_ra8_ipc_sta_mask_rdy, k_ra8_ok, RA8_CHECK_NULL_PTR, r_ipc_channel_regs_t::RXD, s_tag, and r_ipc_channel_regs_t::STA.
|
nodiscard |
Issue a CLR.RST on one channel without altering callbacks.
Convenience wrapper that drops the FIFO contents (HUM Ch 3.2.14 "RST bit" p 217). Useful for application-level resync without having to tear down callbacks via ra8_ipc_deinit.
| [in] | channel | Channel id 0..3. |
| k_ra8_ok | FIFO reset issued. |
| k_ra8_err_invalid_arg | channel >= 4. |
Definition at line 284 of file ra8_ipc.c.
References r_ipc_channel_regs_t::CLR, internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_ipc_clr_mask_rst, and k_ra8_ok.
|
nodiscard |
Push up to count words into the channel TX FIFO.
Writes one word per non-full FIFO stage; honours the 4-stage depth documented in HUM Ch 3.1 p 204. Stops as soon as STA.FULL is set – does not spin or retry. out_written returns the number of words actually pushed; the caller is expected to back-pressure on the remainder.
| [in] | channel | Channel id 0..3. |
| [in] | data | Source array, count words long. |
| [in] | count | Number of words to attempt to send. |
| [out] | out_written | Receives count actually written (may be 0). |
| k_ra8_ok | At least one word written, or zero written because FIFO was full. |
| k_ra8_err_invalid_arg | channel >= 4 or count == 0. |
| k_ra8_err_null_ptr | data or out_written was NULL. |
Definition at line 450 of file ra8_ipc.c.
References internal_ra8_ipc_get_regs(), k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ipc_sta_mask_full, k_ra8_ok, RA8_CHECK_NULL_PTR, ra8_ipc_barrier(), s_tag, r_ipc_channel_regs_t::STA, and r_ipc_channel_regs_t::TXD.
|
nodiscard |
Generate a maskable IRQ event on the peer core.
| [in] | channel | Channel id 0..3 (call from the send side). |
| [in] | event_id | IRQ event line 0..7. |
| k_ra8_ok | Event issued. |
| k_ra8_err_invalid_arg | channel >= 4 or event_id > 7. |
Definition at line 355 of file ra8_ipc.c.
References internal_ra8_ipc_get_regs(), r_ipc_channel_regs_t::ISET, k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ipc_irq_event_count, k_ra8_ok, RA8_CHECK_NULL_PTR, ra8_ipc_barrier(), and s_tag.
Referenced by notify_m85(), and ra8_ipc_ring_produce().
|
nodiscard |
Push one 32-bit word into the channel TX FIFO.
Writes message to the channel TXD register. The peripheral sets STA.RDY on the receiving side. If the FIFO was full at write time the write is silently dropped and STA.FERR is set (HUM Ch 3.2.12 p 215). The driver returns k_ra8_err_busy in that case so the caller can either retry or escalate.
| [in] | channel | Channel id 0..3. |
| [in] | message | 32-bit payload to enqueue. |
| k_ra8_ok | Word accepted. |
| k_ra8_err_invalid_arg | channel >= 4. |
| k_ra8_err_busy | FIFO full at write time. |
Definition at line 393 of file ra8_ipc.c.
References internal_ra8_ipc_get_regs(), k_ra8_err_busy, k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ipc_sta_mask_full, k_ra8_ok, RA8_CHECK_NULL_PTR, ra8_ipc_barrier(), s_tag, r_ipc_channel_regs_t::STA, and r_ipc_channel_regs_t::TXD.
|
nodiscard |
Bounded-retry variant of ra8_ipc_send_message.
Polls STA.FULL up to max_retries times, clearing FERR at each iteration so a previous overflow does not stick. Returns k_ra8_err_hw_timeout if the FIFO is still full after the loop.
| [in] | channel | Channel id 0..3. |
| [in] | message | 32-bit payload to enqueue. |
| [in] | max_retries | Iteration cap (clamped to k_ra8_ipc_retry_max). |
| k_ra8_ok | Word accepted. |
| k_ra8_err_invalid_arg | channel >= 4. |
| k_ra8_err_hw_timeout | FIFO full for the full retry budget. |
Definition at line 418 of file ra8_ipc.c.
References r_ipc_channel_regs_t::CLR, internal_ra8_ipc_get_regs(), k_ra8_err_hw_timeout, k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ipc_clr_mask_fclr, k_ra8_ipc_retry_max, k_ra8_ipc_sta_mask_full, k_ra8_ok, RA8_CHECK_NULL_PTR, ra8_ipc_barrier(), s_tag, r_ipc_channel_regs_t::STA, and r_ipc_channel_regs_t::TXD.
|
nodiscard |
Update the event-mask filter for an already-initialized channel.
| [in] | channel | Channel id 0..3. |
| [in] | mask | New ra8_ipc_event_t bitmask. |
| k_ra8_ok | Mask stored. |
| k_ra8_err_invalid_arg | channel >= 4. |
Definition at line 296 of file ra8_ipc.c.
References k_ra8_err_invalid_arg, k_ra8_ipc_channel_count, k_ra8_ok, and s_ipc_channels.