static int guest_deinit_code_inject (struct v3_guest * guest, void * vm_data) {
free_inject_data();
+ remove_guest_ctrl(guest, V3_VM_TOPHALF_INJECT);
return 0;
}
static int guest_deinit_env_inject (struct v3_guest * guest, void * vm_data) {
free_inject_data();
+ remove_guest_ctrl(guest, V3_VM_ENV_INJECT);
return 0;
}
list_del(&(graphics_cons->gcons_node));
+ remove_guest_ctrl(guest, V3_VM_FB_INPUT);
+ remove_guest_ctrl(guest, V3_VM_FB_QUERY);
+
if (graphics_cons->data) {
palacios_vfree(graphics_cons->data);
}
+
palacios_free(graphics_cons);
return 0;
static int
guest_deinit_guard_mods (struct v3_guest * guest, void * vm_data)
{
+ remove_guest_ctrl(guest, V3_VM_REGISTER_MOD);
return 0;
}
static int host_dev_guest_deinit(struct v3_guest * guest, void * vm_data) {
struct palacios_host_dev * host_dev = (struct palacios_host_dev *) vm_data;
+ remove_guest_ctrl(guest, V3_VM_HOST_DEV_CONNECT);
palacios_spinlock_deinit(&(host_dev->lock));
palacios_free(host_dev);
return 0;
static int guest_deinit_host_hypercall (struct v3_guest * guest, void * vm_data) {
+ remove_guest_ctrl(guest, V3_VM_HYPERCALL_ADD);
+ remove_guest_ctrl(guest, V3_VM_HYPERCALL_REMOVE);
return 0;
}
static int guest_deinit_keyed_streams(struct v3_guest * guest, void * vm_data)
{
+ remove_guest_ctrl(guest, V3_VM_KSTREAM_USER_CONNECT);
return 0;
}
struct stream_state * stream = NULL;
struct stream_state * tmp = NULL;
+
+ remove_guest_ctrl(guest, V3_VM_STREAM_CONNECT);
+
list_for_each_entry_safe(stream, tmp, &(global_streams), stream_node) {
free_ringbuf(stream->out_ring);
list_del(&(stream->stream_node));
}
palacios_free(state);
+
return 0;
}
static int guest_deinit_syscall_ctrl (struct v3_guest * guest, void * vm_data) {
+ remove_guest_ctrl(guest, V3_VM_SYSCALL_CTRL);
return 0;
}
}
static int guest_deinit(struct v3_guest * guest, void * vm_data) {
-
+ remove_guest_ctrl(guest, V3_VM_INSPECT);
+
return 0;
}
static int guest_deinit(struct v3_guest * guest, void * vm_data) {
+ remove_guest_ctrl(guest, V3_VM_INJECT_SCRUBBER_MCE);
return 0;
}