* [RFC PATCH 0/4] Atom for Neighbour Cell Info
@ 2010-12-21 14:00 Antti Paila
2010-12-21 14:00 ` [RFC PATCH 1/4] cell-info: Atom for ECID info of neighb cells Antti Paila
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Antti Paila @ 2010-12-21 14:00 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 382 bytes --]
This series of patches implements an interface for client
application to fetch the ECID information of neighbouring
cells using DBUS.
src/cell-info.c | 537 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
include/cell-info.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++
include/dbus.h | 1 +
src/ofono.h | 1 +
Makefile.am | 4 ++--
^ permalink raw reply [flat|nested] 7+ messages in thread
* [RFC PATCH 1/4] cell-info: Atom for ECID info of neighb cells
2010-12-21 14:00 [RFC PATCH 0/4] Atom for Neighbour Cell Info Antti Paila
@ 2010-12-21 14:00 ` Antti Paila
2010-12-21 14:00 ` [RFC PATCH 2/4] cell-info: Header file for cell-info atom Antti Paila
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Antti Paila @ 2010-12-21 14:00 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 12723 bytes --]
---
src/cell-info.c | 537 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 537 insertions(+), 0 deletions(-)
create mode 100644 src/cell-info.c
diff --git a/src/cell-info.c b/src/cell-info.c
new file mode 100644
index 0000000..13ae03c
--- /dev/null
+++ b/src/cell-info.c
@@ -0,0 +1,537 @@
+/*
+ *
+ * oFono - Open Source Telephony
+ *
+ * Copyright (C) 2008-2010 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 <config.h>
+#endif
+
+#include <string.h>
+#include <stdio.h>
+#include <errno.h>
+
+#include <glib.h>
+#include <gdbus.h>
+#include <sys/time.h>
+
+#include "ofono.h"
+
+#include "common.h"
+#include "util.h"
+#include "ofono/cell-info.h"
+
+#define OFONO_MAX_NMR_COUNT 15
+#define OFONO_MAX_MEASURED_CELL_COUNT 32
+#define OFONO_MAX_MEAS_RES_LIST_COUNT 8
+
+
+enum ofono_cell_type {
+ OFONO_CELL_TYPE_GERAN,
+ OFONO_CELL_TYPE_UTRA_FDD
+};
+
+enum UTRA_MEAS_TYPE {
+ UTRA_MEAS_TYPE_INTER_FREQ,
+ UTRA_MEAS_TYPE_INTRA_FREQ,
+};
+
+struct gsm {
+ int lac;
+ int ci;
+ int ta;
+ int no_cells;
+ struct {
+ int arfcn;
+ int bsic;
+ int rxlev;
+
+ } nmr[OFONO_MAX_NMR_COUNT];
+};
+
+struct cell_measured_results {
+ int ucid;
+ int sc;
+ int ecn0;
+ int rscp;
+ int pathloss;
+};
+
+struct measured_results_list {
+ int dl_freq;
+ int ul_freq;
+ int rssi;
+ int no_cells;
+ struct cell_measured_results cmr[OFONO_MAX_MEASURED_CELL_COUNT];
+};
+
+struct wcdma {
+ int ucid;
+ int dl_freq;
+ int ul_freq;
+ int sc;
+ int no_freq;
+ struct measured_results_list mrl[OFONO_MAX_MEAS_RES_LIST_COUNT];
+
+};
+
+struct ofono_cell_info_results {
+ enum ofono_cell_type rat;
+ int mcc;
+ int mnc;
+ union {
+ struct gsm gsm;
+ struct wcdma wcdma;
+ };
+
+};
+
+struct ofono_cell_info {
+ DBusMessage *pending;
+ struct ofono_atom *atom;
+ const struct ofono_cell_info_driver *driver;
+ struct ofono_cell_info_results cir;
+ void *driver_data;
+};
+
+
+static DBusMessage *ci_get_cells(DBusConnection *, DBusMessage *, void *);
+
+static GSList *g_drivers = NULL;
+
+static GDBusMethodTable ci_methods[] = {
+ { "GetProperties", "", "a{sv}aa{sv}", ci_get_cells },
+ { }
+};
+
+static GDBusSignalTable ci_signals[] = {
+ { }
+};
+
+int ofono_cell_info_driver_register(struct ofono_cell_info_driver *driver)
+{
+ DBG("driver: %p, name: %s", driver, driver->name);
+
+ if (driver->probe == NULL)
+ return -EINVAL;
+
+ g_drivers = g_slist_prepend(g_drivers, (void *) driver);
+
+ return 0;
+}
+
+void ofono_cell_info_driver_unregister(struct ofono_cell_info_driver *driver)
+{
+ DBG("driver: %p, name: %s", driver, driver->name);
+
+ g_drivers = g_slist_remove(g_drivers, (void *) driver);
+}
+
+void ofono_cell_info_remove(struct ofono_cell_info *ci)
+{
+ __ofono_atom_free(ci->atom);
+}
+
+static void cell_info_unregister(struct ofono_atom *atom)
+{
+ struct ofono_cell_info *ci = __ofono_atom_get_data(atom);
+ const char *path = __ofono_atom_get_path(ci->atom);
+ DBusConnection *conn = ofono_dbus_get_connection();
+ struct ofono_modem *modem = __ofono_atom_get_modem(ci->atom);
+
+ ofono_modem_remove_interface(modem, OFONO_CELL_INFO_INTERFACE);
+
+ if(!g_dbus_unregister_interface(conn, path, OFONO_CELL_INFO_INTERFACE))
+ ofono_error("Failed to unregister interface %s",
+ OFONO_CELL_INFO_INTERFACE);
+}
+
+static void cell_info_remove(struct ofono_atom *atom)
+{
+ struct ofono_cell_info *ci = __ofono_atom_get_data(atom);
+ DBG("atom: %p", atom);
+
+ if (ci == NULL)
+ return;
+
+ if (ci->driver && ci->driver->remove)
+ ci->driver->remove(ci);
+
+ g_free(ci);
+}
+
+void ofono_cell_info_register(struct ofono_cell_info *ci)
+{
+ DBusConnection *conn = ofono_dbus_get_connection();
+ struct ofono_modem *modem = __ofono_atom_get_modem(ci->atom);
+ const char *path = __ofono_atom_get_path(ci->atom);
+
+ if (!g_dbus_register_interface(conn, path,
+ OFONO_CELL_INFO_INTERFACE,
+ ci_methods, ci_signals, NULL,
+ ci, NULL)) {
+ ofono_error("Could not create %s interface",
+ OFONO_CELL_INFO_INTERFACE);
+
+ return;
+ }
+
+ ofono_modem_add_interface(modem, OFONO_CELL_INFO_INTERFACE);
+
+ __ofono_atom_register(ci->atom, cell_info_unregister);
+}
+
+struct ofono_cell_info *ofono_cell_info_create(struct ofono_modem *modem,
+ unsigned int vendor,
+ const char *driver,
+ void *data)
+{
+ struct ofono_cell_info *ci;
+ GSList *l;
+
+ if (driver == NULL)
+ return NULL;
+
+ ci = g_try_new0(struct ofono_cell_info, 1);
+ if (ci == NULL)
+ return NULL;
+
+ ci->atom = __ofono_modem_add_atom(modem,
+ OFONO_ATOM_TYPE_CELL_INFO,
+ cell_info_remove, ci);
+
+ for (l = g_drivers; l; l = l->next) {
+ const struct ofono_cell_info_driver *drv = l->data;
+
+ if (g_strcmp0(drv->name, driver))
+ continue;
+
+ if (drv->probe(ci, vendor, data) < 0)
+ continue;
+
+ ci->driver = drv;
+ break;
+ }
+
+ return ci;
+}
+
+void *ofono_cell_info_get_data(struct ofono_cell_info *ci)
+{
+ return ci->driver_data;
+}
+
+void ofono_cell_info_set_data(struct ofono_cell_info *ci, void *cid)
+{
+ ci->driver_data = cid;
+}
+
+static int append_geran_meta_data(DBusMessageIter *iter,
+ struct ofono_cell_info_results *ci)
+{
+ DBusMessageIter iter_array;
+ const char *type = "GERAN";
+ dbus_message_iter_open_container(iter,
+ DBUS_TYPE_ARRAY,
+ "{sv}",
+ &iter_array);
+
+ ofono_dbus_dict_append(&iter_array,
+ "Type",
+ DBUS_TYPE_STRING,
+ &type);
+ ofono_dbus_dict_append(&iter_array,
+ "MNC",
+ DBUS_TYPE_INT32,
+ &ci->mnc);
+ ofono_dbus_dict_append(&iter_array,
+ "MCC",
+ DBUS_TYPE_UINT32,
+ &ci->mcc);
+ ofono_dbus_dict_append(&iter_array,
+ "LAC",
+ DBUS_TYPE_UINT32,
+ &ci->gsm.lac);
+ ofono_dbus_dict_append(&iter_array,
+ "CI",
+ DBUS_TYPE_UINT32,
+ &ci->gsm.ci);
+
+ if (ci->gsm.ta != -1)
+ ofono_dbus_dict_append(&iter_array,
+ "TA",
+ DBUS_TYPE_UINT32,
+ &ci->gsm.ta);
+
+ dbus_message_iter_close_container(iter, &iter_array);
+
+ return 0;
+
+}
+
+static int fill_geran_cell_info(DBusMessage *msg,
+ struct ofono_cell_info_results *ci)
+{
+ DBusMessageIter iter, iter_array, iter_array_array;
+
+ int i;
+
+ dbus_message_iter_init_append(msg, &iter);
+
+ append_geran_meta_data(&iter, ci);
+
+ dbus_message_iter_close_container(&iter, &iter_array);
+
+ dbus_message_iter_open_container(&iter,
+ DBUS_TYPE_ARRAY,
+ "a{sv}",
+ &iter_array);
+
+ for (i = 0; i < ci->gsm.no_cells; ++i) {
+ dbus_message_iter_open_container(&iter_array,
+ DBUS_TYPE_ARRAY,
+ "{sv}",
+ &iter_array_array);
+ ofono_dbus_dict_append(&iter_array_array,
+ "ARFCN",
+ DBUS_TYPE_UINT32,
+ &ci->gsm.nmr[i].arfcn);
+ ofono_dbus_dict_append(&iter_array_array,
+ "BSIC",
+ DBUS_TYPE_UINT32,
+ &ci->gsm.nmr[i].bsic);
+ ofono_dbus_dict_append(&iter_array_array,
+ "RXLEV",
+ DBUS_TYPE_UINT32,
+ &ci->gsm.nmr[i].rxlev);
+
+ dbus_message_iter_close_container(&iter_array,
+ &iter_array_array);
+ }
+
+ dbus_message_iter_close_container(&iter, &iter_array);
+
+ return 0;
+}
+
+static int append_utra_cell_list(DBusMessageIter *iter,
+ struct cell_measured_results *cmr, int no_cells)
+{
+ int j;
+
+ for (j = 0; j < no_cells; ++j) {
+
+ ofono_dbus_dict_append(iter,
+ "SC",
+ DBUS_TYPE_UINT32,
+ &cmr[j].sc);
+
+ if (cmr[j].ucid != -1)
+ ofono_dbus_dict_append(iter,
+ "UCID",
+ DBUS_TYPE_UINT32,
+ &cmr[j].ucid);
+
+ if (cmr[j].ecn0 != -1)
+ ofono_dbus_dict_append(iter,
+ "ECN0",
+ DBUS_TYPE_UINT32,
+ &cmr[j].ecn0);
+
+ if (cmr[j].rscp != -1)
+ ofono_dbus_dict_append(iter,
+ "RSCP",
+ DBUS_TYPE_UINT32,
+ &cmr[j].rscp);
+
+ if (cmr[j].pathloss != -1)
+ ofono_dbus_dict_append(iter,
+ "Pathloss",
+ DBUS_TYPE_UINT32,
+ &cmr[j].rscp);
+
+ }
+
+ return 0;
+}
+
+static int append_utra_freq_info(DBusMessageIter *iter,
+ struct measured_results_list *mrl)
+{
+ ofono_dbus_dict_append(iter,
+ "RSSI",
+ DBUS_TYPE_INT32,
+ &mrl->rssi);
+
+ ofono_dbus_dict_append(iter,
+ "UARFCN-DL",
+ DBUS_TYPE_UINT32,
+ &mrl->dl_freq);
+
+ ofono_dbus_dict_append(iter,
+ "UARFCN-UL",
+ DBUS_TYPE_INT32,
+ &mrl->ul_freq);
+ return 0;
+}
+
+static int append_utra_neigh_info(DBusMessageIter *iter,
+ struct wcdma *wcdma)
+{
+ DBusMessageIter iter_array, iter_array_array;
+ int i;
+
+ dbus_message_iter_open_container(iter,
+ DBUS_TYPE_ARRAY,
+ "a{sv}",
+ &iter_array);
+
+ for (i = 0; i < wcdma->no_freq; ++i) {
+ dbus_message_iter_open_container(&iter_array,
+ DBUS_TYPE_ARRAY,
+ "{sv}",
+ &iter_array_array);
+ append_utra_freq_info(&iter_array_array, &wcdma->mrl[i]);
+ append_utra_cell_list(&iter_array_array, wcdma->mrl[i].cmr,
+ wcdma->mrl[i].no_cells);
+
+ dbus_message_iter_close_container(&iter_array,
+ &iter_array_array);
+ }
+
+ dbus_message_iter_close_container(iter, &iter_array);
+
+ return 0;
+}
+
+static int fill_utra_cell_info(DBusMessage *msg,
+ struct ofono_cell_info_results *ci)
+{
+ DBusMessageIter iter, iter_array;
+ const char *type = "UTRA-FDD";
+
+ dbus_message_iter_init_append(msg, &iter);
+ dbus_message_iter_open_container(&iter,
+ DBUS_TYPE_ARRAY,
+ "{sv}",
+ &iter_array);
+
+ ofono_dbus_dict_append(&iter_array,
+ "Type",
+ DBUS_TYPE_STRING,
+ &type);
+ ofono_dbus_dict_append(&iter_array,
+ "MNC",
+ DBUS_TYPE_INT32,
+ &ci->mnc);
+ ofono_dbus_dict_append(&iter_array,
+ "MCC",
+ DBUS_TYPE_UINT32,
+ &ci->mcc);
+ ofono_dbus_dict_append(&iter_array,
+ "UCID",
+ DBUS_TYPE_UINT32,
+ &ci->wcdma.ucid);
+ ofono_dbus_dict_append(&iter_array,
+ "SC",
+ DBUS_TYPE_UINT32,
+ &ci->wcdma.sc);
+ ofono_dbus_dict_append(&iter_array,
+ "UARFCN-DL",
+ DBUS_TYPE_UINT32,
+ &ci->wcdma.dl_freq);
+
+ if (ci->wcdma.ul_freq != -1) {
+ ofono_dbus_dict_append(&iter_array,
+ "UARFCN-UL",
+ DBUS_TYPE_UINT32,
+ &ci->wcdma.ul_freq);
+ }
+
+ dbus_message_iter_close_container(&iter, &iter_array);
+
+ append_utra_neigh_info(&iter, &ci->wcdma);
+
+ return 0;
+}
+
+void ofono_cell_info_query_cb(const struct ofono_error *error,
+ void *data)
+{
+ struct ofono_cell_info *ci = data;
+ struct ofono_cell_info_results *ci_results = &ci->cir;
+ DBusMessage *msg = ci->pending;
+ DBusMessage *reply;
+ int status;
+
+ if (error->type != OFONO_ERROR_TYPE_NO_ERROR) {
+ ofono_error("Neighbor cell info query failed");
+ goto error;
+ }
+
+ reply = dbus_message_new_method_return(msg);
+ if (reply == NULL) {
+ ofono_error("Failed to create response");
+ goto error;
+ }
+
+ if (ci_results->rat == OFONO_CELL_TYPE_GERAN) {
+ ofono_debug("GSM CELL INFO RECEIVED");
+
+ status = fill_geran_cell_info(msg, ci_results);
+ if (status != 0) {
+ ofono_error("Failed to fill geran info");
+ goto error;
+ }
+
+ } else if (ci_results->rat == OFONO_CELL_TYPE_UTRA_FDD) {
+ ofono_debug("WCDMA CELL INFO RECEIVED");
+
+ status = fill_utra_cell_info(msg, ci_results);
+ if (status != 0) {
+ ofono_error("Failed to fill utra info");
+ goto error;
+ }
+
+ } else {
+ ofono_error("Unrecognized cell type.");
+ goto error;
+ }
+
+ __ofono_dbus_pending_reply(&msg, reply);
+ return;
+
+error:
+ reply = __ofono_error_failed(msg);
+ __ofono_dbus_pending_reply(&msg, reply);
+ return;
+
+}
+
+static DBusMessage *ci_get_cells(DBusConnection *conn, DBusMessage *msg,
+ void *data)
+{
+ struct ofono_cell_info *ci = data;
+
+ ci->pending = dbus_message_ref(msg);
+ ci->driver->query(ci, ofono_cell_info_query_cb, ci->driver_data);
+
+ return NULL;
+}
+
--
1.7.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [RFC PATCH 2/4] cell-info: Header file for cell-info atom
2010-12-21 14:00 [RFC PATCH 0/4] Atom for Neighbour Cell Info Antti Paila
2010-12-21 14:00 ` [RFC PATCH 1/4] cell-info: Atom for ECID info of neighb cells Antti Paila
@ 2010-12-21 14:00 ` Antti Paila
2010-12-21 18:32 ` Bastian, Waldo
2010-12-21 14:00 ` [RFC PATCH 3/4] cell-info: Interface declarations Antti Paila
` (2 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Antti Paila @ 2010-12-21 14:00 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 2474 bytes --]
---
include/cell-info.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 66 insertions(+), 0 deletions(-)
create mode 100644 include/cell-info.h
diff --git a/include/cell-info.h b/include/cell-info.h
new file mode 100644
index 0000000..d9c7810
--- /dev/null
+++ b/include/cell-info.h
@@ -0,0 +1,66 @@
+/*
+ *
+ * oFono - Open Source Telephony
+ *
+ * Copyright (C) 2008-2010 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
+ *
+ */
+
+#ifndef __OFONO_CELL_INFO_H
+#define __OFONO_CELL_INFO_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <ofono/types.h>
+
+struct ofono_cell_info;
+
+typedef void (*ofono_cell_info_query_cb_t)(const struct ofono_error *error,
+ void *data);
+
+struct ofono_cell_info_driver {
+ const char *name;
+ int (*probe)(struct ofono_cell_info *ci,
+ unsigned int vendor,
+ void *data);
+ void (*remove)(struct ofono_cell_info *ci);
+ void (*query)(struct ofono_cell_info *ci,
+ ofono_cell_info_query_cb_t,
+ void *data);
+};
+
+struct ofono_cell_info *ofono_cell_info_create(struct ofono_modem *modem,
+ unsigned int vendor,
+ const char *driver,
+ void *data);
+
+void ofono_cell_info_register(struct ofono_cell_info *ci);
+void ofono_cell_info_remove(struct ofono_cell_info *ci);
+int ofono_cell_info_driver_register(struct ofono_cell_info_driver *driver);
+void ofono_cell_info_driver_unregister(struct ofono_cell_info_driver *driver);
+void *ofono_cell_info_get_data(struct ofono_cell_info *ci);
+void ofono_cell_info_set_data(struct ofono_cell_info *ci, void *cid);
+void ofono_cell_info_query_cb(const struct ofono_error *error,
+ void *data);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __OFONO_CELL_INFO_H */
--
1.7.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [RFC PATCH 3/4] cell-info: Interface declarations
2010-12-21 14:00 [RFC PATCH 0/4] Atom for Neighbour Cell Info Antti Paila
2010-12-21 14:00 ` [RFC PATCH 1/4] cell-info: Atom for ECID info of neighb cells Antti Paila
2010-12-21 14:00 ` [RFC PATCH 2/4] cell-info: Header file for cell-info atom Antti Paila
@ 2010-12-21 14:00 ` Antti Paila
2010-12-21 14:00 ` [RFC PATCH 4/4] cell-info: New files included for compilation Antti Paila
2010-12-21 14:04 ` [RFC PATCH 0/4] Atom for Neighbour Cell Info Marcel Holtmann
4 siblings, 0 replies; 7+ messages in thread
From: Antti Paila @ 2010-12-21 14:00 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1068 bytes --]
---
include/dbus.h | 1 +
src/ofono.h | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/include/dbus.h b/include/dbus.h
index c527515..98839cc 100644
--- a/include/dbus.h
+++ b/include/dbus.h
@@ -45,6 +45,7 @@ extern "C" {
#define OFONO_MESSAGE_WAITING_INTERFACE "org.ofono.MessageWaiting"
#define OFONO_NETWORK_REGISTRATION_INTERFACE "org.ofono.NetworkRegistration"
#define OFONO_NETWORK_OPERATOR_INTERFACE "org.ofono.NetworkOperator"
+#define OFONO_CELL_INFO_INTERFACE "org.ofono.CellInfo"
#define OFONO_PHONEBOOK_INTERFACE "org.ofono.Phonebook"
#define OFONO_RADIO_SETTINGS_INTERFACE "org.ofono.RadioSettings"
#define OFONO_AUDIO_SETTINGS_INTERFACE "org.ofono.AudioSettings"
diff --git a/src/ofono.h b/src/ofono.h
index 792134b..cd89a8f 100644
--- a/src/ofono.h
+++ b/src/ofono.h
@@ -126,6 +126,7 @@ enum ofono_atom_type {
OFONO_ATOM_TYPE_STK = 20,
OFONO_ATOM_TYPE_NETTIME = 21,
OFONO_ATOM_TYPE_CTM = 22,
+ OFONO_ATOM_TYPE_CELL_INFO = 23,
};
enum ofono_atom_watch_condition {
--
1.7.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [RFC PATCH 4/4] cell-info: New files included for compilation
2010-12-21 14:00 [RFC PATCH 0/4] Atom for Neighbour Cell Info Antti Paila
` (2 preceding siblings ...)
2010-12-21 14:00 ` [RFC PATCH 3/4] cell-info: Interface declarations Antti Paila
@ 2010-12-21 14:00 ` Antti Paila
2010-12-21 14:04 ` [RFC PATCH 0/4] Atom for Neighbour Cell Info Marcel Holtmann
4 siblings, 0 replies; 7+ messages in thread
From: Antti Paila @ 2010-12-21 14:00 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 991 bytes --]
---
Makefile.am | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 12b3c33..86f1ab5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,7 +14,7 @@ include_HEADERS = include/log.h include/plugin.h include/history.h \
include/gprs.h include/gprs-context.h \
include/radio-settings.h include/stk.h \
include/audio-settings.h include/nettime.h \
- include/ctm.h
+ include/ctm.h include/cell-info.h
nodist_include_HEADERS = include/version.h
@@ -319,7 +319,7 @@ src_ofonod_SOURCES = $(gdbus_sources) $(builtin_sources) src/ofono.ver \
src/radio-settings.c src/stkutil.h src/stkutil.c \
src/nettime.c src/stkagent.c src/stkagent.h \
src/simfs.c src/simfs.h src/audio-settings.c \
- src/smsagent.c src/smsagent.h src/ctm.c
+ src/smsagent.c src/smsagent.h src/ctm.c src/cell-info.c
src_ofonod_LDADD = $(builtin_libadd) @GLIB_LIBS@ @DBUS_LIBS@ @CAPNG_LIBS@ -ldl
--
1.7.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [RFC PATCH 0/4] Atom for Neighbour Cell Info
2010-12-21 14:00 [RFC PATCH 0/4] Atom for Neighbour Cell Info Antti Paila
` (3 preceding siblings ...)
2010-12-21 14:00 ` [RFC PATCH 4/4] cell-info: New files included for compilation Antti Paila
@ 2010-12-21 14:04 ` Marcel Holtmann
4 siblings, 0 replies; 7+ messages in thread
From: Marcel Holtmann @ 2010-12-21 14:04 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 602 bytes --]
Hi Antti,
> This series of patches implements an interface for client
> application to fetch the ECID information of neighbouring
> cells using DBUS.
>
> src/cell-info.c | 537 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> include/cell-info.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++
> include/dbus.h | 1 +
> src/ofono.h | 1 +
> Makefile.am | 4 ++--
I am missing the D-Bus API documentation in this patch. I know that
proposals have been posted, but you need to pick that up and make it
part of your patchset.
Regards
Marcel
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [RFC PATCH 2/4] cell-info: Header file for cell-info atom
2010-12-21 14:00 ` [RFC PATCH 2/4] cell-info: Header file for cell-info atom Antti Paila
@ 2010-12-21 18:32 ` Bastian, Waldo
0 siblings, 0 replies; 7+ messages in thread
From: Bastian, Waldo @ 2010-12-21 18:32 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 2992 bytes --]
Shouldn't ofono_cell_info_results be defined here and included as an argument for
ofono_cell_info_query_cb_t ?
Cheers,
Waldo
-----Original Message-----
From: ofono-bounces(a)ofono.org [mailto:ofono-bounces(a)ofono.org] On Behalf Of Antti Paila
Sent: Tuesday, December 21, 2010 6:00 AM
To: ofono(a)ofono.org
Subject: [RFC PATCH 2/4] cell-info: Header file for cell-info atom
---
include/cell-info.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 66 insertions(+), 0 deletions(-)
create mode 100644 include/cell-info.h
diff --git a/include/cell-info.h b/include/cell-info.h
new file mode 100644
index 0000000..d9c7810
--- /dev/null
+++ b/include/cell-info.h
@@ -0,0 +1,66 @@
+/*
+ *
+ * oFono - Open Source Telephony
+ *
+ * Copyright (C) 2008-2010 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
+ *
+ */
+
+#ifndef __OFONO_CELL_INFO_H
+#define __OFONO_CELL_INFO_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <ofono/types.h>
+
+struct ofono_cell_info;
+
+typedef void (*ofono_cell_info_query_cb_t)(const struct ofono_error *error,
+ void *data);
+
+struct ofono_cell_info_driver {
+ const char *name;
+ int (*probe)(struct ofono_cell_info *ci,
+ unsigned int vendor,
+ void *data);
+ void (*remove)(struct ofono_cell_info *ci);
+ void (*query)(struct ofono_cell_info *ci,
+ ofono_cell_info_query_cb_t,
+ void *data);
+};
+
+struct ofono_cell_info *ofono_cell_info_create(struct ofono_modem *modem,
+ unsigned int vendor,
+ const char *driver,
+ void *data);
+
+void ofono_cell_info_register(struct ofono_cell_info *ci);
+void ofono_cell_info_remove(struct ofono_cell_info *ci);
+int ofono_cell_info_driver_register(struct ofono_cell_info_driver *driver);
+void ofono_cell_info_driver_unregister(struct ofono_cell_info_driver *driver);
+void *ofono_cell_info_get_data(struct ofono_cell_info *ci);
+void ofono_cell_info_set_data(struct ofono_cell_info *ci, void *cid);
+void ofono_cell_info_query_cb(const struct ofono_error *error,
+ void *data);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __OFONO_CELL_INFO_H */
--
1.7.1
_______________________________________________
ofono mailing list
ofono(a)ofono.org
http://lists.ofono.org/listinfo/ofono
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2010-12-21 18:32 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-21 14:00 [RFC PATCH 0/4] Atom for Neighbour Cell Info Antti Paila
2010-12-21 14:00 ` [RFC PATCH 1/4] cell-info: Atom for ECID info of neighb cells Antti Paila
2010-12-21 14:00 ` [RFC PATCH 2/4] cell-info: Header file for cell-info atom Antti Paila
2010-12-21 18:32 ` Bastian, Waldo
2010-12-21 14:00 ` [RFC PATCH 3/4] cell-info: Interface declarations Antti Paila
2010-12-21 14:00 ` [RFC PATCH 4/4] cell-info: New files included for compilation Antti Paila
2010-12-21 14:04 ` [RFC PATCH 0/4] Atom for Neighbour Cell Info Marcel Holtmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox