From patchwork Tue Mar 22 16:22:04 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Max X-Patchwork-Id: 600887 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.osmocom.org (lists.osmocom.org [144.76.43.76]) by ozlabs.org (Postfix) with ESMTP id 3qTyf76h6dz9s3s for ; Wed, 23 Mar 2016 03:22:39 +1100 (AEDT) Received: from lists.osmocom.org (lists.osmocom.org [144.76.43.76]) by lists.osmocom.org (Postfix) with ESMTP id 0085B1C36C; Tue, 22 Mar 2016 16:22:38 +0000 (UTC) X-Original-To: openbsc@lists.osmocom.org Delivered-To: openbsc@lists.osmocom.org Received: from mail.sysmocom.de (mail.sysmocom.de [IPv6:2a01:4f8:191:444c::2:4]) by lists.osmocom.org (Postfix) with ESMTP id 45B831C35D for ; Tue, 22 Mar 2016 16:22:35 +0000 (UTC) Received: from mail.sysmocom.de (mail.sysmocom.de [144.76.43.93]) by mail.sysmocom.de (Postfix) with ESMTP id B601D188FFA; Tue, 22 Mar 2016 16:22:05 +0000 (UTC) Received: from pbell.local (ip5b418565.dynamic.kabel-deutschland.de [91.65.133.101]) by mail.sysmocom.de (Postfix) with ESMTPSA id 73AD7188FF9; Tue, 22 Mar 2016 16:22:05 +0000 (UTC) From: msuraev@sysmocom.de To: openbsc@lists.osmocom.org Subject: [PATCH] Add helper function to convert enums to string Date: Tue, 22 Mar 2016 17:22:04 +0100 Message-Id: <1458663724-24082-1-git-send-email-msuraev@sysmocom.de> X-Mailer: git-send-email 2.7.4 X-Virus-Scanned: ClamAV using ClamSMTP X-BeenThere: openbsc@lists.osmocom.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Development of OpenBSC, OsmoBSC, OsmoNITB, OsmoCSCN" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Max Errors-To: openbsc-bounces@lists.osmocom.org Sender: "OpenBSC" From: Max Add convertors for gsm48_chan_mode and gsm_chan_t types which are useful for debugging. --- include/osmocom/gsm/gsm_utils.h | 2 ++ include/osmocom/gsm/protocol/gsm_04_08.h | 2 ++ src/gsm/gsm48.c | 17 +++++++++++++++++ src/gsm/gsm_utils.c | 17 +++++++++++++++++ 4 files changed, 38 insertions(+) diff --git a/include/osmocom/gsm/gsm_utils.h b/include/osmocom/gsm/gsm_utils.h index 6458447..c9c565e 100644 --- a/include/osmocom/gsm/gsm_utils.h +++ b/include/osmocom/gsm/gsm_utils.h @@ -199,6 +199,8 @@ enum gsm_chan_t { _GSM_LCHAN_MAX }; +const char * osmo_gsm48_chan_type2str(enum gsm_chan_t type); + /* Deprectated functions */ /* Limit encoding and decoding to use no more than this amount of buffer bytes */ #define GSM_7BIT_LEGACY_MAX_BUFFER_SIZE 0x10000 diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index d49b77f..78aaef2 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -347,6 +347,8 @@ enum gsm48_chan_mode { GSM48_CMODE_DATA_3k6 = 0x13, }; +const char * osmo_gsm48_chan_mode2str(enum gsm48_chan_mode); + /* Chapter 9.1.2 */ struct gsm48_ass_cmd { /* Semantic is from 10.5.2.5a */ diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index d0a2286..494c013 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -197,6 +197,23 @@ static const char *cc_state_names[32] = { "illegal state 31", }; +static const struct value_string gsm48_chan_modes[] = { + {GSM48_CMODE_SIGN, "SIGNALLING"}, + {GSM48_CMODE_SPEECH_V1, "SPEECH_V1"}, + {GSM48_CMODE_SPEECH_EFR, "SPEECH_EFR"}, + {GSM48_CMODE_SPEECH_AMR, "SPEECH_AMR"}, + {GSM48_CMODE_DATA_14k5, "DATA_14k5"}, + {GSM48_CMODE_DATA_12k0, "DATA_12k0"}, + {GSM48_CMODE_DATA_6k0, "DATA_6k0"}, + {GSM48_CMODE_DATA_3k6, "DATA_3k6"}, + { 0, NULL }, +}; + +const char * osmo_gsm48_chan_mode2str(enum gsm48_chan_mode mode) +{ + return get_value_string(gsm48_chan_modes, mode); +} + const char *gsm48_cc_state_name(uint8_t state) { if (state < ARRAY_SIZE(cc_state_names)) diff --git a/src/gsm/gsm_utils.c b/src/gsm/gsm_utils.c index e8e452f..16a4117 100644 --- a/src/gsm/gsm_utils.c +++ b/src/gsm/gsm_utils.c @@ -691,6 +691,23 @@ uint32_t gprs_tmsi2tlli(uint32_t p_tmsi, enum gprs_tlli_type type) return tlli; } +static const struct value_string gsm48_chan_types[] = { + { GSM_LCHAN_NONE, "NONE"}, + { GSM_LCHAN_SDCCH, "SDCCH"}, + { GSM_LCHAN_TCH_F, "TCH_F"}, + { GSM_LCHAN_TCH_H, "TCH_H"}, + { GSM_LCHAN_UNKNOWN, "UNKNOWN"}, + { GSM_LCHAN_CCCH, "CCCH"}, + { GSM_LCHAN_PDTCH, "PDTCH"}, + { GSM_LCHAN_CBCH, "CBCH"}, + { 0, NULL }, +}; + +const char * osmo_gsm48_chan_type2str(enum gsm_chan_t type) +{ + return get_value_string(gsm48_chan_types, type); +} + /* Wrappers for deprecated functions: */ int gsm_7bit_decode(char *text, const uint8_t *user_data, uint8_t septet_l)