libosmogsm
1.11.0.26-c59d.202505152026
Osmocom GSM library
Loading...
Searching...
No Matches
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
data
uint8_t data[0]
Definition
gsm_03_41.h:16
type
uint8_t type
Definition
gsm_08_08.h:0
__attribute__
enum gsmtap_um_voice_type __attribute__
gsm412_block_type
Definition
gsm_04_12.h:19
gsm412_sched_msg
Definition
gsm_04_12.h:31
include
osmocom
gsm
protocol
gsm_04_12.h
Generated by
1.9.8