# Copyright (c) 2022 Nordic Semiconductor (ASA) # SPDX-License-Identifier: Apache-2.0 config IPC_SERVICE_ICMSG_SHMEM_ACCESS_SYNC bool "Synchronize access to shared memory" default y help Provide synchronization access to shared memory at a library level. This option is enabled by default to allow to use sending API from multiple contexts. Mutex is used to guard access to the memory. This option can be safely disabled if an application ensures data are sent from single context. config IPC_SERVICE_ICMSG_SHMEM_ACCESS_TO_MS int "Mutex lock timeout in milliseconds" depends on IPC_SERVICE_ICMSG_SHMEM_ACCESS_SYNC range 1 5 default 1 help Maximum time to wait, in milliseconds, for access to send data with backends basing on icmsg library. This time should be relatively low. config IPC_SERVICE_ICMSG_BOND_NOTIFY_REPEAT_TO_MS int "Bond notification timeout in miliseconds" range 1 100 default 1 help Time to wait for remote bonding notification before the notification is repeated. config IPC_SERVICE_BACKEND_ICMSG_WQ_ENABLE bool "Use dedicated workqueue" default y help Enable dedicated workqueue thread for the ICMsg backend. Disabling this configuration will cause the ICMsg backend to process incoming data through the system workqueue context, and therefore reduces the RAM footprint of the backend. Disabling this config may result in deadlocks in certain usage scenarios, such as when synchronous IPC is executed from the system workqueue context. The callbacks coming from the backend are executed from the workqueue context. When the option is disabled, the user must obey the restrictions imposed by the system workqueue, such as never performing blocking operations from within the callback. if IPC_SERVICE_BACKEND_ICMSG_WQ_ENABLE config IPC_SERVICE_BACKEND_ICMSG_WQ_STACK_SIZE int "Size of RX work queue stack" default 1024 help Size of stack used by work queue RX thread. This work queue is created to prevent notifying service users about received data from the system work queue. The queue is shared among instances. config IPC_SERVICE_BACKEND_ICMSG_WQ_PRIORITY int "Priority of RX work queue thread" default -1 range -256 -1 help Priority of the ICMSG RX work queue thread. The ICMSG library in its simplicity requires the workqueue to execute at a cooperative priority. endif # The Icmsg library in its simplicity requires the system workqueue to execute # at a cooperative priority. config SYSTEM_WORKQUEUE_PRIORITY range -256 -1 if !IPC_SERVICE_BACKEND_ICMSG_WQ_ENABLE config PBUF bool "Packed buffer support library" help The packet buffer implements lightweight unidirectional packet buffer with read/write semantics on top of a memory region shared by the reader and writer. It optionally embeds cache and memory barrier management to ensure correct data access.