Neels Hofmeyr | 17518fe | 2017-06-20 04:35:06 +0200 | [diff] [blame] | 1 | /*! \file gsm_04_12.h |
| 2 | * GSM TS 04.12 definitions for Short Message Service Cell Broadcast. */ |
| 3 | |
Sylvain Munaut | 12ba778 | 2014-06-16 10:13:40 +0200 | [diff] [blame] | 4 | #pragma once |
Holger Hans Peter Freyther | 0d60aa2 | 2010-07-21 05:02:33 +0800 | [diff] [blame] | 5 | |
| 6 | #include <stdint.h> |
| 7 | |
Harald Welte | 61ced83 | 2014-12-30 13:18:26 +0100 | [diff] [blame] | 8 | #define GSM412_MSG_LEN 88 /* TS 04.12 Section 3.1 */ |
| 9 | #define GSM412_BLOCK_LEN 22 /* TS 04.12 Section 3.1 */ |
| 10 | |
Holger Hans Peter Freyther | 0d60aa2 | 2010-07-21 05:02:33 +0800 | [diff] [blame] | 11 | #define GSM412_SEQ_FST_BLOCK 0x0 |
| 12 | #define GSM412_SEQ_SND_BLOCK 0x1 |
| 13 | #define GSM412_SEQ_TRD_BLOCK 0x2 |
| 14 | #define GSM412_SEQ_FTH_BLOCK 0x3 |
| 15 | #define GSM412_SEQ_FST_SCHED_BLOCK 0x8 |
Alex Badea | 3ba0a2b | 2010-11-27 20:00:39 +0200 | [diff] [blame] | 16 | #define GSM412_SEQ_NULL_MSG 0xf |
Holger Hans Peter Freyther | 0d60aa2 | 2010-07-21 05:02:33 +0800 | [diff] [blame] | 17 | |
| 18 | struct gsm412_block_type { |
| 19 | uint8_t seq_nr : 4, |
| 20 | lb : 1, |
| 21 | lpd : 2, |
| 22 | spare : 1; |
| 23 | } __attribute__((packed)); |
| 24 | |
Alex Badea | 3ba0a2b | 2010-11-27 20:00:39 +0200 | [diff] [blame] | 25 | struct gsm412_sched_msg { |
Holger Hans Peter Freyther | 0d60aa2 | 2010-07-21 05:02:33 +0800 | [diff] [blame] | 26 | uint8_t beg_slot_nr : 6, |
| 27 | type : 2; |
| 28 | uint8_t end_slot_nr : 6, |
| 29 | spare1 : 1, spare2: 1; |
| 30 | uint8_t cbsms_msg_map[6]; |
| 31 | uint8_t data[0]; |
| 32 | } __attribute__((packed)); |