libosmogsm 1.13.1.1-afb4 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
19 struct gsm412_block_type {
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
31 struct gsm412_sched_msg {
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));
endian.h
__attribute__
struct gsm412_block_type __attribute__((packed))
data
uint8_t data[0]
type
uint8_t type
Definition: gsm_04_08_gprs.h:7
gsm412_block_type
Definition: gsm_04_12.h:19
gsm412_sched_msg
Definition: gsm_04_12.h:31