Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Guest control cleanup
Peter Dinda [Mon, 23 Jun 2014 18:05:13 +0000 (13:05 -0500)]
linux_module/iface-code-inject.c
linux_module/iface-env-inject.c
linux_module/iface-graphics-console.c
linux_module/iface-guard-mods.c
linux_module/iface-host-dev.c
linux_module/iface-host-hypercall.c
linux_module/iface-keyed-stream.c
linux_module/iface-stream.c
linux_module/iface-syscall.c
linux_module/inspector.c
linux_module/mcheck.c

index 1add908..1262d77 100644 (file)
@@ -135,6 +135,7 @@ static int guest_init_code_inject (struct v3_guest * guest, void ** vm_data) {
 
 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;
 }
 
index 115d867..af8ff6d 100644 (file)
@@ -132,6 +132,7 @@ static int guest_init_env_inject (struct v3_guest * guest, void ** vm_data) {
 
 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;
 }
 
index a29533e..6744cfd 100644 (file)
@@ -475,10 +475,14 @@ static int graphics_console_guest_deinit(struct v3_guest * guest, void * vm_data
 
     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;
index 37a5203..18ee4c3 100644 (file)
@@ -195,6 +195,7 @@ guest_init_guard_mods (struct v3_guest * guest, void ** vm_data)
 static int 
 guest_deinit_guard_mods (struct v3_guest * guest, void * vm_data) 
 {
+    remove_guest_ctrl(guest, V3_VM_REGISTER_MOD);
     return 0;
 }
 
index 23a3a09..680d753 100644 (file)
@@ -1352,6 +1352,7 @@ static int host_dev_guest_init(struct v3_guest * guest, void ** vm_data ) {
 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;
index 8ce514c..4ed2f63 100644 (file)
@@ -134,6 +134,8 @@ static int guest_init_host_hypercall (struct v3_guest * guest, void ** vm_data)
 
 
 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;
 }
 
index dd218d0..5bce431 100644 (file)
@@ -3177,6 +3177,7 @@ static int guest_init_keyed_streams(struct v3_guest * guest, void ** vm_data )
 
 static int guest_deinit_keyed_streams(struct v3_guest * guest, void * vm_data)
 {
+    remove_guest_ctrl(guest, V3_VM_KSTREAM_USER_CONNECT);
 
     return 0;
 }
index 27bfe42..36c6185 100644 (file)
@@ -400,6 +400,9 @@ static int guest_stream_deinit(struct v3_guest * guest, void * vm_data) {
     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));
@@ -407,6 +410,7 @@ static int guest_stream_deinit(struct v3_guest * guest, void * vm_data) {
     }
     
     palacios_free(state);
+
     
     return 0;
 }
index 1ed9972..8e94354 100644 (file)
@@ -79,6 +79,7 @@ static int guest_init_syscall_ctrl (struct v3_guest * guest, void ** vm_data) {
 
 
 static int guest_deinit_syscall_ctrl (struct v3_guest * guest, void * vm_data) {
+    remove_guest_ctrl(guest, V3_VM_SYSCALL_CTRL);
     return 0;
 }
 
index 56b6fa5..867bba1 100644 (file)
@@ -101,7 +101,8 @@ static int guest_init(struct v3_guest * guest, void ** vm_data) {
 }
 
 static int guest_deinit(struct v3_guest * guest, void * vm_data) {
-    
+    remove_guest_ctrl(guest, V3_VM_INSPECT);
+   
     return 0;
 }
 
index cbb06d7..8b3c5b2 100644 (file)
@@ -47,6 +47,7 @@ static int guest_init(struct v3_guest * guest, void ** vm_data) {
 
 static int guest_deinit(struct v3_guest * guest, void * vm_data) {
     
+    remove_guest_ctrl(guest, V3_VM_INJECT_SCRUBBER_MCE);
     return 0;
 }