e1_input: Support I.460 timeslot type

Unlike the legacy TRAU mode, this only adds I460 mux/demux,
without any TRAU frame synchronization.  The user must still be
adding the actual sub-channels using osmo_i460_subchan_add()
depending on his requirements.

Change-Id: I44da6dfec77ef475adb35001a0e4fa11d549aa02
diff --git a/include/osmocom/abis/e1_input.h b/include/osmocom/abis/e1_input.h
index 44708bb..9b99f12 100644
--- a/include/osmocom/abis/e1_input.h
+++ b/include/osmocom/abis/e1_input.h
@@ -9,6 +9,7 @@
 #include <osmocom/core/timer.h>
 #include <osmocom/core/msgb.h>
 #include <osmocom/core/select.h>
+#include <osmocom/gsm/i460_mux.h>
 #include <osmocom/abis/subchan_demux.h>
 #include <osmocom/abis/lapd.h>
 
@@ -73,9 +74,10 @@
 	E1INP_TS_TYPE_TRAU,
 	E1INP_TS_TYPE_RAW,
 	E1INP_TS_TYPE_HDLC,
+	E1INP_TS_TYPE_I460,
 };
 const char *e1inp_tstype_name(enum e1inp_ts_type tp);
-extern const struct value_string e1inp_ts_type_names[6];
+extern const struct value_string e1inp_ts_type_names[];
 
 /* A timeslot in the E1 interface */
 struct e1inp_ts {
@@ -115,6 +117,9 @@
 			/* queue of pending to-be-transmitted msgbs */
 			struct llist_head tx_queue;
 		} hdlc;
+		struct {
+			struct osmo_i460_timeslot i460_ts;
+		} i460;
 	};
 	union {
 		struct {