bsc_api: Move gsm48_rcvmsg into the BSC API and dispatch.

The next step in the way to the BSC API. We have a clear a
new connection was opened signal now... and the MSC could
use it...
diff --git a/openbsc/include/openbsc/bsc_api.h b/openbsc/include/openbsc/bsc_api.h
index 7747ada..e92da21 100644
--- a/openbsc/include/openbsc/bsc_api.h
+++ b/openbsc/include/openbsc/bsc_api.h
@@ -5,12 +5,16 @@
 
 #include "gsm_data.h"
 
+#define BSC_API_CONN_POL_ACCEPT	0
+#define BSC_API_CONN_POL_REJECT	1
+
 struct bsc_api {
 	void (*sapi_n_reject)(struct gsm_subscriber_connection *conn, int dlci);
 	void (*cipher_mode_compl)(struct gsm_subscriber_connection *conn,
 				  struct msgb *msg, uint16_t ind);
-	void (*compl_l3)(struct gsm_subscriber_connection *conn,
-			 struct msgb *msg, uint16_t chosen_channel); 
+	int (*compl_l3)(struct gsm_subscriber_connection *conn,
+			struct msgb *msg, uint16_t chosen_channel); 
+	void (*dtap)(struct gsm_subscriber_connection *conn, struct msgb *msg);
 	void (*ass_compl)(struct gsm_subscriber_connection *conn,
 			  uint16_t rr_cause);
 	void (*ass_fail)(struct gsm_subscriber_connection *conn,
diff --git a/openbsc/include/openbsc/gsm_04_08.h b/openbsc/include/openbsc/gsm_04_08.h
index 11bca54..3fbc35f 100644
--- a/openbsc/include/openbsc/gsm_04_08.h
+++ b/openbsc/include/openbsc/gsm_04_08.h
@@ -25,6 +25,7 @@
 /* config options controlling the behaviour of the lower leves */
 void gsm0408_allow_everyone(int allow);
 void gsm0408_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause);
+int gsm0408_dispatch(struct gsm_subscriber_connection *conn, struct msgb *msg);
 
 int gsm0408_rcvmsg(struct msgb *msg, u_int8_t link_id);
 enum gsm_chan_t get_ctype_by_chreq(struct gsm_bts *bts, u_int8_t ra, int neci);
diff --git a/openbsc/include/openbsc/gsm_04_11.h b/openbsc/include/openbsc/gsm_04_11.h
index 61eaffd..d62a392 100644
--- a/openbsc/include/openbsc/gsm_04_11.h
+++ b/openbsc/include/openbsc/gsm_04_11.h
@@ -25,7 +25,7 @@
 
 struct msgb;
 
-int gsm0411_rcv_sms(struct gsm_subscriber_connection *conn, struct msgb *msg, u_int8_t link_id);
+int gsm0411_rcv_sms(struct gsm_subscriber_connection *conn, struct msgb *msg);
 
 struct gsm_sms *sms_alloc(void);
 void sms_free(struct gsm_sms *sms);
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index f3f4ed3..bb790bc 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -254,6 +254,7 @@
 	int silent_call;
 
 	/* back pointers */
+	int allocated;
 	struct gsm_lchan *lchan;
 	struct gsm_bts *bts;
 };