huangcm
2024-12-18 9d29be7f7249789d6ffd0440067187a9f040c2cd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
 * FST module implementation
 * Copyright (c) 2014, Qualcomm Atheros, Inc.
 *
 * This software may be distributed under the terms of the BSD license.
 * See README for more details.
 */
 
#include "utils/includes.h"
#include "utils/common.h"
#include "common/defs.h"
#include "fst_ctrl_defs.h"
#include "fst_ctrl_aux.h"
 
 
static const char *session_event_names[] = {
   [EVENT_FST_ESTABLISHED] = FST_PVAL_EVT_TYPE_ESTABLISHED,
   [EVENT_FST_SETUP] = FST_PVAL_EVT_TYPE_SETUP,
   [EVENT_FST_SESSION_STATE_CHANGED] = FST_PVAL_EVT_TYPE_SESSION_STATE,
};
 
static const char *reason_names[] = {
   [REASON_TEARDOWN] = FST_CS_PVAL_REASON_TEARDOWN,
   [REASON_SETUP] = FST_CS_PVAL_REASON_SETUP,
   [REASON_SWITCH] = FST_CS_PVAL_REASON_SWITCH,
   [REASON_STT] = FST_CS_PVAL_REASON_STT,
   [REASON_REJECT] = FST_CS_PVAL_REASON_REJECT,
   [REASON_ERROR_PARAMS] = FST_CS_PVAL_REASON_ERROR_PARAMS,
   [REASON_RESET] = FST_CS_PVAL_REASON_RESET,
   [REASON_DETACH_IFACE] = FST_CS_PVAL_REASON_DETACH_IFACE,
};
 
static const char *session_state_names[] = {
   [FST_SESSION_STATE_INITIAL] = FST_CS_PVAL_STATE_INITIAL,
   [FST_SESSION_STATE_SETUP_COMPLETION] =
   FST_CS_PVAL_STATE_SETUP_COMPLETION,
   [FST_SESSION_STATE_TRANSITION_DONE] = FST_CS_PVAL_STATE_TRANSITION_DONE,
   [FST_SESSION_STATE_TRANSITION_CONFIRMED] =
   FST_CS_PVAL_STATE_TRANSITION_CONFIRMED,
};
 
 
/* helpers */
const char * fst_get_str_name(unsigned index, const char *names[],
                 size_t names_size)
{
   if (index >= names_size || !names[index])
       return FST_NAME_UNKNOWN;
   return names[index];
}
 
 
const char * fst_session_event_type_name(enum fst_event_type event)
{
   return fst_get_str_name(event, session_event_names,
               ARRAY_SIZE(session_event_names));
}
 
 
const char * fst_reason_name(enum fst_reason reason)
{
   return fst_get_str_name(reason, reason_names, ARRAY_SIZE(reason_names));
}
 
 
const char * fst_session_state_name(enum fst_session_state state)
{
   return fst_get_str_name(state, session_state_names,
               ARRAY_SIZE(session_state_names));
}