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.


Deallocation bug fix in device manager to allow backing out from VM creation failure
[palacios.git] / palacios / include / palacios / vmm_dev_mgr.h
index e5e13d9..0f60313 100644 (file)
@@ -58,6 +58,7 @@ struct vm_device {
 
 
 struct vmm_dev_mgr {
+    int    inited;
     uint_t num_devs;
     struct list_head dev_list;
     struct hashtable * dev_table;
@@ -187,6 +188,9 @@ void v3_print_dev_mgr(struct v3_vm_info * vm);
 struct v3_dev_blk_ops {
     uint64_t (*get_capacity)(void * private_data);
     // Reads always operate on 2048 byte blocks
+
+    // how does this signal bytes_read < requested but not error? 
+
     int (*read)(uint8_t * buf, uint64_t lba, uint64_t num_bytes, void * private_data);
     int (*write)(uint8_t * buf, uint64_t lba, uint64_t num_bytes, void * private_data);
 };
@@ -224,11 +228,11 @@ struct v3_dev_console_ops {
 
 struct v3_dev_char_ops {
     /* Backend implemented functions */
-    uint64_t (*output)(uint8_t * buf, uint64_t len, void * private_data);
+    sint64_t (*output)(uint8_t * buf, sint64_t len, void * private_data);
     //  int (*read)(uint8_t * buf, uint64_t len, void * private_data);
 
     /* Frontend Implemented functions */
-    uint64_t (*input)(struct v3_vm_info * vm, uint8_t * buf, uint64_t len, void * private_data);
+    sint64_t (*input)(struct v3_vm_info * vm, uint8_t * buf, sint64_t len, void * private_data);
 };