diff options
author | Vladimir Chtchetkine <vchtchetkine@google.com> | 2010-09-08 11:09:23 -0700 |
---|---|---|
committer | Vladimir Chtchetkine <vchtchetkine@google.com> | 2010-09-08 11:09:23 -0700 |
commit | b25bf2a7477595aa54181874921086d4c0071c03 (patch) | |
tree | 44dbe610846ea9f19caf70178713925b0fe159ec /vl-android.c | |
parent | e92bc56ef89ab8b51c4c89d4d9779b64e9491b9b (diff) | |
download | external_qemu-b25bf2a7477595aa54181874921086d4c0071c03.zip external_qemu-b25bf2a7477595aa54181874921086d4c0071c03.tar.gz external_qemu-b25bf2a7477595aa54181874921086d4c0071c03.tar.bz2 |
Passed boot properties from main to core as -boot-property parameters.
Change-Id: I56955fb13a073b15ee2a41fdfbd6845bfe65edc5
Diffstat (limited to 'vl-android.c')
-rw-r--r-- | vl-android.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/vl-android.c b/vl-android.c index 0cd6b52..a3cf02b 100644 --- a/vl-android.c +++ b/vl-android.c @@ -187,6 +187,8 @@ #include "migration.h" #include "kvm.h" #include "balloon.h" +#include "android/hw-lcd.h" +#include "android/boot-properties.h" #ifdef CONFIG_STANDALONE_CORE /* Verbose value used by the standalone emulator core (without UI) */ @@ -391,6 +393,9 @@ int android_op_netfast = 0; /* -tcpdump option value. */ char* android_op_tcpdump = NULL; +/* -lcd-density option value. */ +char* android_op_lcd_density = NULL; + extern int android_display_width; extern int android_display_height; extern int android_display_bpp; @@ -5198,6 +5203,9 @@ int main(int argc, char **argv, char **envp) register_watchdogs(); + /* Initialize boot properties. */ + boot_property_init_service(); + optind = 1; for(;;) { if (optind >= argc) @@ -5966,6 +5974,14 @@ int main(int argc, char **argv, char **envp) android_op_tcpdump = (char*)optarg; break; + case QEMU_OPTION_boot_property: + boot_property_parse_option((char*)optarg); + break; + + case QEMU_OPTION_lcd_density: + android_op_lcd_density = (char*)optarg; + break; + #ifdef CONFIG_MEMCHECK case QEMU_OPTION_android_memcheck: android_op_memcheck = (char*)optarg; @@ -6027,6 +6043,13 @@ int main(int argc, char **argv, char **envp) } #endif // CONFIG_NAND_LIMITS + /* Set the VM's max heap size, passed as a boot property */ + if (android_hw->vm_heapSize > 0) { + char tmp[64]; + snprintf(tmp, sizeof(tmp), "%dm", android_hw->vm_heapSize); + boot_property_add("dalvik.vm.heapsize",tmp); + } + /* Initialize net speed and delays stuff. */ if (android_parse_network_speed(android_op_netspeed) < 0 ) { fprintf(stderr, "invalid -netspeed parameter '%s'\n", @@ -6047,6 +6070,17 @@ int main(int argc, char **argv, char **envp) qemu_net_max_latency = 0; } + /* Initialize LCD density */ + if (android_op_lcd_density) { + char* end; + long density = strtol(android_op_lcd_density, &end, 0); + if (end == NULL || *end || density < 0) { + fprintf(stderr, "option -lcd-density must be a positive integer\n" ); + exit(1); + } + hwLcd_setBootProperty(density); + } + /* Initialize TCP dump */ if (android_op_tcpdump) { if (qemu_tcpdump_start(android_op_tcpdump) < 0) { |