aboutsummaryrefslogtreecommitdiffstats
path: root/vl-android.c
diff options
context:
space:
mode:
authorTim Baverstock <weasel@google.com>2010-11-25 11:37:43 +0000
committerTim Baverstock <weasel@google.com>2010-12-01 15:30:17 +0000
commit24204cc964cf7d56b1a20c12ece08eecab1093fa (patch)
treed3bd4ba41ced09ca22f3129daebb17963dde96b2 /vl-android.c
parent68235cf4e8f11c0f1abe78ec07921957ba5c3956 (diff)
downloadexternal_qemu-24204cc964cf7d56b1a20c12ece08eecab1093fa.zip
external_qemu-24204cc964cf7d56b1a20c12ece08eecab1093fa.tar.gz
external_qemu-24204cc964cf7d56b1a20c12ece08eecab1093fa.tar.bz2
Augment the auto-loadvm behaviour with corresponding auto-savevm-on-exit behaviour.
Autosave fires when loadvm would have been tried - whether it succeeded or not - in order to bootstrap from an empty snapshot file. - New autosave behaviour inhibited with -no_snapshot_save flag. - Underlying behaviour implemented with a new qemu option -savevm_on_exit Change-Id: If64d89f004565ecbb431bc7e96ecc37e27876d67
Diffstat (limited to 'vl-android.c')
-rw-r--r--vl-android.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/vl-android.c b/vl-android.c
index 1f65c3b..6d99d6d 100644
--- a/vl-android.c
+++ b/vl-android.c
@@ -394,6 +394,10 @@ extern int android_display_bpp;
extern void dprint( const char* format, ... );
+#if CONFIG_ANDROID_SNAPSHOTS
+const char* savevm_on_exit = NULL;
+#endif
+
#define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR)
/* Reports the core initialization failure to the error stdout and to the UI
@@ -3234,8 +3238,14 @@ static void main_loop(void)
if (no_shutdown) {
vm_stop(0);
no_shutdown = 0;
- } else
+ } else {
+#if CONFIG_ANDROID_SNAPSHOTS
+ if (savevm_on_exit != NULL) {
+ do_savevm(cur_mon, savevm_on_exit);
+ }
+#endif
break;
+ }
}
if (qemu_reset_requested()) {
pause_all_vcpus();
@@ -4292,9 +4302,14 @@ int main(int argc, char **argv, char **envp)
parallel_devices[parallel_device_index] = optarg;
parallel_device_index++;
break;
- case QEMU_OPTION_loadvm:
- loadvm = optarg;
- break;
+ case QEMU_OPTION_loadvm:
+ loadvm = optarg;
+ break;
+#if CONFIG_ANDROID_SNAPSHOTS
+ case QEMU_OPTION_savevm_on_exit:
+ savevm_on_exit = optarg;
+ break;
+#endif
case QEMU_OPTION_full_screen:
full_screen = 1;
break;