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.


Add swapping and pinning capability to Palacios
[palacios.git] / palacios / include / interfaces / vmm_file.h
index 46b89b1..83d0f7b 100644 (file)
 #ifndef __VMM_FILE_H__
 #define __VMM_FILE_H__
 
-#include <palacios/vmm.h>
+
 
 
 #ifdef __V3VEE__
+
+#include <palacios/vmm_types.h>
+
+struct v3_vm_info;
+
 typedef void * v3_file_t;
 
+int v3_mkdir(char * path, uint16_t permissions, uint8_t recursive);
+
 
 v3_file_t v3_file_open(struct v3_vm_info * vm, char * path, uint8_t mode);
 int v3_file_close(v3_file_t file);
@@ -42,15 +49,16 @@ uint64_t v3_file_write(v3_file_t file, uint8_t * buf, uint64_t len, uint64_t off
 #define FILE_OPEN_MODE_CREATE        (1 << 2)
 
 struct v3_file_hooks {
+    int (*mkdir)(const char * path, unsigned short perms, int recursive);
 
     void * (*open)(const char * path, int mode, void * host_data);
     int (*close)(void * fd);
 
-    long long (*size)(void * fd);
+    unsigned long long (*size)(void * fd);
 
     // blocking reads and writes
-    long long (*read)(void * fd, void * buffer, long long length, long long offset);
-    long long (*write)(void * fd, void * buffer, long long length, long long offset);
+    unsigned long long (*read)(void * fd, void * buffer, unsigned long long length, unsigned long long offset);
+    unsigned long long (*write)(void * fd, void * buffer, unsigned long long length, unsigned long long offset);
 
 };