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.


Change of hypercall semantics - rax no longer contains error code for palacios
[palacios.git] / linux_module / iface-host-dev.c
index 6744d66..cfcf4c0 100644 (file)
@@ -342,8 +342,7 @@ static int host_dev_release(struct inode * i, struct file * filp)
     return 0;
 }
 
-
-static int host_dev_ioctl(struct inode *ip, struct file *fp, unsigned int val, unsigned long arg)
+static long host_dev_ioctl(struct file * fp, unsigned int val, unsigned long arg)
 {
     void __user *argp = (void __user *)arg;
 
@@ -380,8 +379,8 @@ static int host_dev_ioctl(struct inode *ip, struct file *fp, unsigned int val, u
                        return -EFAULT;
                    }
                    
-                   if (v3_host_dev_read_guest_mem(dev->guestdev,
-                                                  dev,
+                   if (v3_host_dev_read_guest_mem(dev,
+                                                  dev->guestdev,
                                                   op.gpa,
                                                   temp,
                                                   op.len) != op.len) {
@@ -421,8 +420,8 @@ static int host_dev_ioctl(struct inode *ip, struct file *fp, unsigned int val, u
                        return -EFAULT;
                    }
                    
-                   if (v3_host_dev_write_guest_mem(dev->guestdev,
-                                                   dev,
+                   if (v3_host_dev_write_guest_mem(dev,
+                                                   dev->guestdev,
                                                    op.gpa,
                                                    temp,
                                                    op.len) != op.len) {
@@ -441,7 +440,7 @@ static int host_dev_ioctl(struct inode *ip, struct file *fp, unsigned int val, u
 
                    DEEP_DEBUG_PRINT("palacios: hostdev: irq guest\n");
 
-                   return  v3_host_dev_raise_irq(dev->guestdev, dev, op.irq);
+                   return  v3_host_dev_raise_irq(dev, dev->guestdev, op.irq);
                }
                    break;
 
@@ -596,13 +595,11 @@ static int host_dev_ioctl(struct inode *ip, struct file *fp, unsigned int val, u
     
 }
 
-
-
-
 static struct file_operations host_dev_fops = {
     .poll     = host_dev_poll,
     .release  = host_dev_release,
-    .ioctl    = host_dev_ioctl,
+    .compat_ioctl = host_dev_ioctl,
+    .unlocked_ioctl = host_dev_ioctl,
 };
 
 
@@ -789,9 +786,9 @@ static v3_host_dev_t palacios_host_dev_open_deferred(char *url,
     
     strncpy(dev->url,url,MAX_URL);
     
-    dev->guestdev=gdev;
+    dev->guestdev = gdev;
     
-    dev->guest=guest;
+    dev->guest = guest;
 
     spin_lock_init(&(dev->lock));