blob: b6efb5e96bed03228a79f59cf99f4e6c599eec68 [file] [log] [blame]
Sylvain Munaut12ba7782014-06-16 10:13:40 +02001#pragma once
Alex Badeaab1246e2010-11-27 23:35:08 +02002
3#include <stdint.h>
4
Holger Hans Peter Freythera1e8bf72010-12-29 12:00:01 +01005/* GSM TS 03.41 definitions also TS 23.041*/
Alex Badeaab1246e2010-11-27 23:35:08 +02006
7/* Chapter 9.3.2 */
8struct gsm341_ms_message {
9 struct {
10 uint8_t code_hi:6;
11 uint8_t gs:2;
Holger Hans Peter Freythera1e8bf72010-12-29 12:00:01 +010012 uint8_t update:4;
13 uint8_t code_lo:4;
Alex Badeaab1246e2010-11-27 23:35:08 +020014 } serial;
15 uint16_t msg_id;
16 struct {
17 uint8_t language:4;
18 uint8_t group:4;
19 } dcs;
20 struct {
21 uint8_t total:4;
22 uint8_t current:4;
23 } page;
24 uint8_t data[0];
25} __attribute__((packed));
26
Holger Hans Peter Freyther9c559142010-12-29 21:14:20 +010027/* Chapter 9.4.1.3 */
28struct gsm341_etws_message {
29 struct {
30 uint8_t code_hi:4;
31 uint8_t popup:1;
32 uint8_t alert:1;
33 uint8_t gs:2;
34 uint8_t update:4;
35 uint8_t code_lo:4;
36 } serial;
37 uint16_t msg_id;
38 uint16_t warning_type;
39 uint8_t data[0];
40} __attribute__((packed));
41
Alex Badead126ab92011-01-15 19:43:42 +020042#define GSM341_MSG_CODE(ms) ((ms)->serial.code_lo | ((ms)->serial.code_hi << 4))
Holger Hans Peter Freythere05c7df2010-12-29 11:57:48 +010043
Alex Badeaab1246e2010-11-27 23:35:08 +020044/* Section 9.3.2.1 - Geographical Scope */
45#define GSM341_GS_CELL_WIDE_IMMED 0
46#define GSM341_GS_PLMN_WIDE 1
47#define GSM341_GS_LA_WIDE 2
48#define GSM341_GS_CELL_WIDE 3