X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Fpalacios.h;h=99ef5efd3e02c821084fe4bc3c01625aab13d317;hb=e1ea936272cd584e26b3a2be63d549fafd44e6dd;hp=ff1d884072b001cdef9f3c447733dabf2f761651;hpb=fe436f3769306b960087068610f9afc85b7141ba;p=palacios.git diff --git a/linux_module/palacios.h b/linux_module/palacios.h index ff1d884..99ef5ef 100644 --- a/linux_module/palacios.h +++ b/linux_module/palacios.h @@ -12,6 +12,10 @@ #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 @@ -31,6 +35,9 @@ #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 @@ -66,6 +73,19 @@ struct v3_chkpt_info { } __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); @@ -94,7 +114,7 @@ struct v3_guest { -int palacios_vmm_init( void ); +int palacios_vmm_init( char *options ); int palacios_vmm_exit( void ); @@ -103,10 +123,12 @@ struct proc_dir_entry *palacios_get_procdir(void); // Selected exported stubs, for use in other palacios components, like vnet // The idea is that everything uses the same stubs -void palacios_print(const char *fmt, ...); +void palacios_print_scoped(void *vm, int vcore, const char *fmt, ...); +#define palacios_print(...) palacios_print_scoped(0,-1, __VA_ARGS__) 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); @@ -140,7 +162,7 @@ void palacios_mutex_unlock_irqrestore(void *mutex, void *flags); // 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)