zephyr/subsys/zbus/Kconfig
Rodrigo Peixoto 6ae9a981d0 zbus: Improve consistency with runtime observers
A previous PR merged (to remove runtime observers' dependency with heap)
added inconsistencies and compatibility breaks to the zbus. This commit
improves that by removing the inconsistencies and still attending to the
features requested by the community.

Signed-off-by: Rodrigo Peixoto <rodrigopex@gmail.com>
2025-05-16 09:37:20 +02:00

122 lines
3.4 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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_PREFER_DYNAMIC_ALLOCATION
bool "Set zbus to work with dynamic allocation using the system heap"
default y
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_CHANNEL_ID
bool "Channel identifier 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 if ZBUS_PREFER_DYNAMIC_ALLOCATION
default ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
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."
if ZBUS_RUNTIME_OBSERVERS
choice ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC
prompt "ZBus runtime observers node allocation"
default ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_DYNAMIC if ZBUS_PREFER_DYNAMIC_ALLOCATION
default ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_STATIC
config ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_DYNAMIC
bool "Use heap to allocate runtime observers node"
config ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_STATIC
bool "Use a pool of runtime observers nodes"
config ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_NONE
bool "Use user-provided runtime observers nodes"
endchoice
config ZBUS_RUNTIME_OBSERVERS_NODE_POOL_SIZE
int "Runtime observer pool size"
depends on ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_STATIC
default 8
endif # ZBUS_RUNTIME_OBSERVERS
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_NODE_ALLOC_DYNAMIC
default 1024 if !ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC && ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_DYNAMIC
default 3072 if ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC && ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_DYNAMIC
module = ZBUS
module-str = zbus
source "subsys/logging/Kconfig.template.log_config"
endif # ZBUS