]>
Commit | Line | Data |
---|---|---|
e37630ca AL |
1 | #ifndef QEMU_HW_XEN_H |
2 | #define QEMU_HW_XEN_H 1 | |
3 | /* | |
4 | * public xen header | |
5 | * stuff needed outside xen-*.c, i.e. interfaces to qemu. | |
6 | * must not depend on any xen headers being present in | |
7 | * /usr/include/xen, so it can be included unconditionally. | |
8 | */ | |
23327f75 | 9 | #include <inttypes.h> |
e37630ca | 10 | |
5202ef94 | 11 | #include "hw/irq.h" |
41445300 AP |
12 | #include "qemu-common.h" |
13 | ||
e37630ca AL |
14 | /* xen-machine.c */ |
15 | enum xen_mode { | |
16 | XEN_EMULATE = 0, // xen emulation, using xenner (default) | |
17 | XEN_CREATE, // create xen domain | |
18 | XEN_ATTACH // attach to xen domain created by xend | |
19 | }; | |
20 | ||
21 | extern uint32_t xen_domid; | |
22 | extern enum xen_mode xen_mode; | |
23 | ||
3285cf4f AP |
24 | extern int xen_allowed; |
25 | ||
26 | static inline int xen_enabled(void) | |
27 | { | |
59d21e53 | 28 | #if defined(CONFIG_XEN_BACKEND) && !defined(CONFIG_NO_XEN) |
3285cf4f AP |
29 | return xen_allowed; |
30 | #else | |
31 | return 0; | |
32 | #endif | |
33 | } | |
34 | ||
41445300 AP |
35 | int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num); |
36 | void xen_piix3_set_irq(void *opaque, int irq_num, int level); | |
37 | void xen_piix_pci_write_config_client(uint32_t address, uint32_t val, int len); | |
f1dbf015 | 38 | void xen_hvm_inject_msi(uint64_t addr, uint32_t data); |
c9622478 | 39 | void xen_cmos_set_s3_resume(void *opaque, int irq, int level); |
41445300 | 40 | |
9c11a8ac AP |
41 | qemu_irq *xen_interrupt_controller_init(void); |
42 | ||
3285cf4f | 43 | int xen_init(void); |
29d3ccde AP |
44 | int xen_hvm_init(void); |
45 | void xen_vcpu_init(void); | |
0f51726a | 46 | void xenstore_store_pv_console_info(int i, struct CharDriverState *chr); |
29d3ccde | 47 | |
432d268c | 48 | #if defined(NEED_CPU_H) && !defined(CONFIG_USER_ONLY) |
fce537d4 AK |
49 | struct MemoryRegion; |
50 | void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size, | |
51 | struct MemoryRegion *mr); | |
910b38e4 | 52 | void xen_modified_memory(ram_addr_t start, ram_addr_t length); |
432d268c JN |
53 | #endif |
54 | ||
c65adf9b AK |
55 | struct MemoryRegion; |
56 | void xen_register_framebuffer(struct MemoryRegion *mr); | |
57 | ||
29d3ccde AP |
58 | #if defined(CONFIG_XEN) && CONFIG_XEN_CTRL_INTERFACE_VERSION < 400 |
59 | # define HVM_MAX_VCPUS 32 | |
60 | #endif | |
3285cf4f | 61 | |
e37630ca | 62 | #endif /* QEMU_HW_XEN_H */ |