blob: 8f742b8bd99c08940f169ef273edf1c5adc912dc [file] [log] [blame]
# Copyright (c) 2022 Rodrigo Peixoto <rodrigopex@gmail.com>
# SPDX-License-Identifier: Apache-2.0
menuconfig ZBUS
bool "Zbus support"
depends on MULTITHREADING
help
Enables support for Zephyr message bus.
if ZBUS
config ZBUS_CHANNELS_SYS_INIT_PRIORITY
default 5
int "The priority used during the SYS_INIT procedure."
config ZBUS_CHANNEL_NAME
bool "Channel name field"
config ZBUS_OBSERVER_NAME
bool "Observer name field"
config ZBUS_CHANNEL_PUBLISH_STATS
bool "Channel publishing statistics (Timestamp and count)"
config ZBUS_MSG_SUBSCRIBER
select NET_BUF
bool "Message subscribers will receive all messages in sequence."
if ZBUS_MSG_SUBSCRIBER
choice ZBUS_MSG_SUBSCRIBER_BUF_ALLOC
prompt "ZBus msg_subscribers buffer allocation"
default ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC
config ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC
bool "Use heap to allocate msg_subscriber buffers data"
config ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
bool "Use fixed data size for msg_subscriber buffers pool"
endchoice
config ZBUS_MSG_SUBSCRIBER_NET_BUF_POOL_ISOLATION
default n
bool "Use isolated pools instead of only using the global pool."
config ZBUS_MSG_SUBSCRIBER_NET_BUF_POOL_SIZE
default 16
int "The count of net_buf available to be used simutaneously."
if ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
config ZBUS_MSG_SUBSCRIBER_NET_BUF_STATIC_DATA_SIZE
int "The size of the biggest message used with ZBus."
endif # ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
endif # ZBUS_MSG_SUBSCRIBER
config ZBUS_RUNTIME_OBSERVERS
bool "Runtime observers support."
config ZBUS_PRIORITY_BOOST
bool "ZBus priority boost algorithm"
default y
help
ZBus implements the Highest Locker Protocol that relies on the observers thread priority
to determine a temporary publisher priority.
config ZBUS_ASSERT_MOCK
bool "Zbus assert mock for test purposes."
help
This configuration enables the developer to change the _ZBUS_ASSERT behavior. When this configuration is
enabled, _ZBUS_ASSERT returns -EFAULT instead of assert. It makes it more straightforward to test invalid
parameters.
config HEAP_MEM_POOL_ADD_SIZE_ZBUS
int
default 2048 if ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC && !ZBUS_RUNTIME_OBSERVERS
default 1024 if !ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC && ZBUS_RUNTIME_OBSERVERS
default 3072 if ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC && ZBUS_RUNTIME_OBSERVERS
module = ZBUS
module-str = zbus
source "subsys/logging/Kconfig.template.log_config"
endif # ZBUS