initial skeleton

Change-Id: I706aa9e11a646aad71bb310fa552d0bdb5084d4b
diff --git a/include/Makefile.am b/include/Makefile.am
new file mode 100644
index 0000000..fa499e7
--- /dev/null
+++ b/include/Makefile.am
@@ -0,0 +1,6 @@
+SUBDIRS = \
+	osmocom \
+	$(NULL)
+
+noinst_HEADERS = \
+	$(NULL)
diff --git a/include/osmocom/Makefile.am b/include/osmocom/Makefile.am
new file mode 100644
index 0000000..923cb50
--- /dev/null
+++ b/include/osmocom/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = \
+	smlc \
+	$(NULL)
diff --git a/include/osmocom/smlc/Makefile.am b/include/osmocom/smlc/Makefile.am
new file mode 100644
index 0000000..599651d
--- /dev/null
+++ b/include/osmocom/smlc/Makefile.am
@@ -0,0 +1,4 @@
+noinst_HEADERS = \
+	smlc_data.h \
+	smlc_sigtran.h \
+	$(NULL)
diff --git a/include/osmocom/smlc/smlc_data.h b/include/osmocom/smlc/smlc_data.h
new file mode 100644
index 0000000..2506fdc
--- /dev/null
+++ b/include/osmocom/smlc/smlc_data.h
@@ -0,0 +1,37 @@
+#pragma once
+
+#include <osmocom/core/linuxlist.h>
+#include <osmocom/core/logging.h>
+#include <osmocom/core/rate_ctr.h>
+#include <osmocom/core/stat_item.h>
+#include <osmocom/core/tdef.h>
+
+#include <osmocom/ctrl/control_if.h>
+
+#include <osmocom/sigtran/sccp_sap.h>
+
+struct smlc_state {
+	struct osmo_sccp_user *sccp_user;
+	struct ctrl_handle *ctrl;
+
+	struct rate_ctr_group *ctrs;
+	struct osmo_stat_item_group *statg;
+	struct osmo_tdef *T_defs;
+};
+
+extern struct smlc_state *g_smlc;
+
+
+enum {
+	DSMLC,
+	DLB,		/* Lb interface */
+};
+
+
+int smlc_ctrl_node_lookup(void *data, vector vline, int *node_type,
+			  void **node_data, int *i);
+
+enum smlc_ctrl_node {
+	CTRL_NODE_SMLC = _LAST_CTRL_NODE,
+	_LAST_CTRL_NODE_SMLC
+};
diff --git a/include/osmocom/smlc/smlc_sigtran.h b/include/osmocom/smlc/smlc_sigtran.h
new file mode 100644
index 0000000..aeaf2c5
--- /dev/null
+++ b/include/osmocom/smlc/smlc_sigtran.h
@@ -0,0 +1,3 @@
+#pragma once
+
+int smlc_sigtran_init(void);