11 #ifndef OSMO_IS_LITTLE_ENDIAN
12 #define OSMO_IS_LITTLE_ENDIAN 0
15 #define GSM341_MAX_PAYLOAD (GSM412_MSG_LEN-sizeof(struct gsm341_ms_message))
16 #define GSM341_MAX_CHARS (GSM341_MAX_PAYLOAD*8/7)
17 #define GSM341_7BIT_PADDING '\r'
22 #if OSMO_IS_LITTLE_ENDIAN
27 #elif OSMO_IS_BIG_ENDIAN
29 uint8_t gs:2, code_hi:6;
30 uint8_t code_lo:4, update:4;
35 #if OSMO_IS_LITTLE_ENDIAN
38 #elif OSMO_IS_BIG_ENDIAN
40 uint8_t group:4, language:4;
44 #if OSMO_IS_LITTLE_ENDIAN
47 #elif OSMO_IS_BIG_ENDIAN
49 uint8_t current:4, total:4;
58 #if OSMO_IS_LITTLE_ENDIAN
65 #elif OSMO_IS_BIG_ENDIAN
67 uint8_t gs:2, alert:1, popup:1, code_hi:4;
68 uint8_t code_lo:4, update:4;
76 #define GSM341_MSG_CODE(ms) ((ms)->serial.code_lo | ((ms)->serial.code_hi << 4))
79 #define GSM341_GS_CELL_WIDE_IMMED 0
80 #define GSM341_GS_PLMN_WIDE 1
81 #define GSM341_GS_LA_WIDE 2
82 #define GSM341_GS_CELL_WIDE 3
85 #define GSM341_MSGID_EOTD_ASSISTANCE 0x03E8
86 #define GSM341_MSGID_DGPS_CORRECTION 0x03E9
87 #define GSM341_MSGID_DGPS_EPH_CLOCK_COR 0x03EA
88 #define GSM341_MSGID_GPS_ALMANAC_OTHER 0x03EB
89 #define GSM341_MSGID_ETWS_EARTHQUAKE 0x1100
90 #define GSM341_MSGID_ETWS_TSUNAMI 0x1101
91 #define GSM341_MSGID_ETWS_QUAKE_AND_TSUNAMI 0x1102
92 #define GSM341_MSGID_ETWS_TEST 0x1103
93 #define GSM341_MSGID_ETWS_OTHER 0x1104
94 #define GSM341_MSGID_ETWS_CMAS_PRESIDENTIAL 0x1112
95 #define GSM341_MSGID_ETWS_CMAS_EXTREME_IMM_OBSERVED 0x1113
96 #define GSM341_MSGID_ETWS_CMAS_EXTREME_IMM_LIKELY 0x1114
97 #define GSM341_MSGID_ETWS_CMAS_EXTREME_EXP_OBSERVED 0x1115
98 #define GSM341_MSGID_ETWS_CMAS_EXTREME_EXP_LIKELY 0x1116
99 #define GSM341_MSGID_ETWS_CMAS_SEVERE_IMM_OBSERVED 0x1117
100 #define GSM341_MSGID_ETWS_CMAS_SEVERE_IMM_LIKELY 0x1118
101 #define GSM341_MSGID_ETWS_CMAS_SEVERE_EXP_OBSERVED 0x1119
102 #define GSM341_MSGID_ETWS_CMAS_SEVERE_EXP_LIKELY 0x111A
103 #define GSM341_MSGID_ETWS_CMAS_AMBER 0x111B
104 #define GSM341_MSGID_ETWS_CMAS_MONTHLY_TEST 0x111C
105 #define GSM341_MSGID_ETWS_CMAS_EXERCISE 0x111D
106 #define GSM341_MSGID_ETWS_CMAS_OPERATOR_DEFINED 0x111E
107 #define GSM341_MSGID_ETWS_CMAS_PRESIDENTIAL_AL 0x111F
108 #define GSM341_MSGID_ETWS_CMAS_EXTREME_IMM_OBSERVED_AL 0x1120
109 #define GSM341_MSGID_ETWS_CMAS_EXTREME_IMM_LIKELY_AL 0x1121
110 #define GSM341_MSGID_ETWS_CMAS_EXTREME_EXP_OBSERVED_AL 0x1122
111 #define GSM341_MSGID_ETWS_CMAS_EXTREME_EXP_LIKELY_AL 0x1123
112 #define GSM341_MSGID_ETWS_CMAS_SEVERE_IMM_OBSERVED_AL 0x1124
113 #define GSM341_MSGID_ETWS_CMAS_SEVERE_IMM_LIKELY_AL 0x1125
114 #define GSM341_MSGID_ETWS_CMAS_SEVERE_EXP_OBSERVED_AL 0x1126
115 #define GSM341_MSGID_ETWS_CMAS_SEVERE_EXP_LIKELY_AL 0x1127
116 #define GSM341_MSGID_ETWS_CMAS_AMBER_AL 0x1128
117 #define GSM341_MSGID_ETWS_CMAS_MONTHLY_TEST_AL 0x1129
118 #define GSM341_MSGID_ETWS_CMAS_EXERCISE_AL 0x112A
119 #define GSM341_MSGID_ETWS_CMAS_OPERATOR_DEFINED_AL 0x112B
120 #define GSM341_MSGID_ETWS_EU_INFO_LOCAL_LANGUAGE 0x1900