From 3ed83faa560b3ab496d7e9595fdf29a63c27fb73 Mon Sep 17 00:00:00 2001 From: "giwoong.kim" Date: Thu, 30 Aug 2012 21:07:31 +0900 Subject: [PATCH] [Title] ramdump notification [Type] feature [Module] Emualtor / menu [Priority] major [Jira#] [Redmine#] [Problem] [Cause] [Solution] [TestCase] --- .../emulator/skin/comm/ICommunicator.java | 1 + .../skin/comm/sock/SocketCommunicator.java | 13 +++++++++++++ tizen/src/skin/maruskin_operation.c | 4 +++- tizen/src/skin/maruskin_server.c | 18 +++++++++++++++--- tizen/src/skin/maruskin_server.h | 11 ++++++----- 5 files changed, 38 insertions(+), 9 deletions(-) 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 b2cac8434c..d3d18c2b65 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 @@ -208,6 +208,7 @@ public interface ICommunicator extends Runnable { HEART_BEAT( (short)1 ), SCREEN_SHOT_DATA( (short)2 ), DETAIL_INFO_DATA( (short)3 ), + RAMDUMP_COMPLETE( (short)4 ), SENSOR_DAEMON_START( (short)800 ), SHUTDOWN( (short)999 ); 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 46b2508d04..f6fec2b3a1 100644 --- 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 @@ -48,6 +48,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; +import org.eclipse.swt.SWT; import org.tizen.emulator.skin.EmulatorSkin; import org.tizen.emulator.skin.comm.ICommunicator; import org.tizen.emulator.skin.comm.ICommunicator.SendCommand; @@ -111,6 +112,7 @@ public class SocketCommunicator implements ICommunicator { private AtomicInteger heartbeatCount; private boolean isTerminated; private boolean isSensorDaemonStarted; + private boolean isRamdumpCompleted; private ScheduledExecutorService heartbeatExecutor; private DataTranfer screenShotDataTransfer; @@ -296,6 +298,13 @@ public class SocketCommunicator implements ICommunicator { break; } + case RAMDUMP_COMPLETE: { + logger.info("received RAMDUMP_COMPLETE from QEMU."); + synchronized ( this ) { + isRamdumpCompleted = true; + } + break; + } case SENSOR_DAEMON_START: { logger.info( "received SENSOR_DAEMON_START from QEMU." ); synchronized ( this ) { @@ -554,6 +563,10 @@ public class SocketCommunicator implements ICommunicator { return isSensorDaemonStarted; } + public synchronized boolean isRamdumpCompleted() { + return isRamdumpCompleted; + } + private void increaseHeartbeatCount() { int count = heartbeatCount.incrementAndGet(); if ( logger.isLoggable( Level.FINE ) ) { diff --git a/tizen/src/skin/maruskin_operation.c b/tizen/src/skin/maruskin_operation.c index 6d6f9c061b..7805d053ed 100644 --- a/tizen/src/skin/maruskin_operation.c +++ b/tizen/src/skin/maruskin_operation.c @@ -82,7 +82,7 @@ void start_display(uint64 handle_id, int lcd_size_width, int lcd_size_height, do void do_mouse_event( int event_type, int origin_x, int origin_y, int x, int y, int z ) { - if( brightness_off ) { + if ( brightness_off ) { TRACE( "reject mouse touch in lcd off : %d, x:%d, y:%d, z:%d\n", event_type, x, y, z ); return; } @@ -426,6 +426,8 @@ void ram_dump(void) { INFO("ram dump!\n"); dump_ram(); + + notify_ramdump_complete(); } void request_close( void ) diff --git a/tizen/src/skin/maruskin_server.c b/tizen/src/skin/maruskin_server.c index 6ecc726850..0f82ce8849 100644 --- a/tizen/src/skin/maruskin_server.c +++ b/tizen/src/skin/maruskin_server.c @@ -112,6 +112,7 @@ enum { SEND_HEART_BEAT = 1, SEND_SCREEN_SHOT = 2, SEND_DETAIL_INFO = 3, + SEND_RAMDUMP_COMPLETE = 4, SEND_SENSOR_DAEMON_START = 800, SEND_SHUTDOWN = 999, }; @@ -194,7 +195,7 @@ void shutdown_skin_server( void ) { } } - if( success_send ) { + if ( success_send ) { int count = 0; int max_sleep_count = 10; @@ -254,6 +255,17 @@ void notify_sensor_daemon_start( void ) { } } +void notify_ramdump_complete(void) { + INFO("notify_ramdump_complete\n"); + + if (client_sock) { + if (0 > send_skin_header_only( client_sock, SEND_RAMDUMP_COMPLETE, 1)) { + ERR("fail to send SEND_RAMDUMP_COMPLETE to skin.\n"); + } + } +} + + int is_ready_skin_server( void ) { return ready_server; } @@ -355,12 +367,12 @@ static void parse_skinconfig_prop( void ) { static void parse_skin_args( void ) { int i; - for( i = 0; i < skin_argc; i++ ) { + for ( i = 0; i < skin_argc; i++ ) { char* arg = NULL; arg = strdup( skin_argv[i] ); - if( arg ) { + if ( arg ) { char* key = strtok( arg, "=" ); char* value = strtok( NULL, "=" ); diff --git a/tizen/src/skin/maruskin_server.h b/tizen/src/skin/maruskin_server.h index aa31e95ee0..3ef909fb8a 100644 --- a/tizen/src/skin/maruskin_server.h +++ b/tizen/src/skin/maruskin_server.h @@ -30,10 +30,11 @@ #ifndef MARUSKIN_SERVER_H_ #define MARUSKIN_SERVER_H_ -int start_skin_server( int argc, char** argv, int qemu_argc, char** qemu_argv ); -void shutdown_skin_server( void ); -void notify_sensor_daemon_start( void ); -int is_ready_skin_server( void ); -int get_skin_server_port( void ); +int start_skin_server(int argc, char** argv, int qemu_argc, char** qemu_argv); +void shutdown_skin_server(void); +void notify_sensor_daemon_start(void); +void notify_ramdump_complete(void); +int is_ready_skin_server(void); +int get_skin_server_port(void); #endif /* MARUSKIN_SERVER_H_ */ -- 2.34.1