List snapshottable devices

This commit is contained in:
Andrea Fioraldi 2023-07-31 13:57:32 +02:00
parent cbb34bf927
commit 659539eace
2 changed files with 29 additions and 2 deletions

View File

@ -78,8 +78,6 @@ device_save_state_t* device_save_kind(device_snapshot_kind_t kind, char** names)
}
}
printf("\n");
qemu_put_byte(f, QEMU_VM_EOF);
qemu_fclose(f);
@ -108,3 +106,29 @@ void device_restore_all(device_save_state_t* dss) {
void device_free_all(device_save_state_t* dss) {
g_free(dss->save_buffer);
}
char** device_list_all(void) {
SaveStateEntry *se;
size_t size = 1;
QTAILQ_FOREACH(se, &savevm_state.handlers, entry) {
size++;
}
char** list = malloc(size * sizeof(char*));
size_t i = 0;
QTAILQ_FOREACH(se, &savevm_state.handlers, entry) {
if (se->is_ram) {
continue;
}
if (!strcmp(se->idstr, "globalstate")) {
continue;
}
list[i] = se->idstr;
i++;
}
list[i] = NULL;
return list;
}

View File

@ -19,5 +19,8 @@ typedef enum device_snapshot_kind_e {
device_save_state_t* device_save_all(void);
device_save_state_t* device_save_kind(device_snapshot_kind_t kind, char** names);
void device_restore_all(device_save_state_t* device_save_state);
void device_free_all(device_save_state_t* dss);
char** device_list_all(void);