libosmogsm  1.10.0.65-d581.202502092026
Osmocom GSM library
gsm_04_12.h
Go to the documentation of this file.
1 
4 #pragma once
5 
6 #include <stdint.h>
7 #include <osmocom/core/endian.h>
8 
9 #define GSM412_MSG_LEN 88 /* TS 04.12 Section 3.1 */
10 #define GSM412_BLOCK_LEN 22 /* TS 04.12 Section 3.1 */
11 
12 #define GSM412_SEQ_FST_BLOCK 0x0
13 #define GSM412_SEQ_SND_BLOCK 0x1
14 #define GSM412_SEQ_TRD_BLOCK 0x2
15 #define GSM412_SEQ_FTH_BLOCK 0x3
16 #define GSM412_SEQ_FST_SCHED_BLOCK 0x8
17 #define GSM412_SEQ_NULL_MSG 0xf
18 
20 #if OSMO_IS_LITTLE_ENDIAN
21  uint8_t seq_nr : 4,
22  lb : 1,
23  lpd : 2,
24  spare : 1;
25 #elif OSMO_IS_BIG_ENDIAN
26 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianness.py) */
27  uint8_t spare:1, lpd:2, lb:1, seq_nr:4;
28 #endif
29 } __attribute__((packed));
30 
32 #if OSMO_IS_LITTLE_ENDIAN
33  uint8_t beg_slot_nr : 6,
34  type : 2;
35  uint8_t end_slot_nr : 6,
36  spare1 : 1, spare2: 1;
37  uint8_t cbsms_msg_map[6];
38  uint8_t data[0];
39 #elif OSMO_IS_BIG_ENDIAN
40 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianness.py) */
41  uint8_t type:2, beg_slot_nr:6;
42  uint8_t spare2:1, spare1:1, end_slot_nr:6;
43  uint8_t cbsms_msg_map[6];
44  uint8_t data[0];
45 #endif
46 } __attribute__((packed));
struct gsm412_block_type __attribute__((packed))
uint8_t data[0]
uint8_t type
Definition: gsm_04_08_gprs.h:7
Definition: gsm_04_12.h:19
Definition: gsm_04_12.h:31