From 5e924a31a0b6c73f297a61a1e4cb8b40b6f2946c Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 23 Jun 2011 15:04:47 +0200 Subject: 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. --- include/osmocom/core/prim.h | 18 ++++++++++++++++++ include/osmocom/gsm/Makefile.am | 2 +- include/osmocom/gsm/prim.h | 13 +++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 include/osmocom/gsm/prim.h 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 +#include 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 + +/* enumeration of GSM related SAPs */ +enum osmo_gsm_sap { + SAP_GSM_PH = _SAP_GSM_BASE, + SAP_GSM_DL, + SAP_GSM_MDL, +}; + +#endif -- cgit v1.2.3