X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Fpalacios.h;h=fd5a188975bba7d73a338ce3dd529b0b57f3835e;hb=a5264d4dcf50d633e01e92dba62a5cf00c3bae2a;hp=e57fbd4e62074d49d6d494362bbaa562668c07b2;hpb=b21e50b2ddee22d01640350b676e48ac2b0d579d;p=palacios.git diff --git a/linux_module/palacios.h b/linux_module/palacios.h index e57fbd4..fd5a188 100644 --- a/linux_module/palacios.h +++ b/linux_module/palacios.h @@ -31,6 +31,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 @@ -98,9 +101,32 @@ int palacios_vmm_init( void ); int palacios_vmm_exit( void ); -// Exported stubs, for use in other palacios components, like vnet -void palacios_print(const char *fmt, ...); +// This is how a component finds the proc dir we are using for global state +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_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); +void *palacios_start_kernel_thread(int (*fn)(void * arg), void *arg, char *thread_name); +void *palacios_start_thread_on_cpu(int cpu_id, int (*fn)(void * arg), void *arg, char *thread_name); +int palacios_move_thread_to_cpu(int new_cpu_id, void *thread_ptr); +void palacios_yield_cpu(void); +void palacios_yield_cpu_timed(unsigned int us); unsigned int palacios_get_cpu(void); +unsigned int palacios_get_cpu_khz(void); +void *palacios_mutex_alloc(void); +void palacios_mutex_free(void *mutex); +void palacios_mutex_lock(void *mutex, int must_spin); +void palacios_mutex_unlock(void *mutex); +void *palacios_mutex_lock_irqsave(void *mutex, int must_spin); +void palacios_mutex_unlock_irqrestore(void *mutex, void *flags); @@ -118,7 +144,7 @@ unsigned int palacios_get_cpu(void); // 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)