diff gsm-fw/L1/cfile/tch_feature.c @ 1005:908566db1538

gsm-fw feature tch-reroute: init and config fleshed out
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Sun, 20 Mar 2016 18:50:54 +0000
parents 9b147d0b2cab
children 3bfeee466b0a
line wrap: on
line diff
--- a/gsm-fw/L1/cfile/tch_feature.c	Sat Mar 19 07:01:54 2016 +0000
+++ b/gsm-fw/L1/cfile/tch_feature.c	Sun Mar 20 18:50:54 2016 +0000
@@ -13,13 +13,43 @@
 T_RVT_USER_ID tch_reroute_rvt_id;
 BOOL tch_reroute_downlink;
 
+static void handle_tch_config_reg(T_RVT_BUFFER pkt)
+{
+	UWORD8 config;
+	T_RVT_BUFFER buf;
+	T_RVT_RET rc;
+
+	config = pkt[1] & 0x01;
+	tch_reroute_downlink = config;
+
+	/* send TCH_CONFIG_CONF response */
+	rc = rvt_mem_alloc(tch_reroute_rvt_id, 2, &buf);
+	if (rc == RVT_OK) {
+		buf[0] = TCH_CONFIG_CONF;
+		buf[1] = config;
+		rvt_send_trace_no_cpy(buf, tch_reroute_rvt_id, 2,
+					RVT_BINARY_FORMAT);
+	}
+}
+
 /*
  * The following function is the callback registered with RVT; it gets
  * called in RVT HISR context.
  */
 static void tch_rvt_input_callback(T_RVT_BUFFER pkt, UINT16 pktlen)
 {
-	/* guts to be filled */
+	if (pktlen < 1)
+		return;
+	switch (pkt[0]) {
+	case TCH_CONFIG_REQ:
+		if (pktlen != 2)
+			return;
+		handle_tch_config_reg(pkt);
+		break;
+	case TCH_ULBITS_REQ:
+		/* to be filled */
+		break;
+	}
 }
 
 void feature_tch_reroute_init()