2 * SPDX-License-Identifier: GPL-2.0-only
4 * Copyright (C) 2020 Philippe Proulx <pproulx@efficios.com>
7 #ifndef TESTS_LIB_CONDS_UTILS_H
8 #define TESTS_LIB_CONDS_UTILS_H
10 enum cond_trigger_func_type {
11 COND_TRIGGER_FUNC_TYPE_BASIC,
12 COND_TRIGGER_FUNC_TYPE_RUN_IN_COMP_CLS_INIT,
15 enum cond_trigger_type {
16 COND_TRIGGER_TYPE_PRE,
17 COND_TRIGGER_TYPE_POST,
20 typedef void (* cond_trigger_basic_func)(void);
21 typedef void (* cond_trigger_run_in_comp_cls_init_func)(bt_self_component *);
24 enum cond_trigger_type type;
25 enum cond_trigger_func_type func_type;
29 cond_trigger_basic_func basic;
30 cond_trigger_run_in_comp_cls_init_func run_in_comp_cls_init;
34 #define COND_TRIGGER_PRE_BASIC(_cond_id, _suffix, _func) \
36 .type = COND_TRIGGER_TYPE_PRE, \
37 .func_type = COND_TRIGGER_FUNC_TYPE_BASIC, \
38 .cond_id = _cond_id, \
45 #define COND_TRIGGER_POST_BASIC(_cond_id, _suffix, _func) \
47 .type = COND_TRIGGER_TYPE_POST, \
48 .func_type = COND_TRIGGER_FUNC_TYPE_BASIC, \
49 .cond_id = _cond_id, \
56 #define COND_TRIGGER_PRE_RUN_IN_COMP_CLS_INIT(_cond_id, _suffix, _func) \
58 .type = COND_TRIGGER_TYPE_PRE, \
59 .func_type = COND_TRIGGER_FUNC_TYPE_RUN_IN_COMP_CLS_INIT, \
60 .cond_id = _cond_id, \
63 .run_in_comp_cls_init = _func, \
67 #define COND_TRIGGER_POST_RUN_IN_COMP_CLS_INIT(_cond_id, _suffix, _func) \
69 .type = COND_TRIGGER_TYPE_POST, \
70 .func_type = COND_TRIGGER_FUNC_TYPE_RUN_IN_COMP_CLS_INIT, \
71 .cond_id = _cond_id, \
74 .run_in_comp_cls_init = _func, \
78 void cond_main(int argc, const char *argv[],
79 const struct cond_trigger triggers[],
80 size_t trigger_count);
82 #endif /* TESTS_LIB_CONDS_UTILS_H */