From 4f1d080aa7510111c1d5f795d3ce4b369568fee6 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Thu, 28 Nov 2013 15:15:21 +0100 Subject: [PATCH] android: Initialize IPC with command and notification sockets Pass sockets after succesfully connected to HAL. This will allow to improve IPC helpers API. --- android/ipc.c | 15 +++++++++++++++ android/ipc.h | 3 +++ android/main.c | 5 +++++ 3 files changed, 23 insertions(+) diff --git a/android/ipc.c b/android/ipc.c index 25c36fd3c..028d4ad4f 100644 --- a/android/ipc.c +++ b/android/ipc.c @@ -36,6 +36,21 @@ #include "ipc.h" #include "log.h" +static int cmd_sk = -1; +static int notif_sk = -1; + +void ipc_init(int command_sk, int notification_sk) +{ + cmd_sk = command_sk; + notif_sk = notification_sk; +} + +void ipc_cleanup(void) +{ + cmd_sk = -1; + notif_sk = -1; +} + void ipc_send(int sk, uint8_t service_id, uint8_t opcode, uint16_t len, void *param, int fd) { diff --git a/android/ipc.h b/android/ipc.h index ad4a2d2e5..5786d2d09 100644 --- a/android/ipc.h +++ b/android/ipc.h @@ -21,6 +21,9 @@ * */ +void ipc_init(int command_sk, int notification_sk); +void ipc_cleanup(void); + void ipc_send(int sk, uint8_t service_id, uint8_t opcode, uint16_t len, void *param, int fd); void ipc_send_rsp(int sk, uint8_t service_id, uint8_t opcode, uint8_t status); diff --git a/android/main.c b/android/main.c index bfd2a87b6..4e6ad3859 100644 --- a/android/main.c +++ b/android/main.c @@ -354,6 +354,9 @@ static gboolean notif_connect_cb(GIOChannel *io, GIOCondition cond, g_io_add_watch(hal_cmd_io, cond, cmd_watch_cb, NULL); + ipc_init(g_io_channel_unix_get_fd(hal_cmd_io), + g_io_channel_unix_get_fd(hal_notif_io)); + info("Successfully connected to HAL"); return FALSE; @@ -494,6 +497,8 @@ static void cleanup_hal_connection(void) g_io_channel_unref(hal_notif_io); hal_notif_io = NULL; } + + ipc_cleanup(); } static bool set_capabilities(void) -- 2.47.3