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 */