From bc97df35e6b11b4044fe827d859276deaade4a53 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 2 Jan 2009 22:43:18 +0100 Subject: [PATCH] Add plugin skeleton for Novatel devices --- bootstrap-configure | 1 + configure.ac | 7 ++++- plugins/Makefile.am | 6 ++++ plugins/novatel.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 plugins/novatel.c diff --git a/bootstrap-configure b/bootstrap-configure index 67346d0..63bdf08 100755 --- a/bootstrap-configure +++ b/bootstrap-configure @@ -18,6 +18,7 @@ fi --sysconfdir=/etc \ --enable-loopback \ --enable-wifi \ + --enable-novatel \ --enable-huawei \ --enable-hso \ --enable-ppp \ diff --git a/configure.ac b/configure.ac index f114c11..e6028d7 100644 --- a/configure.ac +++ b/configure.ac @@ -62,6 +62,10 @@ if (test "${enable_wifi}" = "yes"); then fi AM_CONDITIONAL(WIFI, test "${enable_wifi}" = "yes") +AC_ARG_ENABLE(novatel, AC_HELP_STRING([--enable-novatel], + [enable Novatel support]), [enable_novatel=${enableval}]) +AM_CONDITIONAL(NOVATEL, test "${enable_novatel}" = "yes") + AC_ARG_ENABLE(huawei, AC_HELP_STRING([--enable-huawei], [enable HUAWEI support]), [enable_huawei=${enableval}]) AM_CONDITIONAL(HUAWEI, test "${enable_huawei}" = "yes") @@ -72,7 +76,8 @@ AM_CONDITIONAL(HSO, test "${enable_hso}" = "yes") AC_ARG_ENABLE(ppp, AC_HELP_STRING([--enable-ppp], [enable PPP support]), [enable_ppp=${enableval}]) -if (test "${enable_ppp}" = "yes" || test "${enable_huawei}" = "yes"); then +if (test "${enable_ppp}" = "yes" || test "${enable_novatel}" = "yes" || + test "${enable_huawei}" = "yes"); then AC_PATH_PROG(PPPD, [pppd], [], $PATH:/sbin:/usr/sbin) AC_CHECK_HEADERS(pppd/pppd.h, enable_ppp=yes, AC_MSG_ERROR(PPP development files are required)) diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 520abb8..e737625 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -23,6 +23,12 @@ endif bluetooth_la_SOURCES = bluetooth.c inet.h inet.c bluetooth_la_LIBADD = @GDBUS_LIBS@ +if NOVATEL +plugin_LTLIBRARIES += novatel.la + +novatel_la_SOURCES = novatel.c modem.h modem.c +endif + if HUAWEI plugin_LTLIBRARIES += huawei.la diff --git a/plugins/novatel.c b/plugins/novatel.c new file mode 100644 index 0000000..f43c5eb --- /dev/null +++ b/plugins/novatel.c @@ -0,0 +1,83 @@ +/* + * + * Connection Manager + * + * Copyright (C) 2007-2009 Intel Corporation. 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 + +#define CONNMAN_API_SUBJECT_TO_CHANGE +#include +#include +#include + +#include "modem.h" + +static int novatel_probe(struct connman_device *device) +{ + DBG("device %p", device); + + return 0; +} + +static void novatel_remove(struct connman_device *device) +{ + DBG("device %p", device); +} + +static int novatel_enable(struct connman_device *device) +{ + DBG("device %p", device); + + connman_device_set_powered(device, TRUE); + + return 0; +} + +static int novatel_disable(struct connman_device *device) +{ + DBG("device %p", device); + + connman_device_set_powered(device, FALSE); + + return 0; +} + +static struct connman_device_driver novatel_driver = { + .name = "novatel-device", + .type = CONNMAN_DEVICE_TYPE_NOVATEL, + .probe = novatel_probe, + .remove = novatel_remove, + .enable = novatel_enable, + .disable = novatel_disable, +}; + +static int novatel_init(void) +{ + return connman_device_driver_register(&novatel_driver); +} + +static void novatel_exit(void) +{ + connman_device_driver_unregister(&novatel_driver); +} + +CONNMAN_PLUGIN_DEFINE(novatel, "Novatel Wireless device plugin", VERSION, + novatel_init, novatel_exit) -- 2.7.4