add support for authproto/username/password
[project/umbim.git] / mbim-enum.h
1 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3 /*
4  * libmbim-glib -- GLib/GIO based library to control MBIM devices
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the
18  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  * Boston, MA 02110-1301 USA.
20  *
21  * Copyright (C) 2013 - 2014 Aleksander Morgado <aleksander@aleksander.es>
22  */
23
24 #ifndef _LIBMBIM_GLIB_MBIM_ENUMS_H_
25 #define _LIBMBIM_GLIB_MBIM_ENUMS_H_
26
27 /**
28  * MbimMessageType:
29  * @MBIM_MESSAGE_TYPE_INVALID: Invalid MBIM message.
30  * @MBIM_MESSAGE_TYPE_OPEN: Initialization request.
31  * @MBIM_MESSAGE_TYPE_CLOSE: Close request.
32  * @MBIM_MESSAGE_TYPE_COMMAND: Command request.
33  * @MBIM_MESSAGE_TYPE_HOST_ERROR: Host-reported error in the communication.
34  * @MBIM_MESSAGE_TYPE_OPEN_DONE: Response to initialization request.
35  * @MBIM_MESSAGE_TYPE_CLOSE_DONE: Response to close request.
36  * @MBIM_MESSAGE_TYPE_COMMAND_DONE: Response to command request.
37  * @MBIM_MESSAGE_TYPE_FUNCTION_ERROR: Function-reported error in the communication.
38  * @MBIM_MESSAGE_TYPE_INDICATE_STATUS: Unsolicited message from the function.
39  *
40  * Type of MBIM messages.
41  */
42 typedef enum {
43     MBIM_MESSAGE_TYPE_INVALID         = 0x00000000,
44     /* From Host to Function */
45     MBIM_MESSAGE_TYPE_OPEN            = 0x00000001,
46     MBIM_MESSAGE_TYPE_CLOSE           = 0x00000002,
47     MBIM_MESSAGE_TYPE_COMMAND         = 0x00000003,
48     MBIM_MESSAGE_TYPE_HOST_ERROR      = 0x00000004,
49     /* From Function to Host */
50     MBIM_MESSAGE_TYPE_OPEN_DONE       = 0x80000001,
51     MBIM_MESSAGE_TYPE_CLOSE_DONE      = 0x80000002,
52     MBIM_MESSAGE_TYPE_COMMAND_DONE    = 0x80000003,
53     MBIM_MESSAGE_TYPE_FUNCTION_ERROR  = 0x80000004,
54     MBIM_MESSAGE_TYPE_INDICATE_STATUS = 0x80000007
55 } MbimMessageType;
56
57 /**
58  * MbimMessageCommandType:
59  * @MBIM_MESSAGE_COMMAND_TYPE_UNKNOWN: Unknown type.
60  * @MBIM_MESSAGE_COMMAND_TYPE_QUERY: Query command.
61  * @MBIM_MESSAGE_COMMAND_TYPE_SET: Set command.
62  *
63  * Type of command message.
64  */
65 typedef enum {
66     MBIM_MESSAGE_COMMAND_TYPE_UNKNOWN = -1,
67     MBIM_MESSAGE_COMMAND_TYPE_QUERY   = 0,
68     MBIM_MESSAGE_COMMAND_TYPE_SET     = 1
69 } MbimMessageCommandType;
70
71 /**
72  * SECTION: mbim-enums
73  * @title: Enumerations and Flags
74  * @short_description: Common enumeration and flag types.
75  *
76  * This section defines common enum and flag types used in the interface.
77  */
78
79 /*****************************************************************************/
80 /* 'Device Caps' enums */
81
82 /**
83  * MbimDeviceType:
84  * @MBIM_DEVICE_TYPE_UNKNOWN: Unknown type.
85  * @MBIM_DEVICE_TYPE_EMBEDDED: Device is embedded in the system.
86  * @MBIM_DEVICE_TYPE_REMOVABLE: Device is removable.
87  * @MBIM_DEVICE_TYPE_REMOTE: Device is remote.
88  *
89  * Type of device.
90  */
91 typedef enum {
92     MBIM_DEVICE_TYPE_UNKNOWN   = 0,
93     MBIM_DEVICE_TYPE_EMBEDDED  = 1,
94     MBIM_DEVICE_TYPE_REMOVABLE = 2,
95     MBIM_DEVICE_TYPE_REMOTE    = 3
96 } MbimDeviceType;
97
98 /**
99  * MbimCellularClass:
100  * @MBIM_CELLULAR_CLASS_GSM: Device is 3GPP.
101  * @MBIM_CELLULAR_CLASS_CDMA: Device is 3GPP2.
102  *
103  * Cellular class.
104  */
105 typedef enum {
106     MBIM_CELLULAR_CLASS_GSM  = 1 << 0,
107     MBIM_CELLULAR_CLASS_CDMA = 1 << 1
108 } MbimCellularClass;
109
110 /**
111  * MbimVoiceClass:
112  * @MBIM_VOICE_CLASS_UNKNOWN: Unknown voice class.
113  * @MBIM_VOICE_CLASS_NO_VOICE: Device doesn't support voice.
114  * @MBIM_VOICE_CLASS_SEPARATED_VOICE_DATA: Device supports separate voice and data connections.
115  * @MBIM_VOICE_CLASS_SIMULTANEOUS_VOICE_DATA: Device supports simultaneous voice and data connections.
116  *
117  * Voice class.
118  */
119 typedef enum {
120     MBIM_VOICE_CLASS_UNKNOWN                 = 0,
121     MBIM_VOICE_CLASS_NO_VOICE                = 1,
122     MBIM_VOICE_CLASS_SEPARATED_VOICE_DATA    = 2,
123     MBIM_VOICE_CLASS_SIMULTANEOUS_VOICE_DATA = 3
124 } MbimVoiceClass;
125
126 /**
127  * MbimSimClass:
128  * @MBIM_SIM_CLASS_LOGICAL: No physical SIM.
129  * @MBIM_SIM_CLASS_REMOVABLE: Physical removable SIM.
130  *
131  * SIM class.
132  */
133 typedef enum {
134     MBIM_SIM_CLASS_LOGICAL   = 1 << 0,
135     MBIM_SIM_CLASS_REMOVABLE = 1 << 1
136 } MbimSimClass;
137
138 /**
139  * MbimDataClass:
140  * @MBIM_DATA_CLASS_GPRS: GPRS.
141  * @MBIM_DATA_CLASS_EDGE: EDGE.
142  * @MBIM_DATA_CLASS_UMTS: UMTS.
143  * @MBIM_DATA_CLASS_HSDPA: HSDPA.
144  * @MBIM_DATA_CLASS_HSUPA: HSUPA.
145  * @MBIM_DATA_CLASS_LTE: LTE.
146  * @MBIM_DATA_CLASS_1XRTT: 1xRTT.
147  * @MBIM_DATA_CLASS_1XEVDO: 1xEV-DO.
148  * @MBIM_DATA_CLASS_1XEVDO_REVA: 1xEV-DO RevA
149  * @MBIM_DATA_CLASS_1XEVDV: 1xEV-DV.
150  * @MBIM_DATA_CLASS_3XRTT: 3xRTT.
151  * @MBIM_DATA_CLASS_1XEVDO_REVB: 1xEV-DO RevB.
152  * @MBIM_DATA_CLASS_UMB: UMB.
153  * @MBIM_DATA_CLASS_CUSTOM: Custom.
154  *
155  * Data class.
156  */
157 typedef enum {
158     MBIM_DATA_CLASS_GPRS        = 1 << 0,
159     MBIM_DATA_CLASS_EDGE        = 1 << 1,
160     MBIM_DATA_CLASS_UMTS        = 1 << 2,
161     MBIM_DATA_CLASS_HSDPA       = 1 << 3,
162     MBIM_DATA_CLASS_HSUPA       = 1 << 4,
163     MBIM_DATA_CLASS_LTE         = 1 << 5,
164     /* Bits 6 to 15 reserved for future 3GPP classes */
165     MBIM_DATA_CLASS_1XRTT       = 1 << 16,
166     MBIM_DATA_CLASS_1XEVDO      = 1 << 17,
167     MBIM_DATA_CLASS_1XEVDO_REVA = 1 << 18,
168     MBIM_DATA_CLASS_1XEVDV      = 1 << 19,
169     MBIM_DATA_CLASS_3XRTT       = 1 << 20,
170     MBIM_DATA_CLASS_1XEVDO_REVB = 1 << 21,
171     MBIM_DATA_CLASS_UMB         = 1 << 22,
172     /* Bits 23 to 30 reserved for future 3GPP2 classes */
173     MBIM_DATA_CLASS_CUSTOM      = 1 << 31
174 } MbimDataClass;
175
176 /**
177  * MbimSmsCaps:
178  * @MBIM_SMS_CAPS_PDU_RECEIVE: Can receive in PDU mode.
179  * @MBIM_SMS_CAPS_PDU_SEND: Can send in PDU mode.
180  * @MBIM_SMS_CAPS_TEXT_RECEIVE: Can receive in text mode.
181  * @MBIM_SMS_CAPS_TEXT_SEND: Can send in text mode.
182  *
183  * SMS capabilities.
184  */
185 typedef enum {
186     MBIM_SMS_CAPS_PDU_RECEIVE  = 1 << 0,
187     MBIM_SMS_CAPS_PDU_SEND     = 1 << 1,
188     MBIM_SMS_CAPS_TEXT_RECEIVE = 1 << 2,
189     MBIM_SMS_CAPS_TEXT_SEND    = 1 << 3
190 } MbimSmsCaps;
191
192 /**
193  * MbimCtrlCaps:
194  * @MBIM_CTRL_CAPS_REG_MANUAL: Device allows manual network selection.
195  * @MBIM_CTRL_CAPS_HW_RADIO_SWITCH: Device has a hardware radio power switch.
196  * @MBIM_CTRL_CAPS_CDMA_MOBILE_IP: The CDMA function supports Mobile IP.
197  * @MBIM_CTRL_CAPS_CDMA_SIMPLE_IP: The CDMA function supports Simple IP.
198  * @MBIM_CTRL_CAPS_MULTI_CARRIER: Device can work with multiple providers.
199  *
200  * Control capabilities.
201  */
202 typedef enum {
203     MBIM_CTRL_CAPS_REG_MANUAL      = 1 << 0,
204     MBIM_CTRL_CAPS_HW_RADIO_SWITCH = 1 << 1,
205     MBIM_CTRL_CAPS_CDMA_MOBILE_IP  = 1 << 2,
206     MBIM_CTRL_CAPS_CDMA_SIMPLE_IP  = 1 << 3,
207     MBIM_CTRL_CAPS_MULTI_CARRIER   = 1 << 4
208 } MbimCtrlCaps;
209
210 /*****************************************************************************/
211 /* 'Subscriber Ready Status' enums */
212
213 /**
214  * MbimSubscriberReadyState:
215  * @MBIM_SUBSCRIBER_READY_STATE_NOT_INITIALIZED: Not initialized.
216  * @MBIM_SUBSCRIBER_READY_STATE_INITIALIZED: Initialized.
217  * @MBIM_SUBSCRIBER_READY_STATE_SIM_NOT_INSERTED: SIM not inserted.
218  * @MBIM_SUBSCRIBER_READY_STATE_BAD_SIM: Bad SIM.
219  * @MBIM_SUBSCRIBER_READY_STATE_FAILURE: Failure.
220  * @MBIM_SUBSCRIBER_READY_STATE_NOT_ACTIVATED: Not activated.
221  * @MBIM_SUBSCRIBER_READY_STATE_DEVICE_LOCKED: Device locked.
222  *
223  * Ready state of the subscriber.
224  */
225 typedef enum {
226     MBIM_SUBSCRIBER_READY_STATE_NOT_INITIALIZED  = 0,
227     MBIM_SUBSCRIBER_READY_STATE_INITIALIZED      = 1,
228     MBIM_SUBSCRIBER_READY_STATE_SIM_NOT_INSERTED = 2,
229     MBIM_SUBSCRIBER_READY_STATE_BAD_SIM          = 3,
230     MBIM_SUBSCRIBER_READY_STATE_FAILURE          = 4,
231     MBIM_SUBSCRIBER_READY_STATE_NOT_ACTIVATED    = 5,
232     MBIM_SUBSCRIBER_READY_STATE_DEVICE_LOCKED    = 6,
233 } MbimSubscriberReadyState;
234
235 /**
236  * MbimReadyInfoFlag:
237  * @MBIM_READY_INFO_FLAG_PROTECT_UNIQUE_ID: Request to avoid displaying subscriber ID.
238  */
239 typedef enum {
240     MBIM_READY_INFO_FLAG_PROTECT_UNIQUE_ID = 1 << 0
241 } MbimReadyInfoFlag;
242
243 /*****************************************************************************/
244 /* 'Radio State' enums */
245
246 /**
247  * MbimRadioSwitchState:
248  * @MBIM_RADIO_SWITCH_STATE_OFF: Radio is off.
249  * @MBIM_RADIO_SWITCH_STATE_ON: Radio is on.
250  *
251  * Radio switch state.
252  */
253 typedef enum {
254     MBIM_RADIO_SWITCH_STATE_OFF = 0,
255     MBIM_RADIO_SWITCH_STATE_ON  = 1
256 } MbimRadioSwitchState;
257
258 /*****************************************************************************/
259 /* 'Pin' enums */
260
261 /**
262  * MbimPinType:
263  * @MBIM_PIN_TYPE_UNKNOWN: Unknown or unset.
264  * @MBIM_PIN_TYPE_CUSTOM: The PIN type is a custom type and is none of the other PIN types listed in this enumeration.
265  * @MBIM_PIN_TYPE_PIN1: The PIN1 key.
266  * @MBIM_PIN_TYPE_PIN2: The PIN2 key.
267  * @MBIM_PIN_TYPE_DEVICE_SIM_PIN: The device to SIM key.
268  * @MBIM_PIN_TYPE_DEVICE_FIRST_SIM_PIN: The device to very first SIM key.
269  * @MBIM_PIN_TYPE_NETWORK_PIN: The network personalization key.
270  * @MBIM_PIN_TYPE_NETWORK_SUBSET_PIN: The network subset personalization key.
271  * @MBIM_PIN_TYPE_SERVICE_PROVIDER_PIN: The service provider (SP) personalization key.
272  * @MBIM_PIN_TYPE_CORPORATE_PIN: The corporate personalization key.
273  * @MBIM_PIN_TYPE_SUBSIDY_PIN: The subsidy unlock key.
274  * @MBIM_PIN_TYPE_PUK1: The Personal Identification Number1 Unlock Key (PUK1).
275  * @MBIM_PIN_TYPE_PUK2: The Personal Identification Number2 Unlock Key (PUK2).
276  * @MBIM_PIN_TYPE_DEVICE_FIRST_SIM_PUK: The device to very first SIM PIN unlock key.
277  * @MBIM_PIN_TYPE_NETWORK_PUK: The network personalization unlock key.
278  * @MBIM_PIN_TYPE_NETWORK_SUBSET_PUK: The network subset personalization unlock key.
279  * @MBIM_PIN_TYPE_SERVICE_PROVIDER_PUK: The service provider (SP) personalization unlock key.
280  * @MBIM_PIN_TYPE_CORPORATE_PUK: The corporate personalization unlock key.
281  *
282  * PIN Types.
283  */
284 typedef enum {
285     MBIM_PIN_TYPE_UNKNOWN              = 0,
286     MBIM_PIN_TYPE_CUSTOM               = 1,
287     MBIM_PIN_TYPE_PIN1                 = 2,
288     MBIM_PIN_TYPE_PIN2                 = 3,
289     MBIM_PIN_TYPE_DEVICE_SIM_PIN       = 4,
290     MBIM_PIN_TYPE_DEVICE_FIRST_SIM_PIN = 5,
291     MBIM_PIN_TYPE_NETWORK_PIN          = 6,
292     MBIM_PIN_TYPE_NETWORK_SUBSET_PIN   = 7,
293     MBIM_PIN_TYPE_SERVICE_PROVIDER_PIN = 8,
294     MBIM_PIN_TYPE_CORPORATE_PIN        = 9,
295     MBIM_PIN_TYPE_SUBSIDY_PIN          = 10,
296     MBIM_PIN_TYPE_PUK1                 = 11,
297     MBIM_PIN_TYPE_PUK2                 = 12,
298     MBIM_PIN_TYPE_DEVICE_FIRST_SIM_PUK = 13,
299     MBIM_PIN_TYPE_NETWORK_PUK          = 14,
300     MBIM_PIN_TYPE_NETWORK_SUBSET_PUK   = 15,
301     MBIM_PIN_TYPE_SERVICE_PROVIDER_PUK = 16,
302     MBIM_PIN_TYPE_CORPORATE_PUK        = 17
303 } MbimPinType;
304
305 /**
306  * MbimPinState:
307  * @MBIM_PIN_STATE_UNLOCKED: The device does not require a PIN.
308  * @MBIM_PIN_STATE_LOCKED: The device requires the user to enter a PIN.
309  *
310  * PIN States.
311  */
312 typedef enum {
313     MBIM_PIN_STATE_UNLOCKED = 0,
314     MBIM_PIN_STATE_LOCKED   = 1
315 } MbimPinState;
316
317 /**
318  * MbimPinOperation:
319  * @MBIM_PIN_OPERATION_ENTER: Enter the specified PIN into the device.
320  * @MBIM_PIN_OPERATION_ENABLE: Enable the specified PIN.
321  * @MBIM_PIN_OPERATION_DISABLE: Disable the specified PIN.
322  * @MBIM_PIN_OPERATION_CHANGE:  Change the specified PIN.
323 */
324 typedef enum {
325     MBIM_PIN_OPERATION_ENTER   = 0,
326     MBIM_PIN_OPERATION_ENABLE  = 1,
327     MBIM_PIN_OPERATION_DISABLE = 2,
328     MBIM_PIN_OPERATION_CHANGE  = 3
329 } MbimPinOperation;
330
331 /*****************************************************************************/
332 /* 'Pin List' enums */
333
334 /**
335  * MbimPinMode:
336  * @MBIM_PIN_MODE_NOT_SUPPORTED: Not supported.
337  * @MBIM_PIN_MODE_ENABLED: Enabled.
338  * @MBIM_PIN_MODE_DISABLED: Disabled.
339  *
340  * Whether the lock is enabled or disabled.
341  */
342 typedef enum {
343     MBIM_PIN_MODE_NOT_SUPPORTED = 0,
344     MBIM_PIN_MODE_ENABLED       = 1,
345     MBIM_PIN_MODE_DISABLED      = 2
346 } MbimPinMode;
347
348 /**
349  * MbimPinFormat:
350  * @MBIM_PIN_FORMAT_UNKNOWN: Unknown format.
351  * @MBIM_PIN_FORMAT_NUMERIC: Numeric-only format.
352  * @MBIM_PIN_FORMAT_ALPHANUMERIC: Alphanumeric format.
353  *
354  * Format of the expected PIN code.
355  */
356 typedef enum {
357     MBIM_PIN_FORMAT_UNKNOWN      = 0,
358     MBIM_PIN_FORMAT_NUMERIC      = 1,
359     MBIM_PIN_FORMAT_ALPHANUMERIC = 2
360 } MbimPinFormat;
361
362 /*****************************************************************************/
363 /* 'Home Provider' enums */
364
365 /**
366  * MbimProviderState:
367  * @MBIM_PROVIDER_STATE_UNKNOWN: Unknown.
368  * @MBIM_PROVIDER_STATE_HOME: Home operator.
369  * @MBIM_PROVIDER_STATE_FORBIDDEN: Provider blocked.
370  * @MBIM_PROVIDER_STATE_PREFERRED: Provider is in the preferred list.
371  * @MBIM_PROVIDER_STATE_VISIBLE: Provider is visible.
372  * @MBIM_PROVIDER_STATE_REGISTERED: Currently registered to the provider.
373  * @MBIM_PROVIDER_STATE_PREFERRED_MULTICARRIER: Provider is a preferred multicarrier network.
374  *
375  * State of the provider.
376  */
377 typedef enum {
378     MBIM_PROVIDER_STATE_UNKNOWN                = 0,
379     MBIM_PROVIDER_STATE_HOME                   = 1 << 0,
380     MBIM_PROVIDER_STATE_FORBIDDEN              = 1 << 1,
381     MBIM_PROVIDER_STATE_PREFERRED              = 1 << 2,
382     MBIM_PROVIDER_STATE_VISIBLE                = 1 << 3,
383     MBIM_PROVIDER_STATE_REGISTERED             = 1 << 4,
384     MBIM_PROVIDER_STATE_PREFERRED_MULTICARRIER = 1 << 5
385 } MbimProviderState;
386
387 /*****************************************************************************/
388 /* 'Visible Providers' enums */
389
390 /**
391  * MbimVisibleProvidersAction:
392  * @MBIM_VISIBLE_PROVIDERS_ACTION_FULL_SCAN: Full scan.
393  * @MBIM_VISIBLE_PROVIDERS_ACTION_RESTRICTED_SCAN: Locate preferred multicarrier providers.
394  *
395  * Type of action to perform when listing visible providers.
396  */
397 typedef enum {
398     MBIM_VISIBLE_PROVIDERS_ACTION_FULL_SCAN       = 0,
399     MBIM_VISIBLE_PROVIDERS_ACTION_RESTRICTED_SCAN = 1
400 } MbimVisibleProvidersAction;
401
402 /*****************************************************************************/
403 /* 'Register State' enums */
404
405 /**
406  * MbimNwError:
407  * @MBIM_NW_ERROR_UNKNOWN: Unknown or unset error.
408  * @MBIM_NW_ERROR_IMSI_UNKNOWN_IN_HLR: IMSI unknown in the HLR.
409  * @MBIM_NW_ERROR_ILLEGAL_MS: Illegal MS.
410  * @MBIM_NW_ERROR_IMSI_UNKNOWN_IN_VLR: IMSI unknown in the VLR.
411  * @MBIM_NW_ERROR_IMEI_NOT_ACCEPTED: IMEI not accepted.
412  * @MBIM_NW_ERROR_ILLEGAL_ME: Illegal ME.
413  * @MBIM_NW_ERROR_GPRS_NOT_ALLOWED: GPRS not allowed.
414  * @MBIM_NW_ERROR_GPRS_AND_NON_GPRS_NOT_ALLOWED: GPRS and non-GPRS not allowed.
415  * @MBIM_NW_ERROR_MS_IDENTITY_NOT_DERIVED_BY_NETWORK: MS identity cannot be derived by the network.
416  * @MBIM_NW_ERROR_IMPLICITLY_DETACHED: Implicitly detached.
417  * @MBIM_NW_ERROR_PLMN_NOT_ALLOWED: PLMN not allowed.
418  * @MBIM_NW_ERROR_LOCATION_AREA_NOT_ALLOWED: Location area not allowed.
419  * @MBIM_NW_ERROR_ROAMING_NOT_ALLOWED_IN_LOCATION_AREA: Roaming not allowed in the location area.
420  * @MBIM_NW_ERROR_GPRS_NOT_ALLOWED_IN_PLMN: GPRS not allowed in PLMN.
421  * @MBIM_NW_ERROR_NO_CELLS_IN_LOCATION_AREA: No cells in location area.
422  * @MBIM_NW_ERROR_MSC_TEMPORARILY_NOT_REACHABLE: MSC temporarily not reachable.
423  * @MBIM_NW_ERROR_NETWORK_FAILURE: Network failure.
424  * @MBIM_NW_ERROR_MAC_FAILURE: MAC failure.
425  * @MBIM_NW_ERROR_SYNCH_FAILURE: Synch failure.
426  * @MBIM_NW_ERROR_CONGESTION: Congestion.
427  * @MBIM_NW_ERROR_GSM_AUTHENTICATION_UNACCEPTABLE: GSM authentication unacceptable.
428  * @MBIM_NW_ERROR_NOT_AUTHORIZED_FOR_CSG: Not authorized for this CSG.
429  * @MBIM_NW_ERROR_MISSING_OR_UNKNOWN_APN: Missing or unknown access point name.
430  * @MBIM_NW_ERROR_SERVICE_OPTION_NOT_SUPPORTED: Service option not supported.
431  * @MBIM_NW_ERROR_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED: Requested service option not subscribed.
432  * @MBIM_NW_ERROR_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER: Service option temporarily out of order.
433  * @MBIM_NW_ERROR_NO_PDP_CONTEXT_ACTIVATED: No PDP context activated.
434  * @MBIM_NW_ERROR_SEMANTICALLY_INCORRECT_MESSAGE: Semantically incorrect message.
435  * @MBIM_NW_ERROR_INVALID_MANDATORY_INFORMATION: Invalid mandatory information.
436  * @MBIM_NW_ERROR_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED: Message type non-existent or not implemented.
437  * @MBIM_NW_ERROR_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE: Message type not compatible with protocol state.
438  * @MBIM_NW_ERROR_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED: Information element non-existent or not implemented.
439  * @MBIM_NW_ERROR_CONDITIONAL_IE_ERROR: Conditional IE error.
440  * @MBIM_NW_ERROR_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE: Message not compatible with protocol state.
441  * @MBIM_NW_ERROR_PROTOCOL_ERROR_UNSPECIFIED: Protocol error, unspecified.
442  *
443  *  Network errors.
444  */
445 typedef enum {
446     MBIM_NW_ERROR_UNKNOWN                                             = 0,
447     MBIM_NW_ERROR_IMSI_UNKNOWN_IN_HLR                                 = 2,
448     MBIM_NW_ERROR_ILLEGAL_MS                                          = 3,
449     MBIM_NW_ERROR_IMSI_UNKNOWN_IN_VLR                                 = 4,
450     MBIM_NW_ERROR_IMEI_NOT_ACCEPTED                                   = 5,
451     MBIM_NW_ERROR_ILLEGAL_ME                                          = 6,
452     MBIM_NW_ERROR_GPRS_NOT_ALLOWED                                    = 7,
453     MBIM_NW_ERROR_GPRS_AND_NON_GPRS_NOT_ALLOWED                       = 8,
454     MBIM_NW_ERROR_MS_IDENTITY_NOT_DERIVED_BY_NETWORK                  = 9,
455     MBIM_NW_ERROR_IMPLICITLY_DETACHED                                 = 10,
456     MBIM_NW_ERROR_PLMN_NOT_ALLOWED                                    = 11,
457     MBIM_NW_ERROR_LOCATION_AREA_NOT_ALLOWED                           = 12,
458     MBIM_NW_ERROR_ROAMING_NOT_ALLOWED_IN_LOCATION_AREA                = 13,
459     MBIM_NW_ERROR_GPRS_NOT_ALLOWED_IN_PLMN                            = 14,
460     MBIM_NW_ERROR_NO_CELLS_IN_LOCATION_AREA                           = 15,
461     MBIM_NW_ERROR_MSC_TEMPORARILY_NOT_REACHABLE                       = 16,
462     MBIM_NW_ERROR_NETWORK_FAILURE                                     = 17,
463     MBIM_NW_ERROR_MAC_FAILURE                                         = 20,
464     MBIM_NW_ERROR_SYNCH_FAILURE                                       = 21,
465     MBIM_NW_ERROR_CONGESTION                                          = 22,
466     MBIM_NW_ERROR_GSM_AUTHENTICATION_UNACCEPTABLE                     = 23,
467     MBIM_NW_ERROR_NOT_AUTHORIZED_FOR_CSG                              = 25,
468     MBIM_NW_ERROR_MISSING_OR_UNKNOWN_APN                              = 27,
469     MBIM_NW_ERROR_SERVICE_OPTION_NOT_SUPPORTED                        = 32,
470     MBIM_NW_ERROR_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED             = 33,
471     MBIM_NW_ERROR_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER             = 34,
472     MBIM_NW_ERROR_NO_PDP_CONTEXT_ACTIVATED                            = 40,
473     MBIM_NW_ERROR_SEMANTICALLY_INCORRECT_MESSAGE                      = 95,
474     MBIM_NW_ERROR_INVALID_MANDATORY_INFORMATION                       = 96,
475     MBIM_NW_ERROR_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED        = 97,
476     MBIM_NW_ERROR_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE     = 98,
477     MBIM_NW_ERROR_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99,
478     MBIM_NW_ERROR_CONDITIONAL_IE_ERROR                                = 100,
479     MBIM_NW_ERROR_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE          = 101,
480     MBIM_NW_ERROR_PROTOCOL_ERROR_UNSPECIFIED                          = 111
481 } MbimNwError;
482
483 /**
484  * MbimRegisterAction:
485  * @MBIM_REGISTER_ACTION_AUTOMATIC: Automatic registration.
486  * @MBIM_REGISTER_ACTION_MANUAL: Manual registration.
487  *
488  * Type of registration requested.
489  */
490 typedef enum {
491     MBIM_REGISTER_ACTION_AUTOMATIC = 0,
492     MBIM_REGISTER_ACTION_MANUAL    = 1
493 } MbimRegisterAction;
494
495 /**
496  * MbimRegisterState:
497  * @MBIM_REGISTER_STATE_UNKNOWN: Unknown registration state.
498  * @MBIM_REGISTER_STATE_DEREGISTERED: Not registered.
499  * @MBIM_REGISTER_STATE_SEARCHING: Searching.
500  * @MBIM_REGISTER_STATE_HOME: Registered in home network.
501  * @MBIM_REGISTER_STATE_ROAMING: Registered in roaming network.
502  * @MBIM_REGISTER_STATE_PARTNER: Registered in a preferred roaming network.
503  * @MBIM_REGISTER_STATE_DENIED: Registration denied.
504  *
505  * Registration state.
506  */
507 typedef enum {
508     MBIM_REGISTER_STATE_UNKNOWN      = 0,
509     MBIM_REGISTER_STATE_DEREGISTERED = 1,
510     MBIM_REGISTER_STATE_SEARCHING    = 2,
511     MBIM_REGISTER_STATE_HOME         = 3,
512     MBIM_REGISTER_STATE_ROAMING      = 4,
513     MBIM_REGISTER_STATE_PARTNER      = 5,
514     MBIM_REGISTER_STATE_DENIED       = 6
515 } MbimRegisterState;
516
517 /**
518  * MbimRegisterMode:
519  * @MBIM_REGISTER_MODE_UNKNOWN: Unknown.
520  * @MBIM_REGISTER_MODE_AUTOMATIC: Automatic registration.
521  * @MBIM_REGISTER_MODE_MANUAL: Manual registration.
522  *
523  * Type of registration requested.
524  */
525 typedef enum {
526     MBIM_REGISTER_MODE_UNKNOWN   = 0,
527     MBIM_REGISTER_MODE_AUTOMATIC = 1,
528     MBIM_REGISTER_MODE_MANUAL    = 2
529 } MbimRegisterMode;
530
531 /**
532  * MbimRegistrationFlag:
533  * @MBIM_REGISTRATION_FLAG_NONE: None.
534  * @MBIM_REGISTRATION_FLAG_MANUAL_SELECTION_NOT_AVAILABLE: Network doesn't support manual network selection.
535  * @MBIM_REGISTRATION_FLAG_PACKET_SERVICE_AUTOMATIC_ATTACH: Modem should auto-attach to the network after registration.
536  *
537  * Registration flags.
538  */
539 typedef enum {
540     MBIM_REGISTRATION_FLAG_NONE                            = 0,
541     MBIM_REGISTRATION_FLAG_MANUAL_SELECTION_NOT_AVAILABLE  = 1 << 0,
542     MBIM_REGISTRATION_FLAG_PACKET_SERVICE_AUTOMATIC_ATTACH = 1 << 1,
543 } MbimRegistrationFlag;
544
545 /*****************************************************************************/
546 /* 'Packet Service' enums */
547
548 /**
549  * MbimPacketServiceAction:
550  * @MBIM_PACKET_SERVICE_ACTION_ATTACH: Attach.
551  * @MBIM_PACKET_SERVICE_ACTION_DETACH: Detach.
552  *
553  * Packet Service Action.
554  */
555 typedef enum {
556     MBIM_PACKET_SERVICE_ACTION_ATTACH = 0,
557     MBIM_PACKET_SERVICE_ACTION_DETACH = 1
558 } MbimPacketServiceAction;
559
560 /**
561  * MbimPacketServiceState:
562  * @MBIM_PACKET_SERVICE_STATE_UNKNOWN: Unknown.
563  * @MBIM_PACKET_SERVICE_STATE_ATTACHING: Attaching.
564  * @MBIM_PACKET_SERVICE_STATE_ATTACHED: Attached.
565  * @MBIM_PACKET_SERVICE_STATE_DETACHING: Detaching.
566  * @MBIM_PACKET_SERVICE_STATE_DETACHED: Detached.
567  *
568  * Packet Service State.
569  */
570 typedef enum {
571     MBIM_PACKET_SERVICE_STATE_UNKNOWN   = 0,
572     MBIM_PACKET_SERVICE_STATE_ATTACHING = 1,
573     MBIM_PACKET_SERVICE_STATE_ATTACHED  = 2,
574     MBIM_PACKET_SERVICE_STATE_DETACHING = 3,
575     MBIM_PACKET_SERVICE_STATE_DETACHED  = 4
576 } MbimPacketServiceState;
577
578 /*****************************************************************************/
579 /* 'Connect' enums */
580
581 /**
582  * MbimActivationCommand:
583  * @MBIM_ACTIVATION_COMMAND_DEACTIVATE: Deactivate.
584  * @MBIM_ACTIVATION_COMMAND_ACTIVATE: Activate.
585  *
586  * Activation Command.
587  */
588 typedef enum {
589     MBIM_ACTIVATION_COMMAND_DEACTIVATE = 0,
590     MBIM_ACTIVATION_COMMAND_ACTIVATE   = 1
591 } MbimActivationCommand;
592
593 /**
594  * MbimCompression:
595  * @MBIM_COMPRESSION_NONE: None.
596  * @MBIM_COMPRESSION_ENABLE: Enable.
597  *
598  * Compression.
599  */
600 typedef enum {
601     MBIM_COMPRESSION_NONE   = 0,
602     MBIM_COMPRESSION_ENABLE = 1
603 } MbimCompression;
604
605 /**
606  * MbimAuthProtocol:
607  * @MBIM_AUTH_PROTOCOL_NONE: None.
608  * @MBIM_AUTH_PROTOCOL_PAP: Pap.
609  * @MBIM_AUTH_PROTOCOL_CHAP: Chap.
610  * @MBIM_AUTH_PROTOCOL_MSCHAPV2: V2.
611  *
612  * Auth Protocol.
613  */
614 typedef enum {
615     MBIM_AUTH_PROTOCOL_NONE     = 0,
616     MBIM_AUTH_PROTOCOL_PAP      = 1,
617     MBIM_AUTH_PROTOCOL_CHAP     = 2,
618     MBIM_AUTH_PROTOCOL_MSCHAPV2 = 3
619 } MbimAuthProtocol;
620
621 /**
622  * MbimContextIpType:
623  * @MBIM_CONTEXT_IP_TYPE_DEFAULT: It is up to the function to decide, the host does not care.
624  * @MBIM_CONTEXT_IP_TYPE_IPV4: IPv4 context.
625  * @MBIM_CONTEXT_IP_TYPE_IPV6: IPv6 context.
626  * @MBIM_CONTEXT_IP_TYPE_IPV4V6: The context is IPv4, IPv6 or dualstack IPv4v6.
627  * @MBIM_CONTEXT_IP_TYPE_IPV4_AND_IPV6: Both an IPv4 and an IPv6 context.
628  *
629  * Context IP Type.
630  */
631 typedef enum {
632     MBIM_CONTEXT_IP_TYPE_DEFAULT       = 0,
633     MBIM_CONTEXT_IP_TYPE_IPV4          = 1,
634     MBIM_CONTEXT_IP_TYPE_IPV6          = 2,
635     MBIM_CONTEXT_IP_TYPE_IPV4V6        = 3,
636     MBIM_CONTEXT_IP_TYPE_IPV4_AND_IPV6 = 4
637 } MbimContextIpType;
638
639 /**
640  * MbimActivationState:
641  * @MBIM_ACTIVATION_STATE_UNKNOWN: Unknown.
642  * @MBIM_ACTIVATION_STATE_ACTIVATED: Activated.
643  * @MBIM_ACTIVATION_STATE_ACTIVATING: Activating.
644  * @MBIM_ACTIVATION_STATE_DEACTIVATED: Deactivated.
645  * @MBIM_ACTIVATION_STATE_DEACTIVATING: Deactivating.
646  *
647  * Activation State.
648  */
649 typedef enum {
650     MBIM_ACTIVATION_STATE_UNKNOWN      = 0,
651     MBIM_ACTIVATION_STATE_ACTIVATED    = 1,
652     MBIM_ACTIVATION_STATE_ACTIVATING   = 2,
653     MBIM_ACTIVATION_STATE_DEACTIVATED  = 3,
654     MBIM_ACTIVATION_STATE_DEACTIVATING = 4
655 } MbimActivationState;
656
657 /**
658  * MbimVoiceCallState:
659  * @MBIM_VOICE_CALL_STATE_NONE: None.
660  * @MBIM_VOICE_CALL_STATE_IN_PROGRESS: Progress.
661  * @MBIM_VOICE_CALL_STATE_HANG_UP: Up.
662  *
663  * Voice Call State.
664  */
665 typedef enum {
666     MBIM_VOICE_CALL_STATE_NONE        = 0,
667     MBIM_VOICE_CALL_STATE_IN_PROGRESS = 1,
668     MBIM_VOICE_CALL_STATE_HANG_UP     = 2
669 } MbimVoiceCallState;
670
671 /*****************************************************************************/
672 /* 'IP Configuration' enums */
673
674 /**
675  * MbimIPConfigurationAvailableFlag:
676  * @MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_NONE: No info available.
677  * @MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_ADDRESS: Address info available.
678  * @MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_GATEWAY: Gateway info available.
679  * @MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_DNS: DNS info available.
680  * @MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_MTU: MTU info available.
681  *
682  * Mask of available information about an IP address.
683  */
684 typedef enum { /*< underscore_name=mbim_ip_configuration_available_flag >*/
685     MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_NONE     = 0,
686     MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_ADDRESS  = 1 << 0,
687     MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_GATEWAY  = 1 << 1,
688     MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_DNS      = 1 << 2,
689     MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_MTU      = 1 << 3,
690 } MbimIPConfigurationAvailableFlag;
691
692 /*****************************************************************************/
693 /* 'SMS Configuration' enums */
694
695 /**
696  * MbimSmsStorageState:
697  * @MBIM_SMS_STORAGE_STATE_NOT_INITIALIZED: Storage not initialized.
698  * @MBIM_SMS_STORAGE_STATE_INITIALIZED: Storage initialized.
699  *
700  * State of the SMS storage.
701  */
702 typedef enum {
703     MBIM_SMS_STORAGE_STATE_NOT_INITIALIZED = 0,
704     MBIM_SMS_STORAGE_STATE_INITIALIZED     = 1
705 } MbimSmsStorageState;
706
707 /**
708  * MbimSmsFormat:
709  * @MBIM_SMS_FORMAT_PDU: PDU format.
710  * @MBIM_SMS_FORMAT_CDMA: CDMA format.
711  *
712  * SMS format.
713  */
714 typedef enum {
715     MBIM_SMS_FORMAT_PDU  = 0,
716     MBIM_SMS_FORMAT_CDMA = 1
717 } MbimSmsFormat;
718
719 /*****************************************************************************/
720 /* 'SMS Read' enums */
721
722 /**
723  * MbimSmsFlag:
724  * @MBIM_SMS_FLAG_ALL: All.
725  * @MBIM_SMS_FLAG_INDEX: Index.
726  * @MBIM_SMS_FLAG_NEW: New.
727  * @MBIM_SMS_FLAG_OLD: Old.
728  * @MBIM_SMS_FLAG_SENT: Sent.
729  * @MBIM_SMS_FLAG_DRAFT: Draft.
730  *
731  * Flags to use when requesting to read SMS. @MBIM_SMS_FLAG_ALL and
732  * @MBIM_SMS_FLAG_NEW are mandatory, all the others are optional.
733 */
734 typedef enum {
735     MBIM_SMS_FLAG_ALL   = 0,
736     MBIM_SMS_FLAG_INDEX = 1,
737     MBIM_SMS_FLAG_NEW   = 2,
738     MBIM_SMS_FLAG_OLD   = 3,
739     MBIM_SMS_FLAG_SENT  = 4,
740     MBIM_SMS_FLAG_DRAFT = 5
741 } MbimSmsFlag;
742
743 /**
744  * MbimSmsCdmaLang:
745  * @MBIM_SMS_CDMA_LANG_UNKNOWN: Unknown language.
746  * @MBIM_SMS_CDMA_LANG_ENGLISH: English.
747  * @MBIM_SMS_CDMA_LANG_FRENCH: French.
748  * @MBIM_SMS_CDMA_LANG_SPANISH: Spanish.
749  * @MBIM_SMS_CDMA_LANG_JAPANESE: Japanese.
750  * @MBIM_SMS_CDMA_LANG_KOREAN: Korean.
751  * @MBIM_SMS_CDMA_LANG_CHINESE: Chinese.
752  * @MBIM_SMS_CDMA_LANG_HEBREW: Hebrew.
753  *
754  * Language of a CDMA SMS.
755  */
756 typedef enum {
757     MBIM_SMS_CDMA_LANG_UNKNOWN  = 0,
758     MBIM_SMS_CDMA_LANG_ENGLISH  = 1,
759     MBIM_SMS_CDMA_LANG_FRENCH   = 2,
760     MBIM_SMS_CDMA_LANG_SPANISH  = 3,
761     MBIM_SMS_CDMA_LANG_JAPANESE = 4,
762     MBIM_SMS_CDMA_LANG_KOREAN   = 5,
763     MBIM_SMS_CDMA_LANG_CHINESE  = 6,
764     MBIM_SMS_CDMA_LANG_HEBREW   = 7
765 } MbimSmsCdmaLang;
766
767 /**
768  * MbimSmsCdmaEncoding:
769  * @MBIM_SMS_CDMA_ENCODING_OCTET: Octet.
770  * @MBIM_SMS_CDMA_ENCODING_EPM: EPM.
771  * @MBIM_SMS_CDMA_ENCODING_7BIT_ASCII: 7-bit ASCII.
772  * @MBIM_SMS_CDMA_ENCODING_LA5: LA5.
773  * @MBIM_SMS_CDMA_ENCODING_UNICODE: Unicode.
774  * @MBIM_SMS_CDMA_ENCODING_SHIFT_JIS: Shift JIS.
775  * @MBIM_SMS_CDMA_ENCODING_KOREAN: Korean.
776  * @MBIM_SMS_CDMA_ENCODING_LATIN_HEBREW: Latin hebrew.
777  * @MBIM_SMS_CDMA_ENCODING_LATIN: Latin.
778  * @MBIM_SMS_CDMA_ENCODING_GSM_7BIT: 7-bit GSM.
779  *
780  * Type of encoding of a CDMA SMS.
781  */
782 typedef enum {
783     MBIM_SMS_CDMA_ENCODING_OCTET        = 0,
784     MBIM_SMS_CDMA_ENCODING_EPM          = 1,
785     MBIM_SMS_CDMA_ENCODING_7BIT_ASCII   = 2,
786     MBIM_SMS_CDMA_ENCODING_LA5          = 3,
787     MBIM_SMS_CDMA_ENCODING_UNICODE      = 4,
788     MBIM_SMS_CDMA_ENCODING_SHIFT_JIS    = 5,
789     MBIM_SMS_CDMA_ENCODING_KOREAN       = 6,
790     MBIM_SMS_CDMA_ENCODING_LATIN_HEBREW = 7,
791     MBIM_SMS_CDMA_ENCODING_LATIN        = 8,
792     MBIM_SMS_CDMA_ENCODING_GSM_7BIT     = 9
793 } MbimSmsCdmaEncoding;
794
795 /**
796  * MbimSmsStatus:
797  * @MBIM_SMS_STATUS_NEW: New.
798  * @MBIM_SMS_STATUS_OLD: Old.
799  * @MBIM_SMS_STATUS_DRAFT: Draft.
800  * @MBIM_SMS_STATUS_SENT: Sent.
801  *
802  * Status of a SMS message.
803  */
804 typedef enum {
805     MBIM_SMS_STATUS_NEW   = 0,
806     MBIM_SMS_STATUS_OLD   = 1,
807     MBIM_SMS_STATUS_DRAFT = 2,
808     MBIM_SMS_STATUS_SENT  = 3
809 } MbimSmsStatus;
810
811 /*****************************************************************************/
812 /* 'SMS Message Store Status' enums */
813
814 /**
815  * MbimSmsStatusFlag:
816  * @MBIM_SMS_STATUS_FLAG_NONE: None.
817  * @MBIM_SMS_STATUS_FLAG_MESSAGE_STORE_FULL: Message store is full.
818  * @MBIM_SMS_STATUS_FLAG_NEW_MESSAGE: New non-Class 0 message arrived.
819  *
820  * SMS status flags.
821  */
822 typedef enum {
823     MBIM_SMS_STATUS_FLAG_NONE               = 0,
824     MBIM_SMS_STATUS_FLAG_MESSAGE_STORE_FULL = 1,
825     MBIM_SMS_STATUS_FLAG_NEW_MESSAGE        = 2
826 } MbimSmsStatusFlag;
827
828 /*****************************************************************************/
829 /* 'USSD' enums */
830
831 /**
832  * MbimUssdAction:
833  * @MBIM_USSD_ACTION_INITIATE: Initiate USSD session.
834  * @MBIM_USSD_ACTION_CONTINUE: Continue USSD session.
835  * @MBIM_USSD_ACTION_CANCEL: Cancel USSD session.
836  *
837  * USSD action.
838  */
839 typedef enum {
840     MBIM_USSD_ACTION_INITIATE = 0,
841     MBIM_USSD_ACTION_CONTINUE = 1,
842     MBIM_USSD_ACTION_CANCEL = 2
843 } MbimUssdAction;
844
845 /**
846  * MbimUssdResponse:
847  * @MBIM_USSD_RESPONSE_NO_ACTION_REQUIRED: No action required.
848  * @MBIM_USSD_RESPONSE_ACTION_REQUIRED: An action is required.
849  * @MBIM_USSD_RESPONSE_TERMINATED_BY_NETWORK: Terminated by network
850  * @MBIM_USSD_RESPONSE_OTHER_LOCAL_CLIENT: Other local client.
851  * @MBIM_USSD_RESPONSE_OPERATION_NOT_SUPPORTED: Operation not supported.
852  * @MBIM_USSD_RESPONSE_NETWORK_TIMEOUT: Network timeout.
853  *
854  * USSD response.
855  */
856 typedef enum {
857     MBIM_USSD_RESPONSE_NO_ACTION_REQUIRED      = 0,
858     MBIM_USSD_RESPONSE_ACTION_REQUIRED         = 1,
859     MBIM_USSD_RESPONSE_TERMINATED_BY_NETWORK   = 2,
860     MBIM_USSD_RESPONSE_OTHER_LOCAL_CLIENT      = 3,
861     MBIM_USSD_RESPONSE_OPERATION_NOT_SUPPORTED = 4,
862     MBIM_USSD_RESPONSE_NETWORK_TIMEOUT         = 5
863 } MbimUssdResponse;
864
865 /**
866  * MbimUssdSessionState:
867  * @MBIM_USSD_SESSION_STATE_NEW_SESSION: New session.
868  * @MBIM_USSD_SESSION_STATE_EXISTING_SESSION: Existing session.
869  *
870  * Session state.
871  */
872 typedef enum {
873     MBIM_USSD_SESSION_STATE_NEW_SESSION      = 0,
874     MBIM_USSD_SESSION_STATE_EXISTING_SESSION = 1
875 } MbimUssdSessionState;
876
877 /*****************************************************************************/
878 /* 'Phonebook configuration' enums */
879
880 /**
881  * MbimPhonebookState:
882  * @MBIM_PHONEBOOK_STATE_NOT_INITIALIZED: Not initialized.
883  * @MBIM_PHONEBOOK_STATE_INITIALIZED: Initialized
884  *
885  * Phonebook state.
886  */
887 typedef enum {
888     MBIM_PHONEBOOK_STATE_NOT_INITIALIZED = 0,
889     MBIM_PHONEBOOK_STATE_INITIALIZED     = 1
890 } MbimPhonebookState;
891
892 /*****************************************************************************/
893 /* 'Phonebook read' enums */
894
895 /**
896  * MbimPhonebookFlag:
897  * @MBIM_PHONEBOOK_FLAG_ALL: Request all.
898  * @MBIM_PHONEBOOK_FLAG_INDEX: Request single entry by index.
899  *
900  * Flags to use when reading the phonebook.
901  */
902 typedef enum {
903     MBIM_PHONEBOOK_FLAG_ALL   = 0,
904     MBIM_PHONEBOOK_FLAG_INDEX = 1
905 } MbimPhonebookFlag;
906
907 /**
908  * MbimPhonebookWriteFlag:
909  * @MBIM_PHONEBOOK_WRITE_FLAG_SAVE_UNUSED: Store the record in an unused slot.
910  * @MBIM_PHONEBOOK_WRITE_FLAG_SAVE_INDEX: Index where to store the record.
911  *
912  * Flags to use when writing the phonebook.
913  */
914 typedef enum {
915     MBIM_PHONEBOOK_WRITE_FLAG_SAVE_UNUSED = 0,
916     MBIM_PHONEBOOK_WRITE_FLAG_SAVE_INDEX  = 1,
917 } MbimPhonebookWriteFlag;
918
919 /*****************************************************************************/
920 /* 'STK PAC' enums */
921
922 /**
923  * MbimStkPacProfile:
924  * @MBIM_STK_PAC_PROFILE_NOT_HANDLED_BY_FUNCTION_HANDLED_BY_HOST: Command not handled by function but handled by host.
925  * @MBIM_STK_PAC_PROFILE_NOT_HANDLED_BY_FUNCTION_MAY_BE_HANDLED_BY_HOST: Command not handled by function but may be handled by host.
926  * @MBIM_STK_PAC_PROFILE_HANDLED_BY_FUNCTION_ONLY_TRANSPARENT_TO_HOST: Command handled by function without informing the host.
927  * @MBIM_STK_PAC_PROFILE_HANDLED_BY_FUNCTION_NOTIFICATION_TO_HOST_POSSIBLE: Command handled by function without informing the host, but notifications may be sent to host.
928  * @MBIM_STK_PAC_PROFILE_HANDLED_BY_FUNCTION_NOTIFICATIONS_TO_HOST_ENABLED: Command handled by function, and the function wil also send notification to the host.
929  * @MBIM_STK_PAC_PROFILE_HANDLED_BY_FUNCTION_CAN_BE_OVERRIDEN_BY_HOST: Command handled by function, but the host may request full control of the command.
930  * @MBIM_STK_PAC_PROFILE_HANDLED_BY_HOST_FUNCTION_NOT_ABLE_TO_HANDLE: Command will be forwarded to the host. If the host decides not to receive the command, the function will not handle it.
931  * @MBIM_STK_PAC_PROFILE_HANDLED_BY_HOST_FUNCTION_ABLE_TO_HANDLE: Command will be forwarded to the host. If the host decides not to receive the command, the function will handle it.
932  *
933  * Proactive command profile.
934  */
935 typedef enum {
936     MBIM_STK_PAC_PROFILE_NOT_HANDLED_BY_FUNCTION_HANDLED_BY_HOST           = 0,
937     MBIM_STK_PAC_PROFILE_NOT_HANDLED_BY_FUNCTION_MAY_BE_HANDLED_BY_HOST    = 1,
938     MBIM_STK_PAC_PROFILE_HANDLED_BY_FUNCTION_ONLY_TRANSPARENT_TO_HOST      = 2,
939     MBIM_STK_PAC_PROFILE_HANDLED_BY_FUNCTION_NOTIFICATION_TO_HOST_POSSIBLE = 3,
940     MBIM_STK_PAC_PROFILE_HANDLED_BY_FUNCTION_NOTIFICATIONS_TO_HOST_ENABLED = 4,
941     MBIM_STK_PAC_PROFILE_HANDLED_BY_FUNCTION_CAN_BE_OVERRIDEN_BY_HOST      = 5,
942     MBIM_STK_PAC_PROFILE_HANDLED_BY_HOST_FUNCTION_NOT_ABLE_TO_HANDLE       = 6,
943     MBIM_STK_PAC_PROFILE_HANDLED_BY_HOST_FUNCTION_ABLE_TO_HANDLE           = 7
944 } MbimStkPacProfile;
945
946 /**
947  * MbimStkPacType:
948  * @MBIM_STK_PAC_TYPE_PROACTIVE_COMMAND: Host is requested to handle the Proactive command.
949  * @MBIM_STK_PAC_TYPE_NOTIFICATION: Proactive command is handled by the function, but the host is notified.
950  *
951  * Type of proactive command.
952  */
953 typedef enum {
954     MBIM_STK_PAC_TYPE_PROACTIVE_COMMAND = 0,
955     MBIM_STK_PAC_TYPE_NOTIFICATION      = 1
956 } MbimStkPacType;
957
958 /*****************************************************************************/
959 /* 'Network idle hint' enums */
960
961 /**
962  * MbimNetworkIdleHintState:
963  * @MBIM_NETWORK_IDLE_HINT_STATE_DISABLED: Disabled.
964  * @MBIM_NETWORK_IDLE_HINT_STATE_ENABLED: Enabled.
965  *
966  * Enable or disable network idle hint.
967  */
968 typedef enum {
969     MBIM_NETWORK_IDLE_HINT_STATE_DISABLED = 0,
970     MBIM_NETWORK_IDLE_HINT_STATE_ENABLED  = 1
971 } MbimNetworkIdleHintState;
972
973 /*****************************************************************************/
974 /* 'Emergency mode' enums */
975
976 /**
977  * MbimEmergencyModeState:
978  * @MBIM_EMERGENCY_MODE_STATE_OFF: Off.
979  * @MBIM_EMERGENCY_MODE_STATE_ON: On.
980  *
981  * Emergency mode state.
982  */
983 typedef enum {
984     MBIM_EMERGENCY_MODE_STATE_OFF = 0,
985     MBIM_EMERGENCY_MODE_STATE_ON  = 1
986 } MbimEmergencyModeState;
987
988 /*****************************************************************************/
989 /* 'DSS connect' enums */
990
991 /**
992  * MbimDssLinkState:
993  * @MBIM_DSS_LINK_STATE_DEACTIVATE: Deactivate.
994  * @MBIM_DSS_LINK_STATE_ACTIVATE: Activate.
995  *
996  * Action performed in the link state.
997  */
998 typedef enum {
999     MBIM_DSS_LINK_STATE_DEACTIVATE = 0,
1000     MBIM_DSS_LINK_STATE_ACTIVATE   = 1
1001 } MbimDssLinkState;
1002
1003 /**
1004  * MbimService:
1005  * @MBIM_SERVICE_INVALID: Invalid service.
1006  * @MBIM_SERVICE_BASIC_CONNECT: Basic connectivity service.
1007  * @MBIM_SERVICE_SMS: SMS messaging service.
1008  * @MBIM_SERVICE_USSD: USSD service.
1009  * @MBIM_SERVICE_PHONEBOOK: Phonebook service.
1010  * @MBIM_SERVICE_STK: SIM toolkit service.
1011  * @MBIM_SERVICE_AUTH: Authentication service.
1012  * @MBIM_SERVICE_DSS: Device Service Stream service.
1013  * @MBIM_SERVICE_MS_FIRMWARE_ID: Microsoft Firmware ID service.
1014  * @MBIM_SERVICE_MS_HOST_SHUTDOWN: Microsoft Host Shutdown service.
1015  * @MBIM_SERVICE_PROXY_CONTROL: Proxy Control service.
1016  *
1017  * Enumeration of the generic MBIM services.
1018  */
1019 typedef enum {
1020     MBIM_SERVICE_INVALID          = 0,
1021     MBIM_SERVICE_BASIC_CONNECT    = 1,
1022     MBIM_SERVICE_SMS              = 2,
1023     MBIM_SERVICE_USSD             = 3,
1024     MBIM_SERVICE_PHONEBOOK        = 4,
1025     MBIM_SERVICE_STK              = 5,
1026     MBIM_SERVICE_AUTH             = 6,
1027     MBIM_SERVICE_DSS              = 7,
1028     MBIM_SERVICE_MS_FIRMWARE_ID   = 8,
1029     MBIM_SERVICE_MS_HOST_SHUTDOWN = 9,
1030     MBIM_SERVICE_PROXY_CONTROL    = 10,
1031     /* Note: update MBIM_SERVICE_LAST when a new value is added */
1032 } MbimService;
1033
1034 /**
1035  * MbimContextType:
1036  * @MBIM_CONTEXT_TYPE_INVALID: Invalid context type.
1037  * @MBIM_CONTEXT_TYPE_NONE: Context not yet provisioned.
1038  * @MBIM_CONTEXT_TYPE_INTERNET: Connection to the Internet.
1039  * @MBIM_CONTEXT_TYPE_VPN: Connection to a VPN.
1040  * @MBIM_CONTEXT_TYPE_VOICE: Connection to a VoIP service.
1041  * @MBIM_CONTEXT_TYPE_VIDEO_SHARE: Connection to a video sharing service.
1042  * @MBIM_CONTEXT_TYPE_PURCHASE: Connection to an over-the-air activation site.
1043  * @MBIM_CONTEXT_TYPE_IMS: Connection to IMS.
1044  * @MBIM_CONTEXT_TYPE_MMS: Connection to MMS.
1045  * @MBIM_CONTEXT_TYPE_LOCAL: A local.
1046  *
1047  * Enumeration of the generic MBIM context types.
1048  */
1049 typedef enum {
1050     MBIM_CONTEXT_TYPE_INVALID     = 0,
1051     MBIM_CONTEXT_TYPE_NONE        = 1,
1052     MBIM_CONTEXT_TYPE_INTERNET    = 2,
1053     MBIM_CONTEXT_TYPE_VPN         = 3,
1054     MBIM_CONTEXT_TYPE_VOICE       = 4,
1055     MBIM_CONTEXT_TYPE_VIDEO_SHARE = 5,
1056     MBIM_CONTEXT_TYPE_PURCHASE    = 6,
1057     MBIM_CONTEXT_TYPE_IMS         = 7,
1058     MBIM_CONTEXT_TYPE_MMS         = 8,
1059     MBIM_CONTEXT_TYPE_LOCAL       = 9,
1060 } MbimContextType;
1061
1062 #endif /* _LIBMBIM_GLIB_MBIM_ENUMS_H_ */