summaryrefslogtreecommitdiffstats
path: root/gisi
diff options
context:
space:
mode:
authorAki Niemi <aki.niemi@nokia.com>2011-02-07 09:49:27 +0200
committerAki Niemi <aki.niemi@nokia.com>2011-02-07 09:51:35 +0200
commit4eedacac20cd0386aaf2c3af6a0eea3945e4da1f (patch)
tree862c69ba34edbd2088b54ab87e6401344c75e03f /gisi
parent5b3a43a17cd3c382c7e9246e8f9418a6e07ab572 (diff)
downloadofono-4eedacac20cd0386aaf2c3af6a0eea3945e4da1f.tar.bz2
gisi: Add new API for setting modem remote device
Diffstat (limited to 'gisi')
-rw-r--r--gisi/modem.c22
-rw-r--r--gisi/modem.h6
2 files changed, 28 insertions, 0 deletions
diff --git a/gisi/modem.c b/gisi/modem.c
index 8c9eb1dd..691cecd1 100644
--- a/gisi/modem.c
+++ b/gisi/modem.c
@@ -59,6 +59,7 @@ typedef struct _GIsiServiceMux GIsiServiceMux;
struct _GIsiModem {
unsigned index;
+ uint8_t device;
GHashTable *services;
gboolean subs_source;
int req_fd;
@@ -537,6 +538,27 @@ void g_isi_modem_set_flags(GIsiModem *modem, unsigned long flags)
modem->flags = flags;
}
+uint8_t g_isi_modem_device(GIsiModem *modem)
+{
+ if (modem == NULL)
+ return 0;
+
+ return modem->device;
+}
+
+int g_isi_modem_set_device(GIsiModem *modem, uint8_t remote)
+{
+ if (modem == NULL)
+ return -EINVAL;
+
+ if (remote != PN_DEV_HOST && remote != PN_DEV_MODEM)
+ return -EINVAL;
+
+ modem->device = remote;
+
+ return 0;
+}
+
static uint8_t service_next_utid(GIsiServiceMux *mux)
{
if (mux->last_utid == 0x00 || mux->last_utid == 0xFF)
diff --git a/gisi/modem.h b/gisi/modem.h
index ae90046f..0397a871 100644
--- a/gisi/modem.h
+++ b/gisi/modem.h
@@ -48,9 +48,15 @@ typedef void (*GIsiDebugFunc)(const char *fmt, ...);
GIsiModem *g_isi_modem_create(unsigned index);
GIsiModem *g_isi_modem_create_by_name(const char *name);
void g_isi_modem_destroy(GIsiModem *modem);
+
unsigned g_isi_modem_index(GIsiModem *modem);
+
+uint8_t g_isi_modem_device(GIsiModem *modem);
+int g_isi_modem_set_device(GIsiModem *modem, uint8_t dev);
+
void g_isi_modem_set_trace(GIsiModem *modem, GIsiNotifyFunc notify);
void g_isi_modem_set_debug(GIsiModem *modem, GIsiDebugFunc debug);
+
void *g_isi_modem_set_userdata(GIsiModem *modem, void *data);
void *g_isi_modem_get_userdata(GIsiModem *modem);