1 /*
2  * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #pragma once
8 
9 #include "sdkconfig.h"
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 #ifdef CONFIG_ESP_IPC_ISR_ENABLE
16 
17 /**
18  * @brief Initialize the IPC ISR feature, must be called for each CPU
19  *
20  * @note This function is called from ipc_task().
21  *
22  * This function initializes the IPC ISR feature and must be called before any other esp_ipc_isr...() functions.
23  * The IPC ISR feature allows for callbacks (written in assembly) to be run on a particular CPU in the context of a
24  * High Priority Interrupt.
25  *
26  * - This function will register a High Priority Interrupt for a CPU where it is called. The priority of the interrupts is dependent on
27  *   the CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL option.
28  * - Callbacks written in assembly can then run in context of the registered High Priority Interrupts
29  * - Callbacks can be executed by calling esp_ipc_isr_asm_call() or esp_ipc_isr_asm_call_blocking()
30  */
31 void esp_ipc_isr_init(void);
32 
33 #endif // CONFIG_ESP_IPC_ISR_ENABLE
34 
35 #ifdef __cplusplus
36 }
37 #endif
38