Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


fecaac3e642e65d49f441eb60385c2905c436e3f
[palacios-OLD.git] / kitten / include / lwk / palacios.h
1 /* Copyright (c) 2007,2008 Sandia National Laboratories */
2
3 #ifndef _LWK_PALACIOS_H_
4 #define _LWK_PALACIOS_H_
5
6 #ifdef CONFIG_V3VEE
7
8 #include <lwk/types.h>
9 #include <palacios/vmm.h>
10 #include <palacios/vmm_host_events.h>
11
12
13 extern void v3vee_init_stubs( struct guest_info * info );
14
15 extern int
16 v3vee_run_vmm( void );
17
18 extern struct v3_os_hooks v3vee_os_hooks;
19
20 /**** 
21  * 
22  * stubs called by geekos....
23  * 
24  ***/
25 void send_key_to_vmm(unsigned char status, unsigned char scancode);
26 void send_mouse_to_vmm(unsigned char packet[3]);
27 void send_tick_to_vmm(unsigned int period_us);
28
29
30 /* Location of the ROM Bios and VGA Bios used by palacios */
31 extern uint8_t rombios_start, rombios_end;
32 extern uint8_t vgabios_start, vgabios_end;
33 extern paddr_t initrd_start, initrd_end;
34
35
36 /*
37  * OS Hooks required to interface with the V3VEE library
38  */
39 extern void
40 v3vee_print_config(
41         const char * fmt,
42         ...
43 ) __attribute__((format(printf,1,2)));
44
45
46 extern void
47 v3vee_print_debug(
48         const char * fmt,
49         ...
50 ) __attribute__((format(printf,1,2)));
51
52
53 extern void
54 v3vee_print_trace(
55         const char * fmt,
56         ...
57 ) __attribute__((format(printf,1,2)));
58
59
60 extern void *
61 v3vee_allocate_pages( int num_pages );
62
63
64 extern void
65 v3vee_free_page( void * page );
66
67
68 extern void *
69 v3vee_malloc( unsigned int size );
70
71
72 extern void
73 v3vee_free( void * addr );
74
75
76 extern void *
77 v3vee_paddr_to_vaddr( void * addr );
78
79
80 extern void *
81 v3vee_vaddr_to_paddr( void * addr );
82
83
84 extern int
85 v3vee_hook_interrupt(
86         struct guest_info *     vm,
87         unsigned int            irq
88 );
89
90
91 extern int
92 v3vee_ack_irq(
93         int                     irq
94 );
95
96
97 unsigned int
98 v3vee_get_cpu_khz( void );
99
100
101 void
102 v3vee_start_kernel_thread( void );
103
104
105 void
106 v3vee_yield_cpu( void );
107
108
109 #endif // CONFIG_V3VEE
110
111 #endif