menu "IPC (Inter-Processor Call)"

    config ESP_IPC_TASK_STACK_SIZE
        int "Inter-Processor Call (IPC) task stack size"
        range 512 65536 if !APPTRACE_ENABLE
        range 2048 65536 if APPTRACE_ENABLE
        default 2048 if APPTRACE_ENABLE
        default 1024
        help
            Configure the IPC tasks stack size. One IPC task runs on each core
            (in dual core mode), and allows for cross-core function calls.

            See IPC documentation for more details.

            The default stack size should be enough for most common use cases.
            It can be shrunk if you are sure that you do not use any custom
            IPC functionality.

    config ESP_IPC_USES_CALLERS_PRIORITY
        bool "IPC runs at caller's priority"
        default y
        depends on !FREERTOS_UNICORE
        help
            If this option is not enabled then the IPC task will keep behavior
            same as prior to that of ESP-IDF v4.0, and hence IPC task will run
            at (configMAX_PRIORITIES - 1) priority.

    config ESP_IPC_ISR_ENABLE
        bool
        default y if !FREERTOS_UNICORE
        help
            This feature servers a similar purpose to the IPC except that the callback function is run
            in the context of a level 4 interrupt (i.e., high priority/level interrupt). The IPC ISR
            feature is intended for low latency execution of simple functions written in assembly on
            another CPU. Due to being run in higher level interrupt context, the assembly functions
            should be written in a particular way (see esp_test_ipc_isr_asm() and the "High-Level Interrupts"
            chapter in hlinterrupts.rst for more details).

endmenu # "IPC (Inter-Processor Call)
