aboutsummaryrefslogtreecommitdiffstats
path: root/android/console.c
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2011-05-04 22:01:28 +0200
committerDavid 'Digit' Turner <digit@google.com>2011-05-04 22:01:28 +0200
commit9fb360ec4c47d750711c8f1776c180e3802b0aab (patch)
tree9239e69398b7905e0faaffca3f558030f468ff75 /android/console.c
parenta87431b1cc389c941c5fc6d061fbd22b101cc7cd (diff)
downloadexternal_qemu-9fb360ec4c47d750711c8f1776c180e3802b0aab.zip
external_qemu-9fb360ec4c47d750711c8f1776c180e3802b0aab.tar.gz
external_qemu-9fb360ec4c47d750711c8f1776c180e3802b0aab.tar.bz2
Correct fix for snapshot saving speed
QEMU is a weird animal. The "snapshot" property speeds-up snapshot saving but also redirect all stores to a temporary file which is deleted when the emulator exit. Use a different property to get the desired speed-up. Note that using "writeback" instead of "unsafe" forces the use of fdatasync() which will still be horribly slow. + Argument checking in avd snapshot commands in the console. (trying to load a name-less snapshot actually crashes the emulator). Change-Id: Ie61f110f037bbb3539c7f9892cb03bee8bfec6bd
Diffstat (limited to 'android/console.c')
-rw-r--r--android/console.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/android/console.c b/android/console.c
index de32ddb..0affb46 100644
--- a/android/console.c
+++ b/android/console.c
@@ -2094,6 +2094,12 @@ static int
do_snapshot_save( ControlClient client, char* args )
{
int ret;
+
+ if (args == NULL) {
+ control_write(client, "KO: argument missing, try 'avd snapshot save <name>'\r\n");
+ return -1;
+ }
+
OutputChannel *err = output_channel_alloc(client, control_write_err_cb);
do_savevm_oc(err, args);
ret = output_channel_written(err);
@@ -2106,6 +2112,12 @@ static int
do_snapshot_load( ControlClient client, char* args )
{
int ret;
+
+ if (args == NULL) {
+ control_write(client, "KO: argument missing, try 'avd snapshot load <name>'\r\n");
+ return -1;
+ }
+
OutputChannel *err = output_channel_alloc(client, control_write_err_cb);
do_loadvm_oc(err, args);
ret = output_channel_written(err);
@@ -2118,6 +2130,12 @@ static int
do_snapshot_del( ControlClient client, char* args )
{
int ret;
+
+ if (args == NULL) {
+ control_write(client, "KO: argument missing, try 'avd snapshot del <name>'\r\n");
+ return -1;
+ }
+
OutputChannel *err = output_channel_alloc(client, control_write_err_cb);
do_delvm_oc(err, args);
ret = output_channel_written(err);