make uqmi_add_error return QMI_CMD_EXIT
[project/uqmi.git] / qmi-enums-dms.h
1 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * uqmi -- tiny QMI support implementation
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301 USA.
19  *
20  * Copyright (C) 2012 Lanedo GmbH <aleksander@lanedo.com>
21  */
22
23 #ifndef _LIBQMI_GLIB_QMI_ENUMS_DMS_H_
24 #define _LIBQMI_GLIB_QMI_ENUMS_DMS_H_
25
26 /**
27  * SECTION: qmi-enums-dms
28  * @title: DMS enumerations and flags
29  *
30  * This section defines enumerations and flags used in the DMS service
31  * interface.
32  */
33
34 /*****************************************************************************/
35 /* Helper enums for the 'QMI DMS Get Capabilities' message */
36
37 /**
38  * QmiDmsDataServiceCapability:
39  * @QMI_DMS_DATA_SERVICE_CAPABILITY_NONE: No data services supported.
40  * @QMI_DMS_DATA_SERVICE_CAPABILITY_CS: Only CS supported.
41  * @QMI_DMS_DATA_SERVICE_CAPABILITY_PS: Only PS supported.
42  * @QMI_DMS_DATA_SERVICE_CAPABILITY_SIMULTANEOUS_CS_PS: Simultaneous CS and PS supported.
43  * @QMI_DMS_DATA_SERVICE_CAPABILITY_NON_SIMULTANEOUS_CS_PS: Non simultaneous CS and PS supported.
44  *
45  * Data service capability.
46  */
47 typedef enum {
48     QMI_DMS_DATA_SERVICE_CAPABILITY_NONE                   = 0,
49     QMI_DMS_DATA_SERVICE_CAPABILITY_CS                     = 1,
50     QMI_DMS_DATA_SERVICE_CAPABILITY_PS                     = 2,
51     QMI_DMS_DATA_SERVICE_CAPABILITY_SIMULTANEOUS_CS_PS     = 3,
52     QMI_DMS_DATA_SERVICE_CAPABILITY_NON_SIMULTANEOUS_CS_PS = 4
53 } QmiDmsDataServiceCapability;
54
55 /**
56  * QmiDmsSimCapability:
57  * @QMI_DMS_SIM_CAPABILITY_NOT_SUPPORTED: SIM not supported.
58  * @QMI_DMS_SIM_CAPABILITY_SUPPORTED: SIM is supported.
59  *
60  * SIM capability.
61  */
62 typedef enum {
63     QMI_DMS_SIM_CAPABILITY_NOT_SUPPORTED = 1,
64     QMI_DMS_SIM_CAPABILITY_SUPPORTED     = 2
65 } QmiDmsSimCapability;
66
67 /**
68  * QmiDmsRadioInterface:
69  * @QMI_DMS_RADIO_INTERFACE_CDMA20001X: CDMA2000 1x.
70  * @QMI_DMS_RADIO_INTERFACE_EVDO: CDMA2000 HRPD (1xEV-DO)
71  * @QMI_DMS_RADIO_INTERFACE_GSM: GSM.
72  * @QMI_DMS_RADIO_INTERFACE_UMTS: UMTS.
73  * @QMI_DMS_RADIO_INTERFACE_LTE: LTE.
74  *
75  * Radio interface type.
76  */
77 typedef enum {
78     QMI_DMS_RADIO_INTERFACE_CDMA20001X = 1,
79     QMI_DMS_RADIO_INTERFACE_EVDO       = 2,
80     QMI_DMS_RADIO_INTERFACE_GSM        = 4,
81     QMI_DMS_RADIO_INTERFACE_UMTS       = 5,
82     QMI_DMS_RADIO_INTERFACE_LTE        = 8
83 } QmiDmsRadioInterface;
84
85
86 /*****************************************************************************/
87 /* Helper enums for the 'QMI DMS Get Power State' message */
88
89 /**
90  * QmiDmsPowerState:
91  * @QMI_DMS_POWER_STATE_EXTERNAL_SOURCE: Powered by an external source.
92  * @QMI_DMS_POWER_STATE_BATTERY_CONNECTED: Battery is connected.
93  * @QMI_DMS_POWER_STATE_BATTERY_CHARGING: Battery is currently being charged.
94  * @QMI_DMS_POWER_STATE_FAULT: Recognized power fault.
95  *
96  * Flags specifying the current power state.
97  *
98  * If @QMI_DMS_POWER_STATE_EXTERNAL_SOURCE is set, the device is powerered by an
99  * external source; otherwise it is powered by a battery.
100  *
101  * If @QMI_DMS_POWER_STATE_BATTERY_CONNECTED is set, the battery is connected;
102  * otherwise the battery is not connected.
103  *
104  * If @QMI_DMS_POWER_STATE_BATTERY_CHARGING is set, the battery is being charged;
105  * otherwise the battery is not being charged.
106  *
107  * If @QMI_DMS_POWER_STATE_FAULT is set, a power fault has been detected.
108  */
109 typedef enum {
110     QMI_DMS_POWER_STATE_EXTERNAL_SOURCE   = 1 << 0,
111     QMI_DMS_POWER_STATE_BATTERY_CONNECTED = 1 << 1,
112     QMI_DMS_POWER_STATE_BATTERY_CHARGING  = 1 << 2,
113     QMI_DMS_POWER_STATE_FAULT             = 1 << 3,
114 } QmiDmsPowerState;
115
116
117 /*****************************************************************************/
118 /* Helper enums for the 'QMI DMS UIM Set PIN Protection' message */
119
120 /**
121  * QmiDmsUimPinId:
122  * @QMI_DMS_UIM_PIN_ID_PIN: PIN.
123  * @QMI_DMS_UIM_PIN_ID_PIN2: PIN2.
124  *
125  * The PIN identifier.
126  */
127 typedef enum {
128     QMI_DMS_UIM_PIN_ID_PIN  = 1,
129     QMI_DMS_UIM_PIN_ID_PIN2 = 2
130 } QmiDmsUimPinId;
131
132
133 /*****************************************************************************/
134 /* Helper enums for the 'QMI DMS UIM Get PIN Status' message */
135
136 /**
137  * QmiDmsUimPinStatus:
138  * @QMI_DMS_UIM_PIN_STATUS_NOT_INITIALIZED: Not initialized.
139  * @QMI_DMS_UIM_PIN_STATUS_ENABLED_NOT_VERIFIED: Enabled, not verified.
140  * @QMI_DMS_UIM_PIN_STATUS_ENABLED_VERIFIED: Enabled, verified.
141  * @QMI_DMS_UIM_PIN_STATUS_DISABLED: Disabled.
142  * @QMI_DMS_UIM_PIN_STATUS_BLOCKED: Blocked.
143  * @QMI_DMS_UIM_PIN_STATUS_PERMANENTLY_BLOCKED: Permanently Blocked.
144  * @QMI_DMS_UIM_PIN_STATUS_UNBLOCKED: Unblocked.
145  * @QMI_DMS_UIM_PIN_STATUS_CHANGED: Changed.
146  *
147  * The PIN status.
148  */
149 typedef enum {
150     QMI_DMS_UIM_PIN_STATUS_NOT_INITIALIZED      = 0,
151     QMI_DMS_UIM_PIN_STATUS_ENABLED_NOT_VERIFIED = 1,
152     QMI_DMS_UIM_PIN_STATUS_ENABLED_VERIFIED     = 2,
153     QMI_DMS_UIM_PIN_STATUS_DISABLED             = 3,
154     QMI_DMS_UIM_PIN_STATUS_BLOCKED              = 4,
155     QMI_DMS_UIM_PIN_STATUS_PERMANENTLY_BLOCKED  = 5,
156     QMI_DMS_UIM_PIN_STATUS_UNBLOCKED            = 6,
157     QMI_DMS_UIM_PIN_STATUS_CHANGED              = 7,
158 } QmiDmsUimPinStatus;
159
160 /*****************************************************************************/
161 /* Helper enums for the 'QMI DMS Get Operating Mode' message */
162
163 /**
164  * QmiDmsOperatingMode:
165  * @QMI_DMS_OPERATING_MODE_ONLINE: Device can acquire a system and make calls.
166  * @QMI_DMS_OPERATING_MODE_LOW_POWER: Device has temporarily disabled RF.
167  * @QMI_DMS_OPERATING_MODE_PERSISTENT_LOW_POWER: Device has disabled RF and state persists even after a reset.
168  * @QMI_DMS_OPERATING_MODE_FACTORY_TEST: Special mode for manufacturer tests.
169  * @QMI_DMS_OPERATING_MODE_OFFLINE: Device has deactivated RF and is partially shutdown.
170  * @QMI_DMS_OPERATING_MODE_RESET: Device is in the process of power cycling.
171  * @QMI_DMS_OPERATING_MODE_SHUTTING_DOWN: Device is in the process of shutting down.
172  * @QMI_DMS_OPERATING_MODE_MODE_ONLY_LOW_POWER: Mode-only Low Power.
173  * @QMI_DMS_OPERATING_MODE_UNKNOWN: Unknown.
174  *
175  * Operating mode of the device.
176  */
177 typedef enum {
178     QMI_DMS_OPERATING_MODE_ONLINE                = 0,
179     QMI_DMS_OPERATING_MODE_LOW_POWER             = 1,
180     QMI_DMS_OPERATING_MODE_FACTORY_TEST          = 2,
181     QMI_DMS_OPERATING_MODE_OFFLINE               = 3,
182     QMI_DMS_OPERATING_MODE_RESET                 = 4,
183     QMI_DMS_OPERATING_MODE_SHUTTING_DOWN         = 5,
184     QMI_DMS_OPERATING_MODE_PERSISTENT_LOW_POWER  = 6,
185     QMI_DMS_OPERATING_MODE_MODE_ONLY_LOW_POWER   = 7,
186     QMI_DMS_OPERATING_MODE_UNKNOWN               = 0xFF
187 } QmiDmsOperatingMode;
188
189 /**
190  * QmiDmsOfflineReason:
191  * @QMI_DMS_OFFLINE_REASON_HOST_IMAGE_MISCONFIGURATION: Host image misconfiguration.
192  * @QMI_DMS_OFFLINE_REASON_PRI_IMAGE_MISCONFIGURATION: PRI image misconfiguration.
193  * @QMI_DMS_OFFLINE_REASON_PRI_VERSION_INCOMPATIBLE: PRI version incompatible.
194  * @QMI_DMS_OFFLINE_REASON_DEVICE_MEMORY_FULL: Memory full, cannot copy PRI information.
195  *
196  * Reasons for being in Offline (@QMI_DMS_OPERATING_MODE_OFFLINE) state.
197  */
198 typedef enum {
199     QMI_DMS_OFFLINE_REASON_HOST_IMAGE_MISCONFIGURATION = 1 << 0,
200     QMI_DMS_OFFLINE_REASON_PRI_IMAGE_MISCONFIGURATION  = 1 << 1,
201     QMI_DMS_OFFLINE_REASON_PRI_VERSION_INCOMPATIBLE    = 1 << 2,
202     QMI_DMS_OFFLINE_REASON_DEVICE_MEMORY_FULL          = 1 << 3
203 } QmiDmsOfflineReason;
204
205 /*****************************************************************************/
206 /* Helper enums for the 'QMI DMS Get Time' message */
207
208 /**
209  * QmiDmsTimeSource:
210  * @QMI_DMS_TIME_SOURCE_DEVICE: 32 kHz device clock.
211  * @QMI_DMS_TIME_SOURCE_CDMA_NETWORK: CDMA network.
212  * @QMI_DMS_TIME_SOURCE_HDR_NETWORK: HDR network.
213  *
214  * Source of the timestamp.
215  */
216 typedef enum {
217     QMI_DMS_TIME_SOURCE_DEVICE        = 0,
218     QMI_DMS_TIME_SOURCE_CDMA_NETWORK  = 1,
219     QMI_DMS_TIME_SOURCE_HDR_NETWORK   = 2,
220 } QmiDmsTimeSource;
221
222 /*****************************************************************************/
223 /* Helper enums for the 'QMI DMS Get Activation State' message */
224
225 /**
226  * QmiDmsActivationState:
227  * @QMI_DMS_ACTIVATION_STATE_NOT_ACTIVATED: Service not activated.
228  * @QMI_DMS_ACTIVATION_STATE_ACTIVATED: Service is activated.
229  * @QMI_DMS_ACTIVATION_STATE_CONNECTING: Connection in progress for automatic activation.
230  * @QMI_DMS_ACTIVATION_STATE_CONNECTED: Connection connected for automatic activation.
231  * @QMI_DMS_ACTIVATION_STATE_OTASP_AUTHENTICATED: OTASP security authenticated.
232  * @QMI_DMS_ACTIVATION_STATE_OTASP_NAM: OTASP NAM downloaded.
233  * @QMI_DMS_ACTIVATION_STATE_OTASP_MDN: OTASP MDN downloaded.
234  * @QMI_DMS_ACTIVATION_STATE_OTASP_IMSI: OTASP IMSI downloaded.
235  * @QMI_DMS_ACTIVATION_STATE_OTASP_PRL: OTASP PRL downloaded.
236  * @QMI_DMS_ACTIVATION_STATE_OTASP_SPC: OTASP SPC downloaded.
237  * @QMI_DMS_ACTIVATION_STATE_OTASP_COMMITED: OTASP settings committed.
238  *
239  * State of the service activation.
240  */
241 typedef enum {
242     QMI_DMS_ACTIVATION_STATE_NOT_ACTIVATED       = 0x00,
243     QMI_DMS_ACTIVATION_STATE_ACTIVATED           = 0x01,
244     QMI_DMS_ACTIVATION_STATE_CONNECTING          = 0x02,
245     QMI_DMS_ACTIVATION_STATE_CONNECTED           = 0x03,
246     QMI_DMS_ACTIVATION_STATE_OTASP_AUTHENTICATED = 0x04,
247     QMI_DMS_ACTIVATION_STATE_OTASP_NAM           = 0x05,
248     QMI_DMS_ACTIVATION_STATE_OTASP_MDN           = 0x06,
249     QMI_DMS_ACTIVATION_STATE_OTASP_IMSI          = 0x07,
250     QMI_DMS_ACTIVATION_STATE_OTASP_PRL           = 0x08,
251     QMI_DMS_ACTIVATION_STATE_OTASP_SPC           = 0x09,
252     QMI_DMS_ACTIVATION_STATE_OTASP_COMMITED      = 0x0A
253 } QmiDmsActivationState;
254
255 /*****************************************************************************/
256 /* Helper enums for the 'QMI DMS UIM Get CK Status' message */
257
258 /**
259  * QmiDmsUimFacility:
260  * @QMI_DMS_UIM_FACILITY_PN: Network personalization facility.
261  * @QMI_DMS_UIM_FACILITY_PU: Network subset personalization facility.
262  * @QMI_DMS_UIM_FACILITY_PP: Service provider facility.
263  * @QMI_DMS_UIM_FACILITY_PC: Corporate personalization facility.
264  * @QMI_DMS_UIM_FACILITY_PF: UIM personalization facility.
265  *
266  * UIM personalization facilities.
267  */
268 typedef enum {
269     QMI_DMS_UIM_FACILITY_PN = 0,
270     QMI_DMS_UIM_FACILITY_PU = 1,
271     QMI_DMS_UIM_FACILITY_PP = 2,
272     QMI_DMS_UIM_FACILITY_PC = 3,
273     QMI_DMS_UIM_FACILITY_PF = 4
274 } QmiDmsUimFacility;
275
276 /**
277  * QmiDmsUimFacilityState:
278  * @QMI_DMS_UIM_FACILITY_STATE_DEACTIVATED: Facility is deactivated.
279  * @QMI_DMS_UIM_FACILITY_STATE_ACTIVATED: Facility is activated.
280  * @QMI_DMS_UIM_FACILITY_STATE_BLOCKED: Facility is blocked.
281  */
282 typedef enum {
283     QMI_DMS_UIM_FACILITY_STATE_DEACTIVATED = 0,
284     QMI_DMS_UIM_FACILITY_STATE_ACTIVATED   = 1,
285     QMI_DMS_UIM_FACILITY_STATE_BLOCKED     = 2
286 } QmiDmsUimFacilityState;
287
288 /*****************************************************************************/
289 /* Helper enums for the 'QMI DMS UIM Get State' message */
290
291 /**
292  * QmiDmsUimState:
293  * @QMI_DMS_UIM_STATE_INITIALIZATION_COMPLETED: UIM initialization completed.
294  * @QMI_DMS_UIM_STATE_LOCKED_OR_FAILED: UIM is locked or failed.
295  * @QMI_DMS_UIM_STATE_NOT_PRESENT: No UIM in the device.
296  * @QMI_DMS_UIM_STATE_RESERVED: Reserved, unknown.
297  * @QMI_DMS_UIM_STATE_UNKNOWN: UIM state currently unavailable.
298  *
299  * State of the UIM.
300  */
301 typedef enum {
302     QMI_DMS_UIM_STATE_INITIALIZATION_COMPLETED = 0x00,
303     QMI_DMS_UIM_STATE_LOCKED_OR_FAILED         = 0x01,
304     QMI_DMS_UIM_STATE_NOT_PRESENT              = 0x02,
305     QMI_DMS_UIM_STATE_RESERVED                 = 0x03,
306     QMI_DMS_UIM_STATE_UNKNOWN                  = 0xFF
307 } QmiDmsUimState;
308
309 /*****************************************************************************/
310 /* Helper enums for the 'QMI DMS Set Time' message */
311
312 /**
313  * QmiDmsTimeReferenceType:
314  * @QMI_DMS_TIME_REFERENCE_TYPE_USER: User time.
315  *
316  * Time reference type.
317  */
318 typedef enum {
319     QMI_DMS_TIME_REFERENCE_TYPE_USER = 0
320 } QmiDmsTimeReferenceType;
321
322 /*****************************************************************************/
323 /* Helper enums for the 'QMI DMS Get Firmware Preference' message */
324
325 /**
326  * QmiDmsFirmwareImageType:
327  * @QMI_DMS_FIRMWARE_IMAGE_TYPE_MODEM: Modem image.
328  * @QMI_DMS_FIRMWARE_IMAGE_TYPE_PRI: PRI image.
329  *
330  * Type of firmware image.
331  */
332 typedef enum {
333     QMI_DMS_FIRMWARE_IMAGE_TYPE_MODEM = 0,
334     QMI_DMS_FIRMWARE_IMAGE_TYPE_PRI   = 1
335 } QmiDmsFirmwareImageType;
336
337 #endif /* _LIBQMI_GLIB_QMI_ENUMS_DMS_H_ */