#define V3_FREE_GUEST 13
#define V3_ADD_MEMORY 50
+#define V3_RESET_MEMORY 51
+
+#define V3_ADD_PCI_HW_DEV 55
+#define V3_ADD_PCI_USER_DEV 56
/* VM Specific IOCTLs */
#define V3_VM_CONSOLE_CONNECT 20
#define V3_VM_MOVE_CORE 33
+#define V3_VM_SEND 34
+#define V3_VM_RECEIVE 35
+
#define V3_VM_FB_INPUT 257
#define V3_VM_FB_QUERY 258
} __attribute__((packed));
+struct v3_hw_pci_dev {
+ char name[128];
+ unsigned int bus;
+ unsigned int dev;
+ unsigned int func;
+} __attribute__((packed));
+
+struct v3_user_pci_dev {
+ char name[128];
+ unsigned short vendor_id;
+ unsigned short dev_id;
+} __attribute__((packed));
+
void * trace_malloc(size_t size, gfp_t flags);
void *palacios_allocate_pages(int num_pages, unsigned int alignment);
void palacios_free_pages(void *page_addr, int num_pages);
void *palacios_alloc(unsigned int size);
+void *palacios_alloc_extended(unsigned int size, unsigned int flags);
void palacios_free(void *);
void *palacios_vaddr_to_paddr(void *vaddr);
void *palacios_paddr_to_vaddr(void *paddr);
// The following macros are for printing in the linux module itself, even before
// Palacios is initialized and after it it deinitialized
// All printk's in linux_module use these macros, for easier control
-#define ERROR(fmt, args...) printk((KERN_ERR "palacios (pcore %u): " fmt), palacios_get_cpu(), ##args)
+#define ERROR(fmt, args...) printk((KERN_ERR "palacios (pcore %u) %s(%d): " fmt), palacios_get_cpu(), __FILE__, __LINE__, ##args)
#define WARNING(fmt, args...) printk((KERN_WARNING "palacios (pcore %u): " fmt), palacios_get_cpu(), ##args)
#define NOTICE(fmt, args...) printk((KERN_NOTICE "palacios (pcore %u): " fmt), palacios_get_cpu(), ##args)
#define INFO(fmt, args...) printk((KERN_INFO "palacios (pcore %u): " fmt), palacios_get_cpu(), ##args)