change GSM48_CMSERV_* to enum type, add names

Prepare handling multiple CM Service Requests in osmo-msc: an enum is more
clear than an int and #defines for passing around and count CM Service types.

Change-Id: I9c2a7adc45ab7a1a7519168e965e7d805e1481ff
diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h
index 791fbd4..86b5f6f 100644
--- a/include/osmocom/gsm/protocol/gsm_04_08.h
+++ b/include/osmocom/gsm/protocol/gsm_04_08.h
@@ -1631,13 +1631,20 @@
 /* FIXME: Table 10.4 / 10.4a (GPRS) */
 
 /* Section 10.5.3.3 CM service type */
-#define GSM48_CMSERV_MO_CALL_PACKET	1
-#define GSM48_CMSERV_EMERGENCY		2
-#define GSM48_CMSERV_SMS		4
-#define GSM48_CMSERV_SUP_SERV		8
-#define GSM48_CMSERV_VGCS		9
-#define GSM48_CMSERV_VBS		10
-#define GSM48_CMSERV_LOC_SERV		11
+enum osmo_cm_service_type {
+	GSM48_CMSERV_MO_CALL_PACKET	= 1,
+	GSM48_CMSERV_EMERGENCY		= 2,
+	GSM48_CMSERV_SMS		= 4,
+	GSM48_CMSERV_SUP_SERV		= 8,
+	GSM48_CMSERV_VGCS		= 9,
+	GSM48_CMSERV_VBS		= 10,
+	GSM48_CMSERV_LOC_SERV		= 11,
+	GSM48_CMSERV_MAX_VAL		= GSM48_CMSERV_LOC_SERV
+};
+
+extern const struct value_string osmo_cm_service_type_names[];
+static inline const char *osmo_cm_service_type_name(enum osmo_cm_service_type val)
+{ return get_value_string(osmo_cm_service_type_names, val); }
 
 /* Section 10.5.2.26, Table 10.5.64 */
 #define GSM48_PM_MASK		0x03