blob: efc2873593e54d2b5c8ff7d94d2e4d867423b161 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
/*
*
* oFono - Open Source Telephony
*
* Copyright (C) 2011-2012 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#define QMI_NAS_RESET 0 /* Reset NAS service state variables */
#define QMI_NAS_ABORT 1 /* Abort previously issued NAS command */
#define QMI_NAS_EVENT 2 /* Connection state report indication */
#define QMI_NAS_SET_EVENT 2 /* Set NAS state report conditions */
#define QMI_NAS_SET_REG_EVENT 3 /* Set NAS registration report conditions */
#define QMI_NAS_GET_RSSI 32 /* Get the signal strength */
#define QMI_NAS_SCAN_NETS 33 /* Scan for visible network */
#define QMI_NAS_REGISTER_NET 34 /* Initiate a network registration */
#define QMI_NAS_ATTACH_DETACH 35 /* Initiate an attach or detach action */
#define QMI_NAS_GET_SS_INFO 36 /* Get info about current serving system */
#define QMI_NAS_SS_INFO_IND 36 /* Current serving system info indication */
#define QMI_NAS_GET_HOME_INFO 37 /* Get info about home network */
/* Set NAS state report conditions */
#define QMI_NAS_PARAM_REPORT_SIGNAL_STRENGTH 0x10
struct qmi_nas_param_event_signal_strength {
uint8_t report; /* bool */
uint8_t count;
int8_t dbm[5];
} __attribute__((__packed__));
#define QMI_NAS_PARAM_REPORT_RF_INFO 0x11
struct qmi_nas_param_event_rf_info {
uint8_t report; /* bool */
} __attribute__((__packed__));
#define QMI_NAS_NOTIFY_SIGNAL_STRENGTH 0x10
struct qmi_nas_signal_strength {
int8_t dbm;
uint8_t rat;
} __attribute__((__packed__));
#define QMI_NAS_NOTIFY_RF_INFO 0x11
struct qmi_nas_rf_info {
uint8_t count;
struct {
uint8_t rat;
uint16_t band;
uint16_t channel;
} __attribute__((__packed__)) info[0];
} __attribute__((__packed__));
/* Get the signal strength */
#define QMI_NAS_RESULT_SIGNAL_STRENGTH 0x10
/* Scan for visible network */
#define QMI_NAS_PARAM_NETWORK_MASK 0x10 /* uint8 bitmask */
#define QMI_NAS_NETWORK_MASK_GSM (1 << 0)
#define QMI_NAS_NETWORK_MASK_UMTS (1 << 1)
#define QMI_NAS_NETWORK_MASK_LTE (1 << 2)
#define QMI_NAS_NETWORK_MASK_TDSCDMA (1 << 3)
#define QMI_NAS_RESULT_NETWORK_LIST 0x10
struct qmi_nas_network_info {
uint16_t mcc;
uint16_t mnc;
uint8_t status;
uint8_t desc_len;
char desc[0];
} __attribute__((__packed__));
struct qmi_nas_network_list {
uint16_t count;
struct qmi_nas_network_info info[0];
} __attribute__((__packed__));
#define QMI_NAS_RESULT_NETWORK_RAT 0x11
struct qmi_nas_network_rat {
uint16_t count;
struct {
uint16_t mcc;
uint16_t mnc;
uint8_t rat;
} __attribute__((__packed__)) info[0];
} __attribute__((__packed__));
#define QMI_NAS_NETWORK_RAT_GSM 0x04
#define QMI_NAS_NETWORK_RAT_UMTS 0x05
#define QMI_NAS_NETWORK_RAT_LTE 0x08
#define QMI_NAS_NETWORK_RAT_TDSCDMA 0x09
#define QMI_NAS_NETWORK_RAT_NO_CHANGE 0xff
/* Initiate a network registration */
#define QMI_NAS_PARAM_REGISTER_ACTION 0x01 /* uint8 */
#define QMI_NAS_PARAM_REGISTER_MANUAL_INFO 0x10
struct qmi_nas_param_register_manual_info {
uint16_t mcc;
uint16_t mnc;
uint8_t rat;
} __attribute__((__packed__));
#define QMI_NAS_REGISTER_ACTION_AUTO 0x01
#define QMI_NAS_REGISTER_ACTION_MANUAL 0x02
/* Initiate an attach or detach action */
#define QMI_NAS_PARAM_ATTACH_ACTION 0x10 /* uint8 */
#define QMI_NAS_ATTACH_ACTION_ATTACH 0x01
#define QMI_NAS_ATTACH_ACTION_DETACH 0x02
/* Get info about current serving system */
#define QMI_NAS_RESULT_SERVING_SYSTEM 0x01
struct qmi_nas_serving_system {
uint8_t status;
uint8_t cs_state;
uint8_t ps_state;
uint8_t network;
uint8_t radio_if_count;
uint8_t radio_if[0];
} __attribute__((__packed__));
#define QMI_NAS_RESULT_ROAMING_STATUS 0x10 /* uint8 */
#define QMI_NAS_RESULT_CURRENT_PLMN 0x12
struct qmi_nas_current_plmn {
uint16_t mcc;
uint16_t mnc;
uint8_t desc_len;
char desc[0];
} __attribute__((__packed__));
#define QMI_NAS_RESULT_LOCATION_AREA_CODE 0x1d /* uint16 */
#define QMI_NAS_RESULT_CELL_ID 0x1e /* uint32 */
#define QMI_NAS_ATTACH_STATUS_INVALID 0x00
#define QMI_NAS_ATTACH_STATUS_ATTACHED 0x01
#define QMI_NAS_ATTACH_STATUS_DETACHED 0x02
/* Get info about home network */
#define QMI_NAS_RESULT_HOME_NETWORK 0x01
struct qmi_nas_home_network {
uint16_t mcc;
uint16_t mnc;
uint8_t desc_len;
char desc[0];
} __attribute__((__packed__));
|