1# Copyright (c) 2022 Rodrigo Peixoto <rodrigopex@gmail.com>
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig ZBUS
5	bool "Zbus support"
6	depends on MULTITHREADING
7	help
8	  Enables support for Zephyr message bus.
9
10if ZBUS
11
12config ZBUS_CHANNELS_SYS_INIT_PRIORITY
13	default 5
14	int "The priority used during the SYS_INIT procedure."
15
16config ZBUS_CHANNEL_NAME
17	bool "Channel name field"
18
19config ZBUS_OBSERVER_NAME
20	bool "Observer name field"
21
22config ZBUS_MSG_SUBSCRIBER
23	select NET_BUF
24	bool "Message subscribers will receive all messages in sequence."
25
26if ZBUS_MSG_SUBSCRIBER
27
28choice ZBUS_MSG_SUBSCRIBER_BUF_ALLOC
29	prompt "ZBus msg_subscribers buffer allocation"
30	default ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC
31
32config ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC
33	bool "Use heap to allocate msg_subscriber buffers data"
34
35config ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
36	bool "Use fixed data size for msg_subscriber buffers pool"
37
38endchoice
39
40config ZBUS_MSG_SUBSCRIBER_NET_BUF_POOL_SIZE
41	default 16
42	int "The count of net_buf available to be used simutaneously."
43
44if ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
45
46config ZBUS_MSG_SUBSCRIBER_NET_BUF_STATIC_DATA_SIZE
47	int "The size of the biggest message used with ZBus."
48
49endif # ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
50
51endif # ZBUS_MSG_SUBSCRIBER
52
53config ZBUS_RUNTIME_OBSERVERS
54	bool "Runtime observers support."
55
56config ZBUS_PRIORITY_BOOST
57	bool "ZBus priority boost algorithm"
58	default y
59	help
60	  ZBus implements the Highest Locker Protocol that relies on the observers’ thread priority
61	  to determine a temporary publisher priority.
62
63config ZBUS_ASSERT_MOCK
64	bool "Zbus assert mock for test purposes."
65	help
66	  This configuration enables the developer to change the _ZBUS_ASSERT behavior. When this configuration is
67	  enabled, _ZBUS_ASSERT returns -EFAULT instead of assert. It makes it more straightforward to test invalid
68	  parameters.
69
70
71module = ZBUS
72module-str = zbus
73source "subsys/logging/Kconfig.template.log_config"
74
75endif # ZBUS
76