@@ -56,38 +56,50 @@ static int backend_init(const struct device *instance)
56
56
57
57
#define UNBOUND_MODE (i ) CONCAT(ICMSG_UNBOUND_MODE_, DT_INST_STRING_UPPER_TOKEN(i, unbound))
58
58
59
- #define DEFINE_BACKEND_DEVICE (i ) \
60
- static const struct icmsg_config_t backend_config_##i = { \
61
- .mbox_tx = MBOX_DT_SPEC_INST_GET(i, tx), \
62
- .mbox_rx = MBOX_DT_SPEC_INST_GET(i, rx), \
63
- .unbound_mode = UNBOUND_MODE(i), \
64
- }; \
65
- \
66
- PBUF_DEFINE(tx_pb_##i, \
67
- DT_REG_ADDR(DT_INST_PHANDLE(i, tx_region)), \
68
- DT_REG_SIZE(DT_INST_PHANDLE(i, tx_region)), \
69
- DT_INST_PROP_OR(i, dcache_alignment, 0), \
70
- UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DISABLE, \
71
- UNBOUND_MODE(i) == ICMSG_UNBOUND_MODE_DETECT); \
72
- PBUF_DEFINE(rx_pb_##i, \
73
- DT_REG_ADDR(DT_INST_PHANDLE(i, rx_region)), \
74
- DT_REG_SIZE(DT_INST_PHANDLE(i, rx_region)), \
75
- DT_INST_PROP_OR(i, dcache_alignment, 0), \
76
- UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DISABLE, \
77
- UNBOUND_MODE(i) == ICMSG_UNBOUND_MODE_DETECT); \
78
- \
79
- static struct icmsg_data_t backend_data_##i = { \
80
- .tx_pb = &tx_pb_##i, \
81
- .rx_pb = &rx_pb_##i, \
82
- }; \
83
- \
84
- DEVICE_DT_INST_DEFINE(i, \
85
- &backend_init, \
86
- NULL, \
87
- &backend_data_##i, \
88
- &backend_config_##i, \
89
- POST_KERNEL, \
90
- CONFIG_IPC_SERVICE_REG_BACKEND_PRIORITY, \
59
+ #define DEFINE_BACKEND_DEVICE (i ) \
60
+ static const struct icmsg_config_t backend_config_##i = { \
61
+ .mbox_tx = MBOX_DT_SPEC_INST_GET(i, tx), \
62
+ .mbox_rx = MBOX_DT_SPEC_INST_GET(i, rx), \
63
+ .unbound_mode = UNBOUND_MODE(i), \
64
+ }; \
65
+ \
66
+ PBUF_DEFINE(tx_pb_##i, \
67
+ DT_REG_ADDR(DT_INST_PHANDLE(i, tx_region)), \
68
+ DT_REG_SIZE(DT_INST_PHANDLE(i, tx_region)), \
69
+ DT_INST_PROP_OR(i, dcache_alignment, 0), \
70
+ UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DISABLE, \
71
+ UNBOUND_MODE(i) == ICMSG_UNBOUND_MODE_DETECT); \
72
+ PBUF_DEFINE(rx_pb_##i, \
73
+ DT_REG_ADDR(DT_INST_PHANDLE(i, rx_region)), \
74
+ DT_REG_SIZE(DT_INST_PHANDLE(i, rx_region)), \
75
+ DT_INST_PROP_OR(i, dcache_alignment, 0), \
76
+ UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DISABLE, \
77
+ UNBOUND_MODE(i) == ICMSG_UNBOUND_MODE_DETECT); \
78
+ \
79
+ BUILD_ASSERT(UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DISABLE || \
80
+ IS_ENABLED(CONFIG_IPC_SERVICE_ICMSG_UNBOUND_DISABLED_ALLOWED), \
81
+ "Unbound mode \"disabled\" is was forbidden in Kconfig."); \
82
+ \
83
+ BUILD_ASSERT(UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_ENABLE || \
84
+ IS_ENABLED(CONFIG_IPC_SERVICE_ICMSG_UNBOUND_ENABLED_ALLOWED), \
85
+ "Unbound mode \"enabled\" is was forbidden in Kconfig."); \
86
+ \
87
+ BUILD_ASSERT(UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DETECT || \
88
+ IS_ENABLED(CONFIG_IPC_SERVICE_ICMSG_UNBOUND_DETECT_ALLOWED), \
89
+ "Unbound mode \"detect\" is was forbidden in Kconfig."); \
90
+ \
91
+ static struct icmsg_data_t backend_data_##i = { \
92
+ .tx_pb = &tx_pb_##i, \
93
+ .rx_pb = &rx_pb_##i, \
94
+ }; \
95
+ \
96
+ DEVICE_DT_INST_DEFINE(i, \
97
+ &backend_init, \
98
+ NULL, \
99
+ &backend_data_##i, \
100
+ &backend_config_##i, \
101
+ POST_KERNEL, \
102
+ CONFIG_IPC_SERVICE_REG_BACKEND_PRIORITY, \
91
103
&backend_ops);
92
104
93
105
DT_INST_FOREACH_STATUS_OKAY (DEFINE_BACKEND_DEVICE )
0 commit comments