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