# Copyright (c) 2022 Nordic Semiconductor (ASA)
# SPDX-License-Identifier: Apache-2.0

config IPC_SERVICE_ICMSG_CB_BUF_SIZE
	int "Size of callback buffer size"
	range 1 65535
	default 255
	help
	  Size of callback buffer used for processing received data in work
	  queue thread. If you are sure that your application never sends data
	  data bigger than some size, you can safely change this option to
	  reduce RAM consumption in your application.

config IPC_SERVICE_ICMSG_NOCOPY_RX
	bool
	depends on IPC_SERVICE_ICMSG
	help
	  Enable nocopy feature for receiving path of the icmsg library that
	  might be used by backends based on icmsg.

# The Icmsg library in its simplicity requires the system workqueue to execute
# at a cooperative priority.
config SYSTEM_WORKQUEUE_PRIORITY
	range -256 -1

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.
