summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/isimodem/isimodem.c4
-rw-r--r--gisi/netlink.c8
-rw-r--r--gisi/netlink.h3
3 files changed, 11 insertions, 4 deletions
diff --git a/drivers/isimodem/isimodem.c b/drivers/isimodem/isimodem.c
index dd0bb7fb..8c6b40d4 100644
--- a/drivers/isimodem/isimodem.c
+++ b/drivers/isimodem/isimodem.c
@@ -408,12 +408,12 @@ static struct ofono_modem_attribute_ops ops = {
.query_serial = isi_query_serial
};
-static void netlink_status_cb(bool up, uint8_t addr, unsigned idx,
+static void netlink_status_cb(bool up, uint8_t addr, GIsiModem *idx,
void *data)
{
struct isi_data *isi = data;
- DBG("PhoNet is %s, addr=0x%02x, idx=%d",
+ DBG("PhoNet is %s, addr=0x%02x, idx=%p",
up ? "up" : "down", addr, idx);
if (up) {
diff --git a/gisi/netlink.c b/gisi/netlink.c
index c667fa6f..8fe2de75 100644
--- a/gisi/netlink.c
+++ b/gisi/netlink.c
@@ -48,6 +48,11 @@ struct _GPhonetNetlink {
guint watch;
};
+static inline GIsiModem *make_modem(unsigned idx)
+{
+ return (void *)(uintptr_t)idx;
+}
+
/* Parser Netlink messages */
static gboolean g_pn_nl_process(GIOChannel *channel, GIOCondition cond,
gpointer data)
@@ -108,7 +113,8 @@ static gboolean g_pn_nl_process(GIOChannel *channel, GIOCondition cond,
rta = RTA_NEXT(rta, len))
if (rta->rta_type == IFA_LOCAL)
memcpy(&addr, RTA_DATA(rta), 1);
- self->callback(up, addr, ifa->ifa_index, self->opaque);
+ self->callback(up, addr,
+ make_modem(ifa->ifa_index), self->opaque);
}
return TRUE;
}
diff --git a/gisi/netlink.h b/gisi/netlink.h
index 8ea0607a..9e555a93 100644
--- a/gisi/netlink.h
+++ b/gisi/netlink.h
@@ -23,6 +23,7 @@
#include <stdbool.h>
#include <stdint.h>
+#include <gisi/modem.h>
#ifndef __GPHONET_NETLINK_H
#define __GPHONET_NETLINK_H
@@ -34,7 +35,7 @@ extern "C" {
struct _GPhonetNetlink;
typedef struct _GPhonetNetlink GPhonetNetlink;
-typedef void (*GPhonetNetlinkFunc)(bool up, uint8_t addr, unsigned idx,
+typedef void (*GPhonetNetlinkFunc)(bool up, uint8_t addr, GIsiModem *idx,
void *data);
GPhonetNetlink *g_pn_netlink_start(GPhonetNetlinkFunc func, void *data);