@@ -79,14 +79,11 @@ struct ctl_argument {
7979
8080#define sizeof_member (t , m ) sizeof(((t *)0)->m)
8181
82- #define CTL_ARG_PARSER (t , p ) \
83- { 0, sizeof(t), p }
82+ #define CTL_ARG_PARSER (t , p ) {0, sizeof(t), p}
8483
85- #define CTL_ARG_PARSER_STRUCT (t , m , p ) \
86- { offsetof(t, m), sizeof_member(t, m), p }
84+ #define CTL_ARG_PARSER_STRUCT (t , m , p ) {offsetof(t, m), sizeof_member(t, m), p}
8785
88- #define CTL_ARG_PARSER_END \
89- { 0, 0, NULL }
86+ #define CTL_ARG_PARSER_END {0, 0, NULL}
9087
9188/*
9289 * CTL Tree node structure, do not use directly. All the necessary functionality
@@ -122,6 +119,7 @@ struct ctl {
122119};
123120
124121void initialize_global_ctl (void );
122+ void ctl_init (void * (* Malloc )(size_t ), void (* Free )(void * ));
125123
126124umf_result_t ctl_load_config_from_string (struct ctl * ctl , void * ctx ,
127125 const char * cfg_string );
@@ -175,7 +173,7 @@ int ctl_arg_string(const void *arg, void *dest, size_t dest_size);
175173#define CTL_NONAME CTL_NAMELESS_NODE_
176174
177175#define CTL_NODE_END \
178- { NULL, CTL_NODE_UNKNOWN, NULL, NULL, NULL, NULL, NULL, NULL }
176+ {NULL, CTL_NODE_UNKNOWN, NULL, NULL, NULL, NULL, NULL, NULL}
179177
180178#define CTL_NODE (name , ...) ctl_node_##__VA_ARGS__##_##name
181179
@@ -186,28 +184,28 @@ umf_result_t ctl_query(struct ctl *ctl, void *ctx,
186184
187185/* Declaration of a new child node */
188186#define CTL_CHILD (name , ...) \
189- { \
190- CTL_STR(name), CTL_NODE_NAMED, NULL, NULL, NULL, NULL, NULL, \
191- (struct ctl_node *)CTL_NODE(name, __VA_ARGS__) \
192- }
187+ {CTL_STR(name), CTL_NODE_NAMED, \
188+ NULL, NULL, \
189+ NULL, NULL, \
190+ NULL, (struct ctl_node *)CTL_NODE(name, __VA_ARGS__) }
193191
194192/*
195193 * Declaration of a new child node with an argument
196194 * This is used to declare that the following node is an argument node, which
197195 * should be parsed and provided to the handler function in argument list.
198196 */
199197#define CTL_CHILD_WITH_ARG (name , ...) \
200- { \
201- CTL_STR(name), CTL_NODE_NAMED, NULL, NULL, NULL, NULL, &CTL_ARG(name), \
202- (struct ctl_node *)CTL_NODE(name, __VA_ARGS__) \
203- }
198+ {CTL_STR(name), CTL_NODE_NAMED, \
199+ NULL, NULL, \
200+ NULL, NULL, \
201+ &CTL_ARG(name), (struct ctl_node *)CTL_NODE(name, __VA_ARGS__) }
204202
205203/* Declaration of a new indexed node */
206204#define CTL_INDEXED (name , ...) \
207- { \
208- CTL_STR(name), CTL_NODE_INDEXED, NULL, NULL, NULL, NULL, NULL, \
209- (struct ctl_node *)CTL_NODE(name, __VA_ARGS__) \
210- }
205+ {CTL_STR(name), CTL_NODE_INDEXED, \
206+ NULL, NULL, \
207+ NULL, NULL, \
208+ NULL, (struct ctl_node *)CTL_NODE(name, __VA_ARGS__) }
211209
212210#define CTL_HANDLER_NAME (name , action , ...) \
213211 ctl_##__VA_ARGS__##_##name##_##action
@@ -228,47 +226,48 @@ umf_result_t ctl_query(struct ctl *ctl, void *ctx,
228226 * must be declared by CTL_READ_HANDLER macro.
229227 */
230228#define CTL_LEAF_RO (name , ...) \
231- { \
232- CTL_STR(name), CTL_NODE_LEAF, CTL_READ_HANDLER(name, __VA_ARGS__), \
233- NULL, NULL, NULL, NULL, NULL \
234- }
229+ {CTL_STR(name), CTL_NODE_LEAF, CTL_READ_HANDLER(name, __VA_ARGS__), \
230+ NULL, NULL, NULL, \
231+ NULL, NULL}
235232
236233/*
237234 * Declaration of a new write-only leaf. If used the corresponding write
238235 * function must be declared by CTL_WRITE_HANDLER macro.
239236 */
240237#define CTL_LEAF_WO (name , ...) \
241- { \
242- CTL_STR(name), CTL_NODE_LEAF, NULL, \
243- CTL_WRITE_HANDLER(name, __VA_ARGS__), NULL, NULL, &CTL_ARG(name), \
244- NULL \
245- }
238+ {CTL_STR(name), CTL_NODE_LEAF, \
239+ NULL, CTL_WRITE_HANDLER(name, __VA_ARGS__), \
240+ NULL, NULL, \
241+ &CTL_ARG(name), NULL}
246242
247243/*
248244 * Declaration of a new runnable leaf. If used the corresponding run
249245 * function must be declared by CTL_RUNNABLE_HANDLER macro.
250246 */
251247#define CTL_LEAF_RUNNABLE (name , ...) \
252- { \
253- CTL_STR(name), CTL_NODE_LEAF, NULL, NULL, \
254- CTL_RUNNABLE_HANDLER(name, __VA_ARGS__), NULL, NULL, NULL \
255- }
248+ {CTL_STR(name), \
249+ CTL_NODE_LEAF, \
250+ NULL, \
251+ NULL, \
252+ CTL_RUNNABLE_HANDLER(name, __VA_ARGS__), \
253+ NULL, \
254+ NULL, \
255+ NULL}
256256
257257#define CTL_LEAF_SUBTREE (name , ...) \
258- { \
259- CTL_STR(name), CTL_NODE_SUBTREE, NULL, NULL, NULL, \
260- CTL_SUBTREE_HANDLER(name, __VA_ARGS__), NULL, NULL \
261- }
258+ {CTL_STR(name), CTL_NODE_SUBTREE, \
259+ NULL, NULL, \
260+ NULL, CTL_SUBTREE_HANDLER(name, __VA_ARGS__), \
261+ NULL, NULL }
262262
263263/*
264264 * Declaration of a new read-write leaf. If used both read and write function
265265 * must be declared by CTL_READ_HANDLER and CTL_WRITE_HANDLER macros.
266266 */
267267#define CTL_LEAF_RW (name ) \
268- { \
269- CTL_STR(name), CTL_NODE_LEAF, CTL_READ_HANDLER(name), \
270- CTL_WRITE_HANDLER(name), NULL, NULL, &CTL_ARG(name), NULL \
271- }
268+ {CTL_STR(name), CTL_NODE_LEAF, CTL_READ_HANDLER(name), \
269+ CTL_WRITE_HANDLER(name), NULL, NULL, \
270+ &CTL_ARG(name), NULL}
272271
273272#define CTL_REGISTER_MODULE (_ctl , name ) \
274273 ctl_register_module_node((_ctl), CTL_STR(name), \
0 commit comments