aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-06-23 15:04:47 +0200
committerHarald Welte <laforge@gnumonks.org>2011-06-23 15:04:47 +0200
commit5e924a31a0b6c73f297a61a1e4cb8b40b6f2946c (patch)
treef9ca1e02e196e2a7e0b556fa45fbd95bfbbd0904 /include
parent9b21e88367eea8cdf200cf06fae99dec06e712a7 (diff)
introduce GSM primitive definitions
The idea here is to use the osmocom core primitive code ot abstract out primitives for inter-layer comunication in GSM.
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/core/prim.h18
-rw-r--r--include/osmocom/gsm/Makefile.am2
-rw-r--r--include/osmocom/gsm/prim.h13
3 files changed, 32 insertions, 1 deletions
diff --git a/include/osmocom/core/prim.h b/include/osmocom/core/prim.h
index 5494f3c3..e892c62c 100644
--- a/include/osmocom/core/prim.h
+++ b/include/osmocom/core/prim.h
@@ -2,6 +2,7 @@
#define OSMO_PRIMITIVE_H
#include <stdint.h>
+#include <osmocom/core/msgb.h>
enum osmo_prim_operation {
PRIM_OP_REQUEST,
@@ -10,6 +11,11 @@ enum osmo_prim_operation {
PRIM_OP_CONFIRM,
};
+#define _SAP_GSM_SHIFT 24
+
+#define _SAP_GSM_BASE (0x01 << _SAP_GSM_SHIFT)
+#define _SAP_TETRA_BASE (0x02 << _SAP_GSM_SHIFT)
+
struct osmo_prim_hdr {
unsigned int sap;
unsigned int primitive;
@@ -17,4 +23,16 @@ struct osmo_prim_hdr {
struct msgb *msg; /* message containing associated data */
};
+static inline void
+osmo_prim_init(struct osmo_prim_hdr *oph, unsigned int sap,
+ unsigned int primitive, enum osmo_prim_operation operation,
+ struct msgb *msg)
+{
+ oph->sap = sap;
+ oph->primitive = primitive;
+ oph->operation = operation;
+ oph->msg = msg;
+}
+
+typedef int (*osmo_prim_cb)(struct osmo_prim_hdr *oph, void *ctx);
#endif
diff --git a/include/osmocom/gsm/Makefile.am b/include/osmocom/gsm/Makefile.am
index 547933ec..aa7b1a9a 100644
--- a/include/osmocom/gsm/Makefile.am
+++ b/include/osmocom/gsm/Makefile.am
@@ -1,6 +1,6 @@
osmogsm_HEADERS = a5.h comp128.h gsm0808.h gsm48_ie.h mncc.h rxlev_stat.h \
gsm0480.h gsm48.h gsm_utils.h rsl.h tlv.h abis_nm.h \
- sysinfo.h
+ sysinfo.h prim.h
SUBDIRS = protocol
diff --git a/include/osmocom/gsm/prim.h b/include/osmocom/gsm/prim.h
new file mode 100644
index 00000000..95cbb120
--- /dev/null
+++ b/include/osmocom/gsm/prim.h
@@ -0,0 +1,13 @@
+#ifndef OSMO_GSM_PRIM_H
+#define OSMO_GSM_PRIM_H
+
+#include <osmocom/core/prim.h>
+
+/* enumeration of GSM related SAPs */
+enum osmo_gsm_sap {
+ SAP_GSM_PH = _SAP_GSM_BASE,
+ SAP_GSM_DL,
+ SAP_GSM_MDL,
+};
+
+#endif