From bedd9a4ea26b62da86757182ed23f5ed8de944c5 Mon Sep 17 00:00:00 2001 From: GiWoong Kim Date: Mon, 2 Dec 2013 11:14:41 +0900 Subject: [PATCH] communication: added protocol for emulator reset The Qemu-Skin protocol has been extended to share the emulator reset state. Change-Id: I2d9a49c3ddee0ecf7f9006efddc5e710e88fbb51 Signed-off-by: GiWoong Kim --- tizen/src/emul_state.c | 6 ++++++ tizen/src/emul_state.h | 1 + .../emulator/skin/comm/ICommunicator.java | 3 ++- .../skin/comm/sock/SocketCommunicator.java | 11 ++++++++-- tizen/src/skin/maruskin_server.c | 20 +++++++++++++++++-- tizen/src/skin/maruskin_server.h | 1 + 6 files changed, 37 insertions(+), 5 deletions(-) diff --git a/tizen/src/emul_state.c b/tizen/src/emul_state.c index 9f16e6bf02..6d94209ced 100644 --- a/tizen/src/emul_state.c +++ b/tizen/src/emul_state.c @@ -31,6 +31,7 @@ #include "maru_common.h" #include "emul_state.h" +#include "skin/maruskin_server.h" #include "debug_ch.h" #if defined(CONFIG_LINUX) @@ -166,6 +167,11 @@ void set_emulator_condition(int state) { if (state == BOOT_COMPLETED) { INFO("boot completed!\n"); + // TODO: + } else if (state == RESET) { + INFO("reset emulator!\n"); + + notify_emul_reset(); } _emul_state.emulator_condition = state; diff --git a/tizen/src/emul_state.h b/tizen/src/emul_state.h index b58ee6dc71..a87d2a120f 100644 --- a/tizen/src/emul_state.h +++ b/tizen/src/emul_state.h @@ -40,6 +40,7 @@ enum { BOOTING = 0, BOOT_COMPLETED = 1, + RESET = 2, }; /* keep it consistent with emulator-skin definition */ diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/ICommunicator.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/ICommunicator.java index e17fc4abcd..51891eb9da 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/ICommunicator.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/ICommunicator.java @@ -258,7 +258,8 @@ public interface ICommunicator extends Runnable { RECV_ECS_STARTED((short) 802), RECV_DRAW_FRAME((short) 900), RECV_DRAW_BLANK_GUIDE((short) 901), - RECV_SHUTDOWN((short) 999); + RECV_EMUL_RESET((short) 998), + RECV_EMUL_SHUTDOWN((short) 999); private short value; diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/SocketCommunicator.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/SocketCommunicator.java index 3564c62477..98ba55d9ed 100755 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/SocketCommunicator.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/comm/sock/SocketCommunicator.java @@ -463,8 +463,15 @@ public class SocketCommunicator implements ICommunicator { break; } - case RECV_SHUTDOWN: { - logger.info("received SHUTDOWN from QEMU"); + case RECV_EMUL_RESET: { + logger.info("received EMUL_RESET from QEMU"); + + // TODO: + + break; + } + case RECV_EMUL_SHUTDOWN: { + logger.info("received EMUL_SHUTDOWN from QEMU"); sendToQEMU(SendCommand.RESPONSE_SHUTDOWN, null, false); terminate(); diff --git a/tizen/src/skin/maruskin_server.c b/tizen/src/skin/maruskin_server.c index ebcb90fb42..e14e547efd 100644 --- a/tizen/src/skin/maruskin_server.c +++ b/tizen/src/skin/maruskin_server.c @@ -138,7 +138,8 @@ enum { SEND_ECS_STARTED = 802, SEND_DRAW_FRAME = 900, SEND_DRAW_BLANK_GUIDE = 901, - SEND_SHUTDOWN = 999, + SEND_EMUL_RESET = 998, + SEND_EMUL_SHUTDOWN = 999, }; static int seq_req_id = 0; @@ -227,7 +228,7 @@ void shutdown_skin_server(void) if (client_sock) { INFO("send shutdown to skin.\n"); - if (0 > send_skin_header_only(client_sock, SEND_SHUTDOWN, 1)) { + if (0 > send_skin_header_only(client_sock, SEND_EMUL_SHUTDOWN, 1)) { ERR("fail to send SEND_SHUTDOWN to skin.\n"); close_server_socket = 1; } else { @@ -454,6 +455,21 @@ void notify_host_kbd_state(bool on) } } +void notify_emul_reset(void) +{ + INFO("notify_emul_reset\n"); + + if (client_sock) { + if (0 > send_skin_header_only( + client_sock, SEND_EMUL_RESET, 1)) { + + ERR("fail to send SEND_EMUL_RESET to skin\n"); + } + } else { + INFO("skin client socket is not connected yet\n"); + } +} + int is_ready_skin_server(void) { return ready_server; diff --git a/tizen/src/skin/maruskin_server.h b/tizen/src/skin/maruskin_server.h index 3e492a33f6..e7e278f425 100644 --- a/tizen/src/skin/maruskin_server.h +++ b/tizen/src/skin/maruskin_server.h @@ -42,6 +42,7 @@ void notify_ramdump_completed(void); void notify_booting_progress(unsigned int layer, int progress_value); void notify_brightness_state(bool on); void notify_host_kbd_state(bool on); +void notify_emul_reset(void); int is_ready_skin_server(void); int get_skin_server_port(void); -- 2.34.1