/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * Copyright (C) 2010 Red Hat, Inc. * * This program is free software: you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public * License as published by the Free Software Foundation * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef LIBQCDM_NV_ITEMS_H #define LIBQCDM_NV_ITEMS_H #include /* NV read/write status codes */ typedef enum { DIAG_NV_STATUS_OK = 0, DIAG_NV_STATUS_BUSY = 1, DIAG_NV_STATUS_BAD_COMMAND = 2, DIAG_NV_STATUS_MEMORY_FULL = 3, DIAG_NV_STATUS_FAILED = 4, DIAG_NV_STATUS_INACTIVE = 5, /* NV location not active */ DIAG_NV_STATUS_BAD_PARAMETER = 6, DIAG_NV_STATUS_READ_ONLY = 7, /* NV location is read-only */ } DMNVStatus; enum { DIAG_NV_MODE_PREF = 10, /* Mode preference: 1x, HDR, auto */ DIAG_NV_DIR_NUMBER = 178, /* Mobile Directory Number (MDN) */ DIAG_NV_ROAM_PREF = 442, /* Roaming preference */ DIAG_NV_HYBRID_PREF = 562, /* Hybrid 1x + HDR preference */ DIAG_NV_IPV6_ENABLED = 1896, /* Enable IPv6 */ DIAG_NV_HDR_REV_PREF = 4964, /* HDR mode preference(?): rev0, revA, eHRPD */ }; /* Mode preference values */ enum { DIAG_NV_MODE_PREF_DIGITAL = 0x00, DIAG_NV_MODE_PREF_DIGITAL_ONLY = 0x01, DIAG_NV_MODE_PREF_ANALOG = 0x02, DIAG_NV_MODE_PREF_ANALOG_ONLY = 0x03, DIAG_NV_MODE_PREF_AUTO = 0x04, DIAG_NV_MODE_PREF_E911 = 0x05, DIAG_NV_MODE_PREF_HOME_ONLY = 0x06, DIAG_NV_MODE_PREF_1X_ONLY = 0x09, DIAG_NV_MODE_PREF_HDR_ONLY = 0x0A, DIAG_NV_MODE_PREF_GPRS_ONLY = 0x0D, DIAG_NV_MODE_PREF_UMTS_ONLY = 0x0E, DIAG_NV_MODE_PREF_GSM_UMTS_ONLY = 0x11, DIAG_NV_MODE_PREF_1X_HDR_ONLY = 0x13, DIAG_NV_MODE_PREF_LTE_ONLY = 0x1E, DIAG_NV_MODE_PREF_GSM_UMTS_LTE_ONLY = 0x1F, DIAG_NV_MODE_PREF_1X_HDR_LTE_ONLY = 0x24, }; /* DIAG_NV_MODE_PREF */ struct DMNVItemModePref { uint8_t profile; uint8_t mode_pref; } __attribute__ ((packed)); typedef struct DMNVItemModePref DMNVItemModePref; /* DIAG_NV_DIR_NUMBER */ struct DMNVItemMdn { uint8_t profile; uint8_t mdn[10]; } __attribute__ ((packed)); typedef struct DMNVItemMdn DMNVItemMdn; /* Roam preference values */ enum { DIAG_NV_ROAM_PREF_HOME_ONLY = 0x01, DIAG_NV_ROAM_PREF_ROAM_ONLY = 0x06, DIAG_NV_ROAM_PREF_AUTO = 0xFF, }; /* DIAG_NV_ROAM_PREF */ struct DMNVItemRoamPref { uint8_t profile; uint8_t roam_pref; } __attribute__ ((packed)); typedef struct DMNVItemRoamPref DMNVItemRoamPref; /* HDR Revision preference values (?) */ enum { DIAG_NV_HDR_REV_PREF_0 = 0x00, DIAG_NV_HDR_REV_PREF_A = 0x01, DIAG_NV_HDR_REV_PREF_EHRPD = 0x04, }; /* DIAG_NV_HDR_REV_PREF */ struct DMNVItemHdrRevPref { uint8_t rev_pref; } __attribute__ ((packed)); typedef struct DMNVItemHdrRevPref DMNVItemHdrRevPref; /* Hybrid pref */ enum { DIAG_NV_HYBRID_PREF_OFF = 0x00, DIAG_NV_HYBRID_PREF_ON = 0x01, }; /* DIAG_NV_HYBRID_PREF */ struct DMNVItemHybridPref { uint8_t hybrid_pref; } __attribute__ ((packed)); typedef struct DMNVItemHybridPref DMNVItemHybridPref; /* IPv6 enable */ enum { DIAG_NV_IPV6_ENABLED_OFF = 0x00, DIAG_NV_IPV6_ENABLED_ON = 0x01, }; /* DIAG_NV_IPV6_ENABLED */ struct DMNVItemIPv6Enabled { uint8_t enabled; } __attribute__ ((packed)); typedef struct DMNVItemIPv6Enabled DMNVItemIPv6Enabled; #endif /* LIBQCDM_NV_ITEMS_H */