From: SeokYeon Hwang Date: Mon, 11 May 2015 08:04:13 +0000 (+0900) Subject: emulator: introduced "image_file_path" X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~63 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=054c708db0b151d147b2d5e2c2e91e5df4ef4d27;p=sdk%2Femulator%2Fqemu.git emulator: introduced "image_file_path" It is an advanced alternative to "target_target_img_path". Change-Id: Iec530c63ffc13c4fc0fc2fd32a7df2f64d4e9e8b Signed-off-by: SeokYeon Hwang Signed-off-by: Sooyoung Ha --- diff --git a/tizen/src/emul_state.c b/tizen/src/emul_state.c index 6128e9f60d..2a676d121a 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 @@ -40,6 +39,13 @@ #include #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,}; @@ -346,7 +352,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; @@ -357,7 +389,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, strlen(addr)); diff --git a/tizen/src/emul_state.h b/tizen/src/emul_state.h index 8f8f545c21..43183a135e 100644 --- a/tizen/src/emul_state.h +++ b/tizen/src/emul_state.h @@ -193,5 +193,6 @@ 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); #endif /* __EMUL_STATE_H__ */