You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
4.0 KiB
108 lines
4.0 KiB
// Copyright 2017 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.
|
|
#pragma once
|
|
|
|
#include "host-common/vm_operations.h"
|
|
// #include "host-common/window_agent.h"
|
|
|
|
typedef enum {
|
|
SNAPSHOT_STATUS_NOT_STARTED,
|
|
SNAPSHOT_STATUS_OK,
|
|
SNAPSHOT_STATUS_ERROR,
|
|
SNAPSHOT_STATUS_ERROR_NOT_CHANGED,
|
|
SNAPSHOT_STATUS_CANCELED,
|
|
} AndroidSnapshotStatus;
|
|
|
|
// void androidSnapshot_initialize(const QAndroidVmOperations* vmOperations,
|
|
// const QAndroidEmulatorWindowAgent* windowAgent);
|
|
void androidSnapshot_setDiskSpaceCheck(bool enable);
|
|
void androidSnapshot_finalize();
|
|
|
|
AndroidSnapshotStatus androidSnapshot_prepareForLoading(const char* name);
|
|
AndroidSnapshotStatus androidSnapshot_load(const char* name);
|
|
|
|
int64_t androidSnapshot_lastLoadUptimeMs();
|
|
|
|
AndroidSnapshotStatus androidSnapshot_prepareForSaving(const char* name);
|
|
AndroidSnapshotStatus androidSnapshot_save(const char* name);
|
|
|
|
void androidSnapshot_cancelSave();
|
|
|
|
void androidSnapshot_delete(const char* name);
|
|
|
|
// androidSnapshot_delete, but keeps the protobuf around as an epitaph.
|
|
void androidSnapshot_invalidate(const char* name);
|
|
|
|
bool androidSnapshot_areSavesSlow(const char* name);
|
|
|
|
// Returns the name of the snapshot file that was loaded to start
|
|
// the current image.
|
|
// Returns an empty string if the AVD was cold-booted.
|
|
const char* androidSnapshot_loadedSnapshotFile();
|
|
|
|
// These two functions implement a quickboot feature: load() tries to load from
|
|
// the |name| snapshot (or default one if it is null or empty) and save() saves
|
|
// the current state into it.
|
|
// Return value is |true| if the feature is enabled,
|
|
// and the function has at least tried to do something, |false| otherwise.
|
|
bool androidSnapshot_quickbootLoad(const char* name);
|
|
bool androidSnapshot_quickbootSave(const char* name);
|
|
|
|
// For when we want to skip quickboot AND skip loading it next time, such as
|
|
// in the case of a power-off and restart.
|
|
void androidSnapshot_quickbootInvalidate(const char* name);
|
|
|
|
// List snapshots to stdout.
|
|
void androidSnapshot_listStdout();
|
|
|
|
// List snapshots with a custom callback for consuming the lines.
|
|
void androidSnapshot_list(void* opaque,
|
|
int (*cbOut)(void* opaque, const char* buf, int strlen),
|
|
int (*cbErr)(void* opaque, const char* buf, int strlen));
|
|
|
|
// Notify snapshot interface that we are using file-backed RAM.
|
|
void androidSnapshot_setRamFile(const char* path, int shared);
|
|
|
|
// Marks the current RAM file as dirty; i.e.,
|
|
// any failure to save completely will cause deletion next time
|
|
// androidSnapshot_prepareAutosave is called.
|
|
// |isDirty| determines whether the RAM file is set to dirty.
|
|
void androidSnapshot_setRamFileDirty(const char* name, bool isDirty);
|
|
bool androidSnapshot_isRamFileDirty(const char* name);
|
|
|
|
// Retrieves path to potential RAM map of snapshot.
|
|
// Creates the directory if needed.
|
|
// Resulting pointer must be freed.
|
|
// If there is insufficient disk space, returns NULL.
|
|
// If the RAM size is now configured differently,
|
|
// deletes the RAM file.
|
|
// If the RAM file is still marked dirty,
|
|
// deletes the entire snapshot.
|
|
const char* androidSnapshot_prepareAutosave(int memSizeMb, const char* name);
|
|
|
|
typedef enum {
|
|
SNAPSHOT_RAM_FILE_NONE,
|
|
SNAPSHOT_RAM_FILE_SHARED,
|
|
SNAPSHOT_RAM_FILE_PRIVATE,
|
|
} AndroidSnapshotRamFileMode;
|
|
|
|
AndroidSnapshotRamFileMode androidSnapshot_getRamFileInfo();
|
|
|
|
void androidSnapshot_writeQuickbootChoice(bool save);
|
|
bool androidSnapshot_getQuickbootChoice();
|
|
|
|
void androidSnapshot_quickbootSetShortRunCheck(bool enable);
|
|
|
|
void androidSnapshot_setUsingHdd(bool usingHdd);
|
|
bool androidSnapshot_isUsingHdd();
|
|
|
|
bool androidSnapshot_protoExists(const char* name);
|