root / hw / xen.h @ 5c3234c6
History | View | Annotate | Download (1.4 kB)
1 | e37630ca | aliguori | #ifndef QEMU_HW_XEN_H
|
---|---|---|---|
2 | e37630ca | aliguori | #define QEMU_HW_XEN_H 1 |
3 | e37630ca | aliguori | /*
|
4 | e37630ca | aliguori | * public xen header
|
5 | e37630ca | aliguori | * stuff needed outside xen-*.c, i.e. interfaces to qemu.
|
6 | e37630ca | aliguori | * must not depend on any xen headers being present in
|
7 | e37630ca | aliguori | * /usr/include/xen, so it can be included unconditionally.
|
8 | e37630ca | aliguori | */
|
9 | 23327f75 | Gerd Hoffmann | #include <inttypes.h> |
10 | e37630ca | aliguori | |
11 | 41445300 | Anthony PERARD | #include "qemu-common.h" |
12 | 41445300 | Anthony PERARD | |
13 | e37630ca | aliguori | /* xen-machine.c */
|
14 | e37630ca | aliguori | enum xen_mode {
|
15 | e37630ca | aliguori | XEN_EMULATE = 0, // xen emulation, using xenner (default) |
16 | e37630ca | aliguori | XEN_CREATE, // create xen domain
|
17 | e37630ca | aliguori | XEN_ATTACH // attach to xen domain created by xend
|
18 | e37630ca | aliguori | }; |
19 | e37630ca | aliguori | |
20 | e37630ca | aliguori | extern uint32_t xen_domid;
|
21 | e37630ca | aliguori | extern enum xen_mode xen_mode; |
22 | e37630ca | aliguori | |
23 | 3285cf4f | Anthony PERARD | extern int xen_allowed; |
24 | 3285cf4f | Anthony PERARD | |
25 | 3285cf4f | Anthony PERARD | static inline int xen_enabled(void) |
26 | 3285cf4f | Anthony PERARD | { |
27 | 3285cf4f | Anthony PERARD | #ifdef CONFIG_XEN
|
28 | 3285cf4f | Anthony PERARD | return xen_allowed;
|
29 | 3285cf4f | Anthony PERARD | #else
|
30 | 3285cf4f | Anthony PERARD | return 0; |
31 | 3285cf4f | Anthony PERARD | #endif
|
32 | 3285cf4f | Anthony PERARD | } |
33 | 3285cf4f | Anthony PERARD | |
34 | 432d268c | Jun Nakajima | static inline int xen_mapcache_enabled(void) |
35 | 432d268c | Jun Nakajima | { |
36 | 432d268c | Jun Nakajima | #ifdef CONFIG_XEN_MAPCACHE
|
37 | 432d268c | Jun Nakajima | return xen_enabled();
|
38 | 432d268c | Jun Nakajima | #else
|
39 | 432d268c | Jun Nakajima | return 0; |
40 | 432d268c | Jun Nakajima | #endif
|
41 | 432d268c | Jun Nakajima | } |
42 | 432d268c | Jun Nakajima | |
43 | 41445300 | Anthony PERARD | int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num); |
44 | 41445300 | Anthony PERARD | void xen_piix3_set_irq(void *opaque, int irq_num, int level); |
45 | 41445300 | Anthony PERARD | void xen_piix_pci_write_config_client(uint32_t address, uint32_t val, int len); |
46 | c9622478 | Anthony PERARD | void xen_cmos_set_s3_resume(void *opaque, int irq, int level); |
47 | 41445300 | Anthony PERARD | |
48 | 9c11a8ac | Anthony PERARD | qemu_irq *xen_interrupt_controller_init(void);
|
49 | 9c11a8ac | Anthony PERARD | |
50 | 3285cf4f | Anthony PERARD | int xen_init(void); |
51 | 29d3ccde | Anthony PERARD | int xen_hvm_init(void); |
52 | 29d3ccde | Anthony PERARD | void xen_vcpu_init(void); |
53 | 29d3ccde | Anthony PERARD | |
54 | 432d268c | Jun Nakajima | #if defined(NEED_CPU_H) && !defined(CONFIG_USER_ONLY)
|
55 | 432d268c | Jun Nakajima | void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size);
|
56 | 432d268c | Jun Nakajima | #endif
|
57 | 432d268c | Jun Nakajima | |
58 | 29d3ccde | Anthony PERARD | #if defined(CONFIG_XEN) && CONFIG_XEN_CTRL_INTERFACE_VERSION < 400 |
59 | 29d3ccde | Anthony PERARD | # define HVM_MAX_VCPUS 32 |
60 | 29d3ccde | Anthony PERARD | #endif
|
61 | 3285cf4f | Anthony PERARD | |
62 | e37630ca | aliguori | #endif /* QEMU_HW_XEN_H */ |