From b2f3f7ec4e75a2e51462c2ef75a35c832bfbc27e Mon Sep 17 00:00:00 2001 From: Minjun Li Date: Mon, 1 Jun 2009 14:57:32 +0800 Subject: [PATCH] Adding an interface exit function for at modem --- drivers/atmodem/atmodem.c | 28 ++++++++++++++++------------ 1 files changed, 16 insertions(+), 12 deletions(-) mode change 100644 => 100755 drivers/Makefile.am mode change 100644 => 100755 drivers/atmodem/at.h mode change 100644 => 100755 drivers/atmodem/atmodem.c mode change 100644 => 100755 drivers/atmodem/call-barring.c mode change 100644 => 100755 drivers/atmodem/call-forwarding.c mode change 100644 => 100755 drivers/atmodem/call-meter.c mode change 100644 => 100755 drivers/atmodem/call-settings.c mode change 100644 => 100755 drivers/atmodem/network-registration.c mode change 100644 => 100755 drivers/atmodem/session.c mode change 100644 => 100755 drivers/atmodem/session.h mode change 100644 => 100755 drivers/atmodem/sim.c mode change 100644 => 100755 drivers/atmodem/sms.c mode change 100644 => 100755 drivers/atmodem/ussd.c mode change 100644 => 100755 drivers/atmodem/voicecall.c mode change 100644 => 100755 drivers/phonet/phonet.c diff --git a/drivers/Makefile.am b/drivers/Makefile.am old mode 100644 new mode 100755 diff --git a/drivers/atmodem/at.h b/drivers/atmodem/at.h old mode 100644 new mode 100755 diff --git a/drivers/atmodem/atmodem.c b/drivers/atmodem/atmodem.c old mode 100644 new mode 100755 index 2f1e430..78155be --- a/drivers/atmodem/atmodem.c +++ b/drivers/atmodem/atmodem.c @@ -89,7 +89,20 @@ static void at_destroy(struct at_data *at) g_free(at); } - +static void interface_exit(struct at_data *at) +{ + if (at) { + at_sms_exit(at->modem); + at_call_forwarding_exit(at->modem); + at_call_settings_exit(at->modem); + at_network_registration_exit(at->modem); + at_voicecall_exit(at->modem); + at_call_meter_exit(at->modem); + at_call_barring_exit(at->modem); + at_ussd_exit(at->modem); + at_sim_exit(at->modem); + } +} static void manager_free(gpointer user) { GSList *l; @@ -102,15 +115,7 @@ static void manager_free(gpointer user) for (l = g_sessions; l; l = l->next) { struct at_data *at = l->data; - at_sms_exit(at->modem); - at_call_forwarding_exit(at->modem); - at_call_settings_exit(at->modem); - at_network_registration_exit(at->modem); - at_voicecall_exit(at->modem); - at_call_meter_exit(at->modem); - at_call_barring_exit(at->modem); - at_ussd_exit(at->modem); - at_sim_exit(at->modem); + interface_exit(at); ofono_modem_unregister(at->modem); at_destroy(at); @@ -421,8 +426,7 @@ static DBusMessage *manager_destroy(DBusConnection *conn, DBusMessage *msg, if (strcmp(at->modem->path, path)) continue; - at_network_registration_exit(at->modem); - at_voicecall_exit(at->modem); + interface_exit(at); ofono_modem_unregister(at->modem); g_sessions = g_slist_remove(g_sessions, at); diff --git a/drivers/atmodem/call-barring.c b/drivers/atmodem/call-barring.c old mode 100644 new mode 100755 diff --git a/drivers/atmodem/call-forwarding.c b/drivers/atmodem/call-forwarding.c old mode 100644 new mode 100755 diff --git a/drivers/atmodem/call-meter.c b/drivers/atmodem/call-meter.c old mode 100644 new mode 100755 diff --git a/drivers/atmodem/call-settings.c b/drivers/atmodem/call-settings.c old mode 100644 new mode 100755 diff --git a/drivers/atmodem/network-registration.c b/drivers/atmodem/network-registration.c old mode 100644 new mode 100755 diff --git a/drivers/atmodem/session.c b/drivers/atmodem/session.c old mode 100644 new mode 100755 diff --git a/drivers/atmodem/session.h b/drivers/atmodem/session.h old mode 100644 new mode 100755 diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c old mode 100644 new mode 100755 diff --git a/drivers/atmodem/sms.c b/drivers/atmodem/sms.c old mode 100644 new mode 100755 diff --git a/drivers/atmodem/ussd.c b/drivers/atmodem/ussd.c old mode 100644 new mode 100755 diff --git a/drivers/atmodem/voicecall.c b/drivers/atmodem/voicecall.c old mode 100644 new mode 100755 diff --git a/drivers/phonet/phonet.c b/drivers/phonet/phonet.c old mode 100644 new mode 100755 -- 1.6.0.3