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_ISOLATION
41	default n
42	bool "Use isolated pools instead of only using the global pool."
43
44config ZBUS_MSG_SUBSCRIBER_NET_BUF_POOL_SIZE
45	default 16
46	int "The count of net_buf available to be used simutaneously."
47
48if ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
49
50config ZBUS_MSG_SUBSCRIBER_NET_BUF_STATIC_DATA_SIZE
51	int "The size of the biggest message used with ZBus."
52
53endif # ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
54
55endif # ZBUS_MSG_SUBSCRIBER
56
57config ZBUS_RUNTIME_OBSERVERS
58	bool "Runtime observers support."
59
60config ZBUS_PRIORITY_BOOST
61	bool "ZBus priority boost algorithm"
62	default y
63	help
64	  ZBus implements the Highest Locker Protocol that relies on the observers’ thread priority
65	  to determine a temporary publisher priority.
66
67config ZBUS_ASSERT_MOCK
68	bool "Zbus assert mock for test purposes."
69	help
70	  This configuration enables the developer to change the _ZBUS_ASSERT behavior. When this configuration is
71	  enabled, _ZBUS_ASSERT returns -EFAULT instead of assert. It makes it more straightforward to test invalid
72	  parameters.
73
74
75module = ZBUS
76module-str = zbus
77source "subsys/logging/Kconfig.template.log_config"
78
79endif # ZBUS
80