diff options
| -rw-r--r-- | include/osmocom/gsm/gsm_utils.h | 3 | ||||
| -rw-r--r-- | src/gsm/gsm_utils.c | 11 | ||||
| -rw-r--r-- | src/gsm/libosmogsm.map | 1 | 
3 files changed, 15 insertions, 0 deletions
| diff --git a/include/osmocom/gsm/gsm_utils.h b/include/osmocom/gsm/gsm_utils.h index 998f681e..a879d33c 100644 --- a/include/osmocom/gsm/gsm_utils.h +++ b/include/osmocom/gsm/gsm_utils.h @@ -168,6 +168,9 @@ void gsm_fn2gsmtime(struct gsm_time *time, uint32_t fn);  /* Convert from GSM time to frame number */  uint32_t gsm_gsmtime2fn(struct gsm_time *time); +/* Returns static buffer with string representation of a GSM Time */ +char *osmo_dump_gsmtime(const struct gsm_time *tm); +  /* GSM TS 03.03 Chapter 2.6 */  enum gprs_tlli_type {  	TLLI_LOCAL, diff --git a/src/gsm/gsm_utils.c b/src/gsm/gsm_utils.c index 61d3f833..2c980d28 100644 --- a/src/gsm/gsm_utils.c +++ b/src/gsm/gsm_utils.c @@ -90,6 +90,7 @@  #include <stdio.h>  #include <errno.h>  #include <ctype.h> +#include <inttypes.h>  #include "../../config.h" @@ -758,6 +759,16 @@ uint32_t gsm_gsmtime2fn(struct gsm_time *time)  	return (51 * ((time->t3 - time->t2 + 26) % 26) + time->t3 + (26 * 51 * time->t1));  } +char *osmo_dump_gsmtime(const struct gsm_time *tm) +{ +	static char buf[64]; + +	snprintf(buf, sizeof(buf), "%06"PRIu32"/%02"PRIu16"/%02"PRIu8"/%02"PRIu8"/%02"PRIu8, +		 tm->fn, tm->t1, tm->t2, tm->t3, (uint8_t)tm->fn%52); +	buf[sizeof(buf)-1] = '\0'; +	return buf; +} +  /*! append range1024 encoded data to bit vector   *  \param[out] bv Caller-provided output bit-vector   *  \param[in] r Input Range1024 sructure */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index e992a4fc..ad7e0131 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -274,6 +274,7 @@ gsm_band_parse;  gsm_fn2gsmtime;  gsm_get_octet_len;  gsm_gsmtime2fn; +osmo_dump_gsmtime;  gsm_milenage;  gsm_septet_encode; | 
