---
drivers/isimodem/debug.c | 132 ++++++++++++++++++++++++++++++++++++++++++++
drivers/isimodem/debug.h | 9 +++
drivers/isimodem/mtc.h | 38 +++++++++++++
drivers/isimodem/version.h | 26 +++++++++
4 files changed, 205 insertions(+), 0 deletions(-)
create mode 100644 drivers/isimodem/version.h
diff --git a/drivers/isimodem/debug.c b/drivers/isimodem/debug.c
index 3d667b4..8b5fa16 100644
--- a/drivers/isimodem/debug.c
+++ b/drivers/isimodem/debug.c
@@ -165,6 +165,138 @@ const char *mtc_modem_state_name(enum mtc_modem_state
value)
return "MTC_<UNKNOWN>";
}
+const char *mce_message_id_name(enum mce_message_id value)
+{
+ switch (value) {
+ _(MCE_MODEM_STATE_IND);
+ _(MCE_MODEM_STATE_QUERY_REQ);
+ _(MCE_MODEM_STATE_QUERY_RESP);
+ _(MCE_RF_STATE_REQ);
+ _(MCE_RF_STATE_RESP);
+ _(MCE_RF_STATE_IND);
+ _(MCE_RF_STATE_QUERY_REQ);
+ _(MCE_RF_STATE_QUERY_RESP);
+ _(MCE_POWER_OFF_REQ);
+ _(MCE_POWER_OFF_RESP);
+ }
+ return "MCE_<UNKNOWN>";
+}
+
+const char *mce_modem_state_name(enum mce_modem_state value)
+{
+ switch (value) {
+ _(MCE_NORMAL);
+ _(MCE_LOCAL);
+ _(MCE_SW_RESET);
+ _(MCE_POWER_OFF);
+ }
+ return "MCE_<UNKNOWN>";
+}
+
+const char *mce_status_info(enum mce_status_info value)
+{
+ switch (value) {
+ _(MCE_OK);
+ _(MCE_FAIL);
+ _(MCE_ALREADY_ACTIVE);
+ _(MCE_TRANSITION_ONGOING);
+ }
+ return "MCE_<UNKNOWN>";
+}
+
+const char *mce_rf_state_name(enum mce_rf_state value)
+{
+ switch (value) {
+ _(MCE_RF_OFF);
+ _(MCE_RF_ON);
+ }
+ return "MCE_RF<UNKNOWN>";
+}
+
+const char *uicc_status_name(uint8_t value)
+{
+ switch (value) {
+ /* Request performed successfully */
+ _(UICC_STATUS_OK);
+ /* Error in performing the command */
+ _(UICC_STATUS_FAIL);
+ /* Status is Unknown */
+ _(UICC_STATUS_UNKNOWN);
+ /* Server is not ready */
+ _(UICC_STATUS_NOT_READY);
+ /* Server start up is completed */
+ _(UICC_STATUS_START_UP_COMPLETED);
+ /* Server is shutting down */
+ _(UICC_STATUS_SHUTTING_DOWN);
+ /* Smart card is not ready */
+ _(UICC_STATUS_CARD_NOT_READY);
+ /* Smart card is ready */
+ _(UICC_STATUS_CARD_READY);
+ /* Smart card is disconnected */
+ _(UICC_STATUS_CARD_DISCONNECTED);
+ /* Smart card is not present */
+ _(UICC_STATUS_CARD_NOT_PRESENT);
+ /* Smart card has been rejected */
+ _(UICC_STATUS_CARD_REJECTED);
+ /* Application is active */
+ _(UICC_STATUS_APPL_ACTIVE);
+ /* Application is not active */
+ _(UICC_STATUS_APPL_NOT_ACTIVE);
+ /* PIN verification used */
+ _(UICC_STATUS_PIN_ENABLED);
+ /* PIN verification not used */
+ _(UICC_STATUS_PIN_DISABLED);
+ }
+ return "UICC_STATUS<UNKNOWN>";
+}
+
+const char *uicc_subblock_name(uint8_t value)
+{
+ switch (value) {
+ _(UICC_SB_SHUT_DOWN_CONFIG);
+ _(UICC_SB_CARD_STATUS);
+ _(UICC_SB_CARD_INFO);
+ _(UICC_SB_CARD_REJECT_CAUSE);
+ _(UICC_SB_CLIENT);
+ _(UICC_SB_APPL_DATA_OBJECT);
+ _(UICC_SB_APPLICATION);
+ _(UICC_SB_APPL_INFO);
+ _(UICC_SB_APPL_STATUS);
+ _(UICC_SB_FCP);
+ _(UICC_SB_FCI);
+ _(UICC_SB_CHV);
+ _(UICC_SB_PIN);
+ _(UICC_SB_PIN_REF);
+ _(UICC_SB_PUK);
+ _(UICC_SB_PIN_SUBST);
+ _(UICC_SB_PIN_INFO);
+ _(UICC_SB_APPL_PATH);
+ _(UICC_SB_SESSION);
+ _(UICC_SB_FILE_DATA);
+ _(UICC_SB_APDU);
+ _(UICC_SB_TRANSPARENT_READ);
+ _(UICC_SB_TRANSPARENT_UPDATE);
+ _(UICC_SB_TRANSPARENT);
+ _(UICC_SB_LINEAR_FIXED);
+ _(UICC_SB_CYCLIC);
+ _(UICC_SB_TERMINAL_PROFILE);
+ _(UICC_SB_TERMINAL_RESPONSE);
+ _(UICC_SB_ENVELOPE);
+ _(UICC_SB_POLLING_SET);
+ _(UICC_SB_REFRESH);
+ _(UICC_SB_AID);
+ _(UICC_SB_REFRESH_RESULT);
+ _(UICC_SB_APDU_ACTIONS);
+ _(UICC_SB_OBJECT_ID);
+ _(UICC_SB_STATUS_WORD);
+ _(UICC_SB_APDU_SAP_INFO);
+ _(UICC_SB_ACCESS_MODE);
+ _(UICC_SB_RESP_INFO);
+ _(UICC_SB_APDU_SAP_CONFIG);
+ }
+ return "UICC_<UNKNOWN>";
+}
+
const char *sms_isi_cause_name(enum sms_isi_cause value)
{
switch (value) {
diff --git a/drivers/isimodem/debug.h b/drivers/isimodem/debug.h
index e149c2c..db01f04 100644
--- a/drivers/isimodem/debug.h
+++ b/drivers/isimodem/debug.h
@@ -27,6 +27,7 @@
#include "ss.h"
#include "mtc.h"
#include "sms.h"
+#include "uicc.h"
#include "sim.h"
#include "info.h"
#include "call.h"
@@ -41,6 +42,14 @@ const char *ss_ussd_type_name(enum ss_ussd_type value);
const char *mtc_isi_cause_name(enum mtc_isi_cause value);
const char *mtc_message_id_name(enum mtc_message_id value);
const char *mtc_modem_state_name(enum mtc_modem_state value);
+const char *mce_rf_state_name(enum mce_rf_state value);
+
+const char *mce_message_id_name(enum mce_message_id value);
+const char *mce_modem_state_name(enum mce_modem_state value);
+const char *mce_status_info(enum mce_status_info value);
+
+const char *uicc_subblock_name(uint8_t value);
+const char *uicc_status_name(uint8_t value);
const char *sms_gsm_cause_name(enum sms_gsm_cause value);
const char *sms_isi_cause_name(enum sms_isi_cause value);
diff --git a/drivers/isimodem/mtc.h b/drivers/isimodem/mtc.h
index 2db3e94..57e5040 100644
--- a/drivers/isimodem/mtc.h
+++ b/drivers/isimodem/mtc.h
@@ -27,9 +27,47 @@ extern "C" {
#endif
#define PN_MTC 0x15
+#define PN_MODEM_MCE 0xC2
#define MTC_TIMEOUT 5
#define MTC_STATE_REQ_TIMEOUT (6 + 5)
+enum mce_message_id {
+ MCE_MODEM_STATE_IND = 0x00,
+ MCE_MODEM_STATE_QUERY_REQ = 0x01,
+ MCE_MODEM_STATE_QUERY_RESP = 0x02,
+ MCE_RF_STATE_REQ = 0x03,
+ MCE_RF_STATE_RESP = 0x04,
+ MCE_RF_STATE_IND = 0x05,
+ MCE_RF_STATE_QUERY_REQ = 0x06,
+ MCE_RF_STATE_QUERY_RESP = 0x07,
+ MCE_POWER_OFF_REQ = 0x08,
+ MCE_POWER_OFF_RESP = 0x09
+};
+
+enum mce_rf_state {
+ MCE_RF_OFF = 0x00,
+ MCE_RF_ON = 0x01
+};
+
+enum mce_status_info {
+ MCE_OK = 0x00,
+ MCE_FAIL = 0x01,
+ MCE_ALREADY_ACTIVE = 0x06,
+ MCE_TRANSITION_ONGOING = 0x16
+};
+
+enum mce_modem_state {
+ MCE_NORMAL = 0x00,
+ MCE_LOCAL = 0x01,
+ MCE_SW_RESET = 0x80,
+ MCE_POWER_OFF = 0x81
+};
+
+enum mce_isi_action {
+ MCE_START = 0x03,
+ MCE_READY = 0x04
+};
+
enum mtc_isi_cause {
MTC_OK = 0x00,
MTC_FAIL = 0x01,
diff --git a/drivers/isimodem/version.h b/drivers/isimodem/version.h
new file mode 100644
index 0000000..9b0a993
--- /dev/null
+++ b/drivers/isimodem/version.h
@@ -0,0 +1,26 @@
+
+/*
+ *
+ * oFono - Open Source Telephony
+ *
+ * Copyright (C) ST-Ericsson SA 2011.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+enum isi_version {
+ ISI_20 = 0,
+ ISI_25 = 1
+};
--
1.7.3.5
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono