/* Copyright (c) 2007,2008 Sandia National Laboratories */ #ifndef _LWK_PALACIOS_H_ #define _LWK_PALACIOS_H_ #ifdef CONFIG_V3VEE #include #include #include extern void v3vee_init_stubs( struct guest_info * info ); extern int v3vee_run_vmm( void ); extern struct v3_os_hooks v3vee_os_hooks; /**** * * stubs called by geekos.... * ***/ void send_key_to_vmm(unsigned char status, unsigned char scancode); void send_mouse_to_vmm(unsigned char packet[3]); void send_tick_to_vmm(unsigned int period_us); /* Location of the ROM Bios and VGA Bios used by palacios */ extern uint8_t rombios_start, rombios_end; extern uint8_t vgabios_start, vgabios_end; extern paddr_t initrd_start, initrd_end; /* * OS Hooks required to interface with the V3VEE library */ extern void v3vee_print_config( const char * fmt, ... ) __attribute__((format(printf,1,2))); extern void v3vee_print_debug( const char * fmt, ... ) __attribute__((format(printf,1,2))); extern void v3vee_print_trace( const char * fmt, ... ) __attribute__((format(printf,1,2))); extern void * v3vee_allocate_pages( int num_pages ); extern void v3vee_free_page( void * page ); extern void * v3vee_malloc( unsigned int size ); extern void v3vee_free( void * addr ); extern void * v3vee_paddr_to_vaddr( void * addr ); extern void * v3vee_vaddr_to_paddr( void * addr ); extern int v3vee_hook_interrupt( struct guest_info * vm, unsigned int irq ); extern int v3vee_ack_irq( int irq ); unsigned int v3vee_get_cpu_khz( void ); void v3vee_start_kernel_thread( void ); void v3vee_yield_cpu( void ); #endif // CONFIG_V3VEE #endif