summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Badea <vamposdecampos@gmail.com>2010-11-27 23:35:08 +0200
committerSylvain Munaut <tnt@246tNt.com>2010-11-28 15:08:32 +0100
commitab1246e0b5ffa0ac8d7b8e8fbe7c51bc22c8e751 (patch)
tree894d04e6c609f700185a9a40d42369614d780988
parent8493018f2472b6aca5ae163aa25b7f198ac82a9d (diff)
protocol: introduce gsm_03_41.h
This currently contains definitions for the BTS->MS SMSCB message. Signed-off-by: Alex Badea <vamposdecampos@gmail.com>
-rw-r--r--include/osmocore/protocol/Makefile.am6
-rw-r--r--include/osmocore/protocol/gsm_03_41.h34
2 files changed, 38 insertions, 2 deletions
diff --git a/include/osmocore/protocol/Makefile.am b/include/osmocore/protocol/Makefile.am
index 5df9fe74..03a4849d 100644
--- a/include/osmocore/protocol/Makefile.am
+++ b/include/osmocore/protocol/Makefile.am
@@ -1,4 +1,6 @@
-osmocore_proto_HEADERS = gsm_04_08.h gsm_04_11.h gsm_04_80.h gsm_08_58.h \
- gsm_12_21.h gsm_08_08.h gsm_04_12.h
+osmocore_proto_HEADERS = gsm_03_41.h \
+ gsm_04_08.h gsm_04_11.h gsm_04_12.h gsm_04_80.h \
+ gsm_08_08.h gsm_08_58.h \
+ gsm_12_21.h
osmocore_protodir = $(includedir)/osmocore/protocol
diff --git a/include/osmocore/protocol/gsm_03_41.h b/include/osmocore/protocol/gsm_03_41.h
new file mode 100644
index 00000000..250d6675
--- /dev/null
+++ b/include/osmocore/protocol/gsm_03_41.h
@@ -0,0 +1,34 @@
+#ifndef PROTO_GSM_03_41_H
+#define PROTO_GSM_03_41_H
+
+#include <stdint.h>
+
+/* GSM TS 03.41 definitions */
+
+/* Chapter 9.3.2 */
+struct gsm341_ms_message {
+ struct {
+ uint8_t code_hi:6;
+ uint8_t gs:2;
+ uint8_t update:2;
+ uint8_t code_lo:6;
+ } serial;
+ uint16_t msg_id;
+ struct {
+ uint8_t language:4;
+ uint8_t group:4;
+ } dcs;
+ struct {
+ uint8_t total:4;
+ uint8_t current:4;
+ } page;
+ uint8_t data[0];
+} __attribute__((packed));
+
+/* Section 9.3.2.1 - Geographical Scope */
+#define GSM341_GS_CELL_WIDE_IMMED 0
+#define GSM341_GS_PLMN_WIDE 1
+#define GSM341_GS_LA_WIDE 2
+#define GSM341_GS_CELL_WIDE 3
+
+#endif /* PROTO_GSM_03_41_H */