blob: c6e32bcbe2fb207ef6cef5a788c8d9705cd2d34b [file] [log] [blame]
// Copyright 2015 The Android Open Source Project
//
// This software is licensed under the terms of the GNU General Public
// License version 2, as published by the Free Software Foundation, and
// may be copied, distributed, and modified under those terms.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
#include "android-qemu2-glue/android_qemud.h"
#include "android/emulation/android_qemud.h"
#include "android/hw-qemud.h"
#include "android-qemu2-glue/utils/stream.h"
extern "C" {
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qom/object.h"
#include "migration/vmstate.h"
}
/* Version number of snapshots code. Increment whenever the data saved
* or the layout in which it is saved is changed.
*/
#define QEMUD_SAVE_VERSION 5
static void qemud_save(QEMUFile* f, void* opaque) {
Stream* stream = stream_from_qemufile(f);
QemudMultiplexer* m = static_cast<QemudMultiplexer*>(opaque);
qemud_multiplexer_save(m, stream);
stream_free(stream);
}
static int qemud_load(QEMUFile* f, void* opaque, int version) {
Stream* stream = stream_from_qemufile(f);
QemudMultiplexer* m = static_cast<QemudMultiplexer*>(opaque);
int ret = qemud_multiplexer_load(m, stream, version);
stream_free(stream);
return ret;
}
void android_qemu2_qemud_init(void) {
(void) android_qemud_get_serial_line();
register_savevm(nullptr,
"qemud",
0,
QEMUD_SAVE_VERSION,
qemud_save,
qemud_load,
qemud_multiplexer);
}