summaryrefslogtreecommitdiff
path: root/libwmc
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2012-01-23 17:20:57 -0600
committerDan Williams <dcbw@redhat.com>2012-01-23 18:54:28 -0600
commitccfdda523aa812d9ff894593068b61e902f27660 (patch)
tree2c71d4e3d6443c6652dc8e69b08318aa3394328b /libwmc
parent1e6da54b45378a5438c5ed4eca4d009d36d517b9 (diff)
wmc: add FIELD_TEST command
UML290 and UML190 both respond to the command but return all zeros, while the PC5740 returns valid data.
Diffstat (limited to 'libwmc')
-rw-r--r--libwmc/src/protocol.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/libwmc/src/protocol.h b/libwmc/src/protocol.h
index 1b9ebd6d..77ec49c7 100644
--- a/libwmc/src/protocol.h
+++ b/libwmc/src/protocol.h
@@ -27,6 +27,7 @@ enum {
WMC_CMD_CONNECTION_INFO = 0x0A,
WMC_CMD_NET_INFO = 0x0B,
WMC_CMD_INIT = 0x0D,
+ WMC_CMD_FIELD_TEST = 0x0F,
WMC_CMD_SET_OPERATOR = 0x33,
WMC_CMD_GET_FIRST_OPERATOR = 0x34,
WMC_CMD_GET_NEXT_OPERATOR = 0x35,
@@ -405,4 +406,50 @@ typedef struct WmcCmdGetOperatorRsp WmcCmdGetOperatorRsp;
/*****************************************************/
+enum {
+ WMC_FIELD_TEST_MOBILE_IP_MODE_MIP_OFF = 0,
+ WMC_FIELD_TEST_MOBILE_IP_MODE_MIP_PREF = 1,
+ WMC_FIELD_TEST_MOBILE_IP_MODE_MIP_ONLY = 2
+};
+
+/* Later devices return all zeros for this command */
+struct WmcCmdFieldTestRsp {
+ WmcCmdHeader hdr;
+ u_int8_t prl_requirements;
+ u_int8_t eri_support;
+ char nam_name[7];
+ u_int8_t _unknown1; /* always zero */
+ u_int8_t _unknown2[3]; /* always 0x0A 0x0A 0x0A */
+ u_int8_t _unknown3[5]; /* always zero */
+ u_int8_t _unknown4[10]; /* all 0x0F */
+ u_int16_t home_sid;
+ u_int16_t home_nid;
+ char min1[7];
+ char min2[3];
+ char mcc[3];
+ char imsi_s[10];
+ char mnc[2];
+ u_int16_t primary_cdma_chan_a;
+ u_int16_t secondary_cdma_chan_a;
+ u_int16_t primary_cdma_chan_b;
+ u_int16_t secondary_cdma_chan_b;
+ u_int8_t accolc;
+ char sw_version[64];
+ char hw_version[64];
+ u_int16_t prlver;
+ u_int16_t eriver;
+ u_int16_t nid;
+ u_int8_t last_call_end_reason; /* ? */
+ u_int8_t rssi;
+ u_int16_t channel;
+ u_int8_t prev;
+ u_int16_t pn_offset;
+ u_int8_t sys_select_pref;
+ u_int8_t mip_pref;
+ u_int8_t hybrid_pref;
+} __attribute__ ((packed));
+typedef struct WmcCmdFieldTestRsp WmcCmdFieldTestRsp;
+
+/*****************************************************/
+
#endif /* LIBWMC_PROTOCOL_H */