#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);
#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);
};