Hi Antti,

On Wed, 2010-12-22 at 11:35 +0200, ext Antti Paila wrote:
> ---
>  include/cell-info.h |  133 
> +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 133 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..3941e69
> --- /dev/null
> +++ b/include/cell-info.h
> @@ -0,0 +1,133 @@
> +/*
> + *
> + *  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;
> +
> +#define OFONO_CI_FIELD_UNDEFINED -1001
> +#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 geran_neigh_cell{
> +             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];
> +
> +};

Since these things are called GERAN and UTRAN over D-Bus, it would make
sense to use the same naming here instead of struct gsm and struct
wcdma.

> +struct ofono_cell_info_results {
> +     enum ofono_cell_type rat;
> +     int mcc;
> +     int mnc;
> +     union {
> +             struct gsm gsm;
> +             struct wcdma wcdma;
> +     };
> +
> +};
> +
> +
> +typedef void (*ofono_cell_info_query_cb_t)(const struct ofono_error *error,
> +             struct ofono_cell_info_results results, void *data);

The results is a pointer.

> +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,
> +                     struct ofono_cell_info_results results, void *data);

Why is this last one public?

Cheers,
Aki

_______________________________________________
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono

Reply via email to