summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/netreg.h7
-rw-r--r--src/network.c44
2 files changed, 51 insertions, 0 deletions
diff --git a/include/netreg.h b/include/netreg.h
index edb11877..a19409e3 100644
--- a/include/netreg.h
+++ b/include/netreg.h
@@ -108,6 +108,13 @@ void ofono_netreg_remove(struct ofono_netreg *netreg);
void ofono_netreg_set_data(struct ofono_netreg *netreg, void *data);
void *ofono_netreg_get_data(struct ofono_netreg *netreg);
+int ofono_netreg_get_location(struct ofono_netreg *netreg);
+int ofono_netreg_get_cellid(struct ofono_netreg *netreg);
+int ofono_netreg_get_status(struct ofono_netreg *netreg);
+int ofono_netreg_get_technology(struct ofono_netreg *netreg);
+const struct ofono_network_operator *
+ ofono_netreg_get_operator(struct ofono_netreg *netreg);
+
#ifdef __cplusplus
}
#endif
diff --git a/src/network.c b/src/network.c
index 7139e60d..23d4dc39 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1319,6 +1319,50 @@ static void sim_spn_read_cb(int ok,
}
}
+int ofono_netreg_get_location(struct ofono_netreg *netreg)
+{
+ if (netreg == NULL)
+ return -1;
+
+ return netreg->location;
+}
+
+int ofono_netreg_get_cellid(struct ofono_netreg *netreg)
+{
+ if (netreg == NULL)
+ return -1;
+
+ return netreg->cellid;
+}
+
+int ofono_netreg_get_status(struct ofono_netreg *netreg)
+{
+ if (netreg == NULL)
+ return -1;
+
+ return netreg->status;
+}
+
+int ofono_netreg_get_technology(struct ofono_netreg *netreg)
+{
+ if (netreg == NULL)
+ return -1;
+
+ return netreg->technology;
+}
+
+const struct ofono_network_operator *
+ ofono_netreg_get_operator(struct ofono_netreg *netreg)
+{
+ if (netreg == NULL)
+ return NULL;
+
+ if (netreg->current_operator == NULL)
+ return NULL;
+
+ return netreg->current_operator->info;
+}
+
int ofono_netreg_driver_register(const struct ofono_netreg_driver *d)
{
DBG("driver: %p, name: %s", d, d->name);