1325151a3SRui Paulo /*
2325151a3SRui Paulo * FST module implementation
3325151a3SRui Paulo * Copyright (c) 2014, Qualcomm Atheros, Inc.
4325151a3SRui Paulo *
5325151a3SRui Paulo * This software may be distributed under the terms of the BSD license.
6325151a3SRui Paulo * See README for more details.
7325151a3SRui Paulo */
8325151a3SRui Paulo
9325151a3SRui Paulo #include "utils/includes.h"
10325151a3SRui Paulo #include "utils/common.h"
11325151a3SRui Paulo #include "common/defs.h"
12325151a3SRui Paulo #include "fst_ctrl_defs.h"
13325151a3SRui Paulo #include "fst_ctrl_aux.h"
14325151a3SRui Paulo
15325151a3SRui Paulo
16325151a3SRui Paulo static const char *session_event_names[] = {
17*780fb4a2SCy Schubert [EVENT_FST_ESTABLISHED] = FST_PVAL_EVT_TYPE_ESTABLISHED,
18*780fb4a2SCy Schubert [EVENT_FST_SETUP] = FST_PVAL_EVT_TYPE_SETUP,
19*780fb4a2SCy Schubert [EVENT_FST_SESSION_STATE_CHANGED] = FST_PVAL_EVT_TYPE_SESSION_STATE,
20325151a3SRui Paulo };
21325151a3SRui Paulo
22325151a3SRui Paulo static const char *reason_names[] = {
23*780fb4a2SCy Schubert [REASON_TEARDOWN] = FST_CS_PVAL_REASON_TEARDOWN,
24*780fb4a2SCy Schubert [REASON_SETUP] = FST_CS_PVAL_REASON_SETUP,
25*780fb4a2SCy Schubert [REASON_SWITCH] = FST_CS_PVAL_REASON_SWITCH,
26*780fb4a2SCy Schubert [REASON_STT] = FST_CS_PVAL_REASON_STT,
27*780fb4a2SCy Schubert [REASON_REJECT] = FST_CS_PVAL_REASON_REJECT,
28*780fb4a2SCy Schubert [REASON_ERROR_PARAMS] = FST_CS_PVAL_REASON_ERROR_PARAMS,
29*780fb4a2SCy Schubert [REASON_RESET] = FST_CS_PVAL_REASON_RESET,
30*780fb4a2SCy Schubert [REASON_DETACH_IFACE] = FST_CS_PVAL_REASON_DETACH_IFACE,
31325151a3SRui Paulo };
32325151a3SRui Paulo
33325151a3SRui Paulo static const char *session_state_names[] = {
34*780fb4a2SCy Schubert [FST_SESSION_STATE_INITIAL] = FST_CS_PVAL_STATE_INITIAL,
35*780fb4a2SCy Schubert [FST_SESSION_STATE_SETUP_COMPLETION] =
36*780fb4a2SCy Schubert FST_CS_PVAL_STATE_SETUP_COMPLETION,
37*780fb4a2SCy Schubert [FST_SESSION_STATE_TRANSITION_DONE] = FST_CS_PVAL_STATE_TRANSITION_DONE,
38*780fb4a2SCy Schubert [FST_SESSION_STATE_TRANSITION_CONFIRMED] =
39325151a3SRui Paulo FST_CS_PVAL_STATE_TRANSITION_CONFIRMED,
40325151a3SRui Paulo };
41325151a3SRui Paulo
42325151a3SRui Paulo
43325151a3SRui Paulo /* helpers */
fst_get_str_name(unsigned index,const char * names[],size_t names_size)44325151a3SRui Paulo const char * fst_get_str_name(unsigned index, const char *names[],
45325151a3SRui Paulo size_t names_size)
46325151a3SRui Paulo {
47325151a3SRui Paulo if (index >= names_size || !names[index])
48325151a3SRui Paulo return FST_NAME_UNKNOWN;
49325151a3SRui Paulo return names[index];
50325151a3SRui Paulo }
51325151a3SRui Paulo
52325151a3SRui Paulo
fst_session_event_type_name(enum fst_event_type event)53325151a3SRui Paulo const char * fst_session_event_type_name(enum fst_event_type event)
54325151a3SRui Paulo {
55325151a3SRui Paulo return fst_get_str_name(event, session_event_names,
56325151a3SRui Paulo ARRAY_SIZE(session_event_names));
57325151a3SRui Paulo }
58325151a3SRui Paulo
59325151a3SRui Paulo
fst_reason_name(enum fst_reason reason)60325151a3SRui Paulo const char * fst_reason_name(enum fst_reason reason)
61325151a3SRui Paulo {
62325151a3SRui Paulo return fst_get_str_name(reason, reason_names, ARRAY_SIZE(reason_names));
63325151a3SRui Paulo }
64325151a3SRui Paulo
65325151a3SRui Paulo
fst_session_state_name(enum fst_session_state state)66325151a3SRui Paulo const char * fst_session_state_name(enum fst_session_state state)
67325151a3SRui Paulo {
68325151a3SRui Paulo return fst_get_str_name(state, session_state_names,
69325151a3SRui Paulo ARRAY_SIZE(session_state_names));
70325151a3SRui Paulo }
71