mbim-enum.h 38 KB

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