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