From dc990fd000f60f85bd99c75d0d5ba29587d2d56f Mon Sep 17 00:00:00 2001 From: SeokYeon Hwang Date: Mon, 11 May 2015 17:04:13 +0900 Subject: [PATCH] emulator: introduced "image_file_path" It is an advanced alternative to "target_target_img_path". Change-Id: Iec530c63ffc13c4fc0fc2fd32a7df2f64d4e9e8b Signed-off-by: SeokYeon Hwang --- tizen/src/emul_state.c | 42 +++++++++++++++++++++++++++++++++++++----- tizen/src/emul_state.h | 1 + 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/tizen/src/emul_state.c b/tizen/src/emul_state.c index b39efe9..fe9d039 100644 --- a/tizen/src/emul_state.c +++ b/tizen/src/emul_state.c @@ -30,9 +30,8 @@ */ #include "emul_state.h" -#include "emulator_options.h" -#include "skin/maruskin_server.h" -#include "util/new_debug_ch.h" + +#include "emulator_common.h" #if defined(CONFIG_LINUX) #include @@ -44,6 +43,13 @@ extern bool hax_allowed; extern bool hax_allowed; #endif +#include "block/block_int.h" +#include "sysemu/block-backend.h" + +#include "emulator_options.h" +#include "skin/maruskin_server.h" +#include "util/new_debug_ch.h" + DECLARE_DEBUG_CHANNEL(emul_state); static EmulatorConfigInfo _emul_info = {0,}; @@ -406,7 +412,33 @@ int get_emul_num_lock_state(void) return _emul_state.qemu_num_lock; } -/* emualtor vm name */ +/* drive image file */ +const char* get_drive_image_file(void) +{ + char *drive_image_file = get_variable("drive_image_file"); + + if (!drive_image_file) { + return drive_image_file; + } + + // we should parse from "drive" parameter. + // so qemu_main() had to be called before. + BlockBackend *bb = blk_by_name("drive"); + if (bb) { + BlockDriverState *bs = blk_bs(bb); + set_variable("drivce_image_file", bs->filename, true); + + return bs->filename; + } + + // called before device initialized + // or very weired situation + LOG_SEVERE("Can not identify main drive image file !!!\n"); + + return ""; +} + +/* vm name */ void set_emul_vm_name(char *vm_name) { _emul_info.vm_name = vm_name; @@ -417,7 +449,7 @@ char* get_emul_vm_name(void) return _emul_info.vm_name; } -/* emualtor http proxy */ +/* http proxy */ void set_emul_http_proxy_addr(char *addr) { strncpy(_emul_info.http_proxy_addr, addr, sizeof(_emul_info.http_proxy_addr)); diff --git a/tizen/src/emul_state.h b/tizen/src/emul_state.h index 56534ce..5b0e7fd 100644 --- a/tizen/src/emul_state.h +++ b/tizen/src/emul_state.h @@ -215,6 +215,7 @@ char* get_emul_hds_guest_path(void); char* get_emul_profile(void); bool get_emuld_connection(void); bool get_sdb_connection(void); +const char* get_drive_image_file(void); /* multi-touch */ MultiTouchState *get_emul_multi_touch_state(void); -- 2.7.4