From 452e55162ac46c929e28da59cc248ccad0f3b23e Mon Sep 17 00:00:00 2001 From: Mario Tokarz Date: Wed, 3 Aug 2011 15:04:20 +0200 Subject: [PATCH] dunmodem: Add stub for gprs. --- Makefile.am | 3 +- drivers/dunmodem/dunmodem.c | 2 + drivers/dunmodem/dunmodem.h | 3 ++ drivers/dunmodem/gprs.c | 92 +++++++++++++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 drivers/dunmodem/gprs.c diff --git a/Makefile.am b/Makefile.am index cef98928..9c567113 100644 --- a/Makefile.am +++ b/Makefile.am @@ -248,7 +248,8 @@ builtin_modules += dunmodem builtin_sources += drivers/atmodem/atutil.h \ drivers/dunmodem/dunmodem.h \ drivers/dunmodem/dunmodem.c \ - drivers/dunmodem/network-registration.c + drivers/dunmodem/network-registration.c \ + drivers/dunmodem/gprs.c builtin_modules += hfpmodem builtin_sources += drivers/atmodem/atutil.h \ diff --git a/drivers/dunmodem/dunmodem.c b/drivers/dunmodem/dunmodem.c index 67d62577..35a7dbb2 100644 --- a/drivers/dunmodem/dunmodem.c +++ b/drivers/dunmodem/dunmodem.c @@ -35,6 +35,7 @@ static int dunmodem_init(void) { dun_netreg_init(); + dun_gprs_init(); return 0; } @@ -42,6 +43,7 @@ static int dunmodem_init(void) static void dunmodem_exit(void) { dun_netreg_exit(); + dun_gprs_exit(); } OFONO_PLUGIN_DEFINE(dunmodem, "Dialup modem driver", VERSION, diff --git a/drivers/dunmodem/dunmodem.h b/drivers/dunmodem/dunmodem.h index 9a878410..4fbd4a53 100644 --- a/drivers/dunmodem/dunmodem.h +++ b/drivers/dunmodem/dunmodem.h @@ -23,3 +23,6 @@ extern void dun_netreg_init(void); extern void dun_netreg_exit(void); + +extern void dun_gprs_init(void); +extern void dun_gprs_exit(void); diff --git a/drivers/dunmodem/gprs.c b/drivers/dunmodem/gprs.c new file mode 100644 index 00000000..edfe803f --- /dev/null +++ b/drivers/dunmodem/gprs.c @@ -0,0 +1,92 @@ +/* + * + * oFono - Open Source Telephony + * + * Copyright (C) 2011 BMW Car IT GmbH. All rights reserved. + * + * 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 + * + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include +#include + +#include "dunmodem.h" + +static void dun_gprs_set_attached(struct ofono_gprs *gprs, int attached, + ofono_gprs_cb_t cb, void *data) +{ + DBG(""); + + CALLBACK_WITH_SUCCESS(cb, data); +} + +static gboolean dun_gprs_finish_registration(gpointer user_data) +{ + struct ofono_gprs *gprs = user_data; + + ofono_gprs_register(gprs); + + return FALSE; +} + +static int dun_gprs_probe(struct ofono_gprs *gprs, + unsigned int vendor, void *data) +{ + DBG(""); + + g_idle_add(dun_gprs_finish_registration, gprs); + + return 0; +} + +static void dun_gprs_remove(struct ofono_gprs *gprs) +{ + DBG(""); +} + +static void dun_gprs_attached_status(struct ofono_gprs *gprs, + ofono_gprs_status_cb_t cb, + void *data) +{ + DBG(""); + + CALLBACK_WITH_SUCCESS(cb, 1, data); +} + +static struct ofono_gprs_driver driver = { + .name = "dunmodem", + .probe = dun_gprs_probe, + .remove = dun_gprs_remove, + .set_attached = dun_gprs_set_attached, + .attached_status = dun_gprs_attached_status, +}; + +void dun_gprs_init(void) +{ + ofono_gprs_driver_register(&driver); +} + +void dun_gprs_exit(void) +{ + ofono_gprs_driver_unregister(&driver); +}