rename gprs_shift_*() to osmo_shift_*()

This rename is the first step of moving the associated functions into
libosmocore.

Also, rename gprs_match_* to osmo_match_shift_* to indicate that it is
not just matching the TLV, but also shifting the data portion.
diff --git a/openbsc/include/openbsc/gprs_utils.h b/openbsc/include/openbsc/gprs_utils.h
index 474eb45..b5bee2b 100644
--- a/openbsc/include/openbsc/gprs_utils.h
+++ b/openbsc/include/openbsc/gprs_utils.h
@@ -42,15 +42,15 @@
 int gprs_parse_mi_tmsi(const uint8_t *value, size_t value_len, uint32_t *tmsi);
 void gprs_parse_tmsi(const uint8_t *value, uint32_t *tmsi);
 
-int gprs_shift_v_fixed(uint8_t **data, size_t *data_len,
+int osmo_shift_v_fixed(uint8_t **data, size_t *data_len,
 		       size_t len, uint8_t **value);
-int gprs_match_tv_fixed(uint8_t **data, size_t *data_len,
-			uint8_t tag, size_t len, uint8_t **value);
-int gprs_shift_tlv(uint8_t **data, size_t *data_len,
+int osmo_match_shift_tv_fixed(uint8_t **data, size_t *data_len,
+			      uint8_t tag, size_t len, uint8_t **value);
+int osmo_shift_tlv(uint8_t **data, size_t *data_len,
 		   uint8_t *tag, uint8_t **value, size_t *value_len);
-int gprs_match_tlv(uint8_t **data, size_t *data_len,
+int osmo_match_shift_tlv(uint8_t **data, size_t *data_len,
 		   uint8_t tag, uint8_t **value, size_t *value_len);
-int gprs_shift_lv(uint8_t **data, size_t *data_len,
+int osmo_shift_lv(uint8_t **data, size_t *data_len,
 		  uint8_t **value, size_t *value_len);
 
 int gprs_ra_id_equals(const struct gprs_ra_id *id1, const struct gprs_ra_id *id2);
diff --git a/openbsc/src/gprs/gprs_gb_parse.c b/openbsc/src/gprs/gprs_gb_parse.c
index 5ec3cf6..f11d93a 100644
--- a/openbsc/src/gprs/gprs_gb_parse.c
+++ b/openbsc/src/gprs/gprs_gb_parse.c
@@ -38,7 +38,7 @@
 	parse_ctx->llc_msg_name = "ATTACH_REQ";
 
 	/* Skip MS network capability */
-	if (gprs_shift_lv(&data, &data_len, NULL, &value_len) <= 0 ||
+	if (osmo_shift_lv(&data, &data_len, NULL, &value_len) <= 0 ||
 	    value_len < 1 || value_len > 8)
 		/* invalid */
 		return 0;
@@ -46,10 +46,10 @@
 	/* Skip Attach type */
 	/* Skip Ciphering key sequence number */
 	/* Skip DRX parameter */
-	gprs_shift_v_fixed(&data, &data_len, 3, NULL);
+	osmo_shift_v_fixed(&data, &data_len, 3, NULL);
 
 	/* Get Mobile identity */
-	if (gprs_shift_lv(&data, &data_len, &value, &value_len) <= 0 ||
+	if (osmo_shift_lv(&data, &data_len, &value, &value_len) <= 0 ||
 	    value_len < 5 || value_len > 8)
 		/* invalid */
 		return 0;
@@ -61,7 +61,7 @@
 		parse_ctx->imsi_len = value_len;
 	}
 
-	if (gprs_shift_v_fixed(&data, &data_len, 6, &value) <= 0)
+	if (osmo_shift_v_fixed(&data, &data_len, 6, &value) <= 0)
 		return 0;
 
 	parse_ctx->old_raid_enc = value;
@@ -82,21 +82,21 @@
 	/* Skip Periodic RA update timer */
 	/* Skip Radio priority for SMS */
 	/* Skip Spare half octet */
-	gprs_shift_v_fixed(&data, &data_len, 3, NULL);
+	osmo_shift_v_fixed(&data, &data_len, 3, NULL);
 
-	if (gprs_shift_v_fixed(&data, &data_len, 6, &value) <= 0)
+	if (osmo_shift_v_fixed(&data, &data_len, 6, &value) <= 0)
 		return 0;
 
 	parse_ctx->raid_enc = value;
 
 	/* Skip P-TMSI signature (P-TMSI signature, opt, TV, length 4) */
-	gprs_match_tv_fixed(&data, &data_len, GSM48_IE_GMM_PTMSI_SIG, 3, NULL);
+	osmo_match_shift_tv_fixed(&data, &data_len, GSM48_IE_GMM_PTMSI_SIG, 3, NULL);
 
 	/* Skip Negotiated READY timer value (GPRS timer, opt, TV, length 2) */
-	gprs_match_tv_fixed(&data, &data_len, GSM48_IE_GMM_TIMER_READY, 1, NULL);
+	osmo_match_shift_tv_fixed(&data, &data_len, GSM48_IE_GMM_TIMER_READY, 1, NULL);
 
 	/* Allocated P-TMSI (Mobile identity, opt, TLV, length 7) */
-	if (gprs_match_tlv(&data, &data_len, GSM48_IE_GMM_ALLOC_PTMSI,
+	if (osmo_match_shift_tlv(&data, &data_len, GSM48_IE_GMM_ALLOC_PTMSI,
 		      &value, &value_len) > 0 &&
 	    gprs_is_mi_tmsi(value, value_len))
 		parse_ctx->new_ptmsi_enc = value + 1;
@@ -111,7 +111,7 @@
 	parse_ctx->llc_msg_name = "ATTACH_REJ";
 
 	/* GMM cause */
-	if (gprs_shift_v_fixed(&data, &data_len, 1, &value) <= 0)
+	if (osmo_shift_v_fixed(&data, &data_len, 1, &value) <= 0)
 		return 0;
 
 	parse_ctx->invalidate_tlli = 1;
@@ -132,7 +132,7 @@
 
 	/* Skip spare half octet */
 	/* Get Detach type */
-	if (gprs_shift_v_fixed(&data, &data_len, 1, &value) <= 0)
+	if (osmo_shift_v_fixed(&data, &data_len, 1, &value) <= 0)
 		/* invalid */
 		return 0;
 
@@ -150,7 +150,7 @@
 			parse_ctx->invalidate_tlli = 1;
 
 		/* Get P-TMSI (Mobile identity), see GSM 24.008, 9.4.5.2 */
-		if (gprs_match_tlv(&data, &data_len,
+		if (osmo_match_shift_tlv(&data, &data_len,
 			      GSM48_IE_GMM_ALLOC_PTMSI, &value, &value_len) > 0)
 		{
 			if (gprs_is_mi_tmsi(value, value_len))
@@ -170,9 +170,9 @@
 
 	/* Skip Update type */
 	/* Skip GPRS ciphering key sequence number */
-	gprs_shift_v_fixed(&data, &data_len, 1, NULL);
+	osmo_shift_v_fixed(&data, &data_len, 1, NULL);
 
-	if (gprs_shift_v_fixed(&data, &data_len, 6, &value) <= 0)
+	if (osmo_shift_v_fixed(&data, &data_len, 6, &value) <= 0)
 		return 0;
 
 	parse_ctx->old_raid_enc = value;
@@ -190,14 +190,14 @@
 	parse_ctx->llc_msg_name = "RA_UPD_REJ";
 
 	/* GMM cause */
-	if (gprs_shift_v_fixed(&data, &data_len, 1, &value) <= 0)
+	if (osmo_shift_v_fixed(&data, &data_len, 1, &value) <= 0)
 		return 0;
 
 	cause = value[0];
 
 	/* Force to standby, 1/2 */
 	/* spare bits, 1/2 */
-	if (gprs_shift_v_fixed(&data, &data_len, 1, &value) <= 0)
+	if (osmo_shift_v_fixed(&data, &data_len, 1, &value) <= 0)
 		return 0;
 
 	force_standby = (value[0] & 0x07) == 0x01;
@@ -221,18 +221,18 @@
 	/* Skip Force to standby */
 	/* Skip Update result */
 	/* Skip Periodic RA update timer */
-	gprs_shift_v_fixed(&data, &data_len, 2, NULL);
+	osmo_shift_v_fixed(&data, &data_len, 2, NULL);
 
-	if (gprs_shift_v_fixed(&data, &data_len, 6, &value) <= 0)
+	if (osmo_shift_v_fixed(&data, &data_len, 6, &value) <= 0)
 		return 0;
 
 	parse_ctx->raid_enc = value;
 
 	/* Skip P-TMSI signature (P-TMSI signature, opt, TV, length 4) */
-	gprs_match_tv_fixed(&data, &data_len, GSM48_IE_GMM_PTMSI_SIG, 3, NULL);
+	osmo_match_shift_tv_fixed(&data, &data_len, GSM48_IE_GMM_PTMSI_SIG, 3, NULL);
 
 	/* Allocated P-TMSI (Mobile identity, opt, TLV, length 7) */
-	if (gprs_match_tlv(&data, &data_len, GSM48_IE_GMM_ALLOC_PTMSI,
+	if (osmo_match_shift_tlv(&data, &data_len, GSM48_IE_GMM_ALLOC_PTMSI,
 		      &value, &value_len) > 0 &&
 	    gprs_is_mi_tmsi(value, value_len))
 		parse_ctx->new_ptmsi_enc = value + 1;
@@ -252,11 +252,11 @@
 	     "Got P-TMSI Reallocation Command which is not covered by unit tests yet.\n");
 
 	/* Allocated P-TMSI */
-	if (gprs_shift_lv(&data, &data_len, &value, &value_len) > 0 &&
+	if (osmo_shift_lv(&data, &data_len, &value, &value_len) > 0 &&
 	    gprs_is_mi_tmsi(value, value_len))
 		parse_ctx->new_ptmsi_enc = value + 1;
 
-	if (gprs_shift_v_fixed(&data, &data_len, 6, &value) <= 0)
+	if (osmo_shift_v_fixed(&data, &data_len, 6, &value) <= 0)
 		return 0;
 
 	parse_ctx->raid_enc = value;
@@ -273,7 +273,7 @@
 	parse_ctx->llc_msg_name = "ID_RESP";
 
 	/* Mobile identity, Mobile identity 10.5.1.4, M LV 2-10 */
-	if (gprs_shift_lv(&data, &data_len, &value, &value_len) <= 0 ||
+	if (osmo_shift_lv(&data, &data_len, &value, &value_len) <= 0 ||
 	    value_len < 1 || value_len > 9)
 		/* invalid */
 		return 0;
@@ -299,22 +299,22 @@
 
 	/* Skip Requested NSAPI */
 	/* Skip Requested LLC SAPI */
-	gprs_shift_v_fixed(&data, &data_len, 2, NULL);
+	osmo_shift_v_fixed(&data, &data_len, 2, NULL);
 
 	/* Skip Requested QoS (support 04.08 and 24.008) */
-	if (gprs_shift_lv(&data, &data_len, NULL, &value_len) <= 0 ||
+	if (osmo_shift_lv(&data, &data_len, NULL, &value_len) <= 0 ||
 	    value_len < 4 || value_len > 14)
 		/* invalid */
 		return 0;
 
 	/* Skip Requested PDP address */
-	if (gprs_shift_lv(&data, &data_len, NULL, &value_len) <= 0 ||
+	if (osmo_shift_lv(&data, &data_len, NULL, &value_len) <= 0 ||
 	    value_len < 2 || value_len > 18)
 		/* invalid */
 		return 0;
 
 	/* Access point name */
-	old_len = gprs_match_tlv(&data, &data_len,
+	old_len = osmo_match_shift_tlv(&data, &data_len,
 			    GSM48_IE_GSM_APN, &value, &value_len);
 
 	if (old_len > 0 && value_len >=1 && value_len <= 100) {
@@ -332,7 +332,7 @@
 	uint8_t pdisc;
 	uint8_t msg_type;
 
-	if (gprs_shift_v_fixed(&data, &data_len, sizeof(*g48h), (uint8_t **)&g48h) <= 0)
+	if (osmo_shift_v_fixed(&data, &data_len, sizeof(*g48h), (uint8_t **)&g48h) <= 0)
 		return 0;
 
 	parse_ctx->g48_hdr = g48h;
diff --git a/openbsc/src/gprs/gprs_utils.c b/openbsc/src/gprs/gprs_utils.c
index 64bfd74..7ed8c3f 100644
--- a/openbsc/src/gprs/gprs_utils.c
+++ b/openbsc/src/gprs/gprs_utils.c
@@ -268,8 +268,15 @@
 
 /* TODO: Move shift functions to libosmocore */
 
-int gprs_shift_v_fixed(uint8_t **data, size_t *data_len,
-		  size_t len, uint8_t **value)
+/*! Advance the data pointer, subtract length and assign value pointer
+ *  \param data pointer to the pointer to data
+ *  \param data_len pointer to size_t containing \arg data length
+ *  \param[in] len the length that we expect the fixed IE to hav
+ *  \param[out] value pointer to pointer of value part of IE
+ *  \returns length of IE value; negative in case of error
+ */
+int osmo_shift_v_fixed(uint8_t **data, size_t *data_len,
+			size_t len, uint8_t **value)
 {
 	if (len > *data_len)
 		goto fail;
@@ -288,9 +295,17 @@
 	return -1;
 }
 
-int gprs_match_tv_fixed(uint8_t **data, size_t *data_len,
-		   uint8_t tag, size_t len,
-		   uint8_t **value)
+/*! Match tag, check length and assign value pointer
+ *  \param data pointer to the pointer to data
+ *  \param data_len pointer to size_t containing \arg data length
+ *  \param[in] tag the tag (IEI) that we expect at \arg data
+ *  \param[in] len the length that we expect the fixed IE to have
+ *  \param[out] value pointer to pointer of value part of IE
+ *  \returns length of IE value; negative in case of error
+ */
+int osmo_match_shift_tv_fixed(uint8_t **data, size_t *data_len,
+			      uint8_t tag, size_t len,
+			      uint8_t **value)
 {
 	size_t ie_len;
 
@@ -318,15 +333,24 @@
 	return -1;
 }
 
-int gprs_match_tlv(uint8_t **data, size_t *data_len,
-	      uint8_t expected_tag, uint8_t **value, size_t *value_len)
+/*! Verify TLV header and advance data / subtract length
+ *  \param data pointer to the pointer to data
+ *  \param data_len pointer to size_t containing \arg data length
+ *  \param[in] expected_tag the tag (IEI) that we expect at \arg data
+ *  \param[out] value pointer to pointer of value part of IE
+ *  \param[out] value_len pointer to length of \arg value
+ *  \returns length of IE value; negative in case of error
+ */
+int osmo_match_shift_tlv(uint8_t **data, size_t *data_len,
+			 uint8_t expected_tag, uint8_t **value,
+			 size_t *value_len)
 {
 	int rc;
 	uint8_t tag;
 	uint8_t *old_data = *data;
 	size_t old_data_len = *data_len;
 
-	rc = gprs_shift_tlv(data, data_len, &tag, value, value_len);
+	rc = osmo_shift_tlv(data, data_len, &tag, value, value_len);
 
 	if (rc > 0 && tag != expected_tag) {
 		*data = old_data;
@@ -337,7 +361,15 @@
 	return rc;
 }
 
-int gprs_shift_tlv(uint8_t **data, size_t *data_len,
+/*! Extract TLV and advance data pointer + subtract length
+ *  \param data pointer to the pointer to data
+ *  \param data_len  pointer to size_t containing \arg data lengt
+ *  \param[out] tag extract the tag (IEI) at start of \arg data
+ *  \param[out] value extracted pointer to value part of TLV
+ *  \param[out] value_len extracted length of \arg value
+ *  \returns number of bytes subtracted
+ */
+int osmo_shift_tlv(uint8_t **data, size_t *data_len,
 	      uint8_t *tag, uint8_t **value, size_t *value_len)
 {
 	size_t len;
@@ -370,8 +402,15 @@
 	return -1;
 }
 
-int gprs_shift_lv(uint8_t **data, size_t *data_len,
-	     uint8_t **value, size_t *value_len)
+/*! Extract LV and advance data pointer + subtract length
+ *  \param data pointer to the pointer to data
+ *  \param data_len  pointer to size_t containing \arg data lengt
+ *  \param[out] value extracted pointer to value part of TLV
+ *  \param[out] value_len extracted length of \arg value
+ *  \returns number of bytes subtracted
+ */
+int osmo_shift_lv(uint8_t **data, size_t *data_len,
+		  uint8_t **value, size_t *value_len)
 {
 	size_t len;
 	size_t ie_len;
diff --git a/openbsc/src/gprs/oap_messages.c b/openbsc/src/gprs/oap_messages.c
index eb52053..49b54e4 100644
--- a/openbsc/src/gprs/oap_messages.c
+++ b/openbsc/src/gprs/oap_messages.c
@@ -48,7 +48,7 @@
 	memset(oap_msg, 0, sizeof(*oap_msg));
 
 	/* message type */
-	rc = gprs_shift_v_fixed(&data, &data_len, 1, &value);
+	rc = osmo_shift_v_fixed(&data, &data_len, 1, &value);
 	if (rc < 0)
 		return -GMM_CAUSE_INV_MAND_INFO;
 	oap_msg->message_type = decode_big_endian(value, 1);
@@ -57,7 +57,7 @@
 	while (data_len > 0) {
 		enum oap_iei iei;
 
-		rc = gprs_shift_tlv(&data, &data_len, &tag, &value, &value_len);
+		rc = osmo_shift_tlv(&data, &data_len, &tag, &value, &value_len);
 		if (rc < 0)
 			return -GMM_CAUSE_PROTO_ERR_UNSPEC;
 
diff --git a/openbsc/src/gprs/osmo_gsup_messages.c b/openbsc/src/gprs/osmo_gsup_messages.c
index 00ada5b..94eae35 100644
--- a/openbsc/src/gprs/osmo_gsup_messages.c
+++ b/openbsc/src/gprs/osmo_gsup_messages.c
@@ -26,7 +26,7 @@
 #include <openbsc/osmo_gsup_messages.h>
 
 #include <openbsc/debug.h>
-//#include <openbsc/gprs_utils.h>
+#include <openbsc/gprs_utils.h>
 #include <openbsc/utils.h>
 
 #include <osmocom/gsm/tlv.h>
@@ -47,7 +47,7 @@
 	while (data_len > 0) {
 		enum osmo_gsup_iei iei;
 
-		rc = gprs_shift_tlv(&data, &data_len, &tag, &value, &value_len);
+		rc = osmo_shift_tlv(&data, &data_len, &tag, &value, &value_len);
 		if (rc < 0)
 			return -GMM_CAUSE_PROTO_ERR_UNSPEC;
 
@@ -94,7 +94,7 @@
 
 	/* specific parts */
 	while (data_len > 0) {
-		rc = gprs_shift_tlv(&data, &data_len, &tag, &value, &value_len);
+		rc = osmo_shift_tlv(&data, &data_len, &tag, &value, &value_len);
 		if (rc < 0)
 			return -GMM_CAUSE_PROTO_ERR_UNSPEC;
 
@@ -157,13 +157,13 @@
 	*gsup_msg = empty_gsup_message;
 
 	/* generic part */
-	rc = gprs_shift_v_fixed(&data, &data_len, 1, &value);
+	rc = osmo_shift_v_fixed(&data, &data_len, 1, &value);
 	if (rc < 0)
 		return -GMM_CAUSE_INV_MAND_INFO;
 
 	gsup_msg->message_type = decode_big_endian(value, 1);
 
-	rc = gprs_match_tlv(&data, &data_len, OSMO_GSUP_IMSI_IE,
+	rc = osmo_match_shift_tlv(&data, &data_len, OSMO_GSUP_IMSI_IE,
 			    &value, &value_len);
 
 	if (rc <= 0)
@@ -187,7 +187,7 @@
 		struct osmo_gsup_pdp_info pdp_info;
 		struct osmo_auth_vector auth_info;
 
-		rc = gprs_shift_tlv(&data, &data_len, &tag, &value, &value_len);
+		rc = osmo_shift_tlv(&data, &data_len, &tag, &value, &value_len);
 		if (rc < 0)
 			return -GMM_CAUSE_PROTO_ERR_UNSPEC;