xref: /openbmc/linux/include/xen/xen-ops.h (revision e0bf6c5c)
1 #ifndef INCLUDE_XEN_OPS_H
2 #define INCLUDE_XEN_OPS_H
3 
4 #include <linux/percpu.h>
5 #include <linux/notifier.h>
6 #include <linux/efi.h>
7 #include <asm/xen/interface.h>
8 
9 DECLARE_PER_CPU(struct vcpu_info *, xen_vcpu);
10 
11 void xen_arch_pre_suspend(void);
12 void xen_arch_post_suspend(int suspend_cancelled);
13 
14 void xen_timer_resume(void);
15 void xen_arch_resume(void);
16 
17 void xen_resume_notifier_register(struct notifier_block *nb);
18 void xen_resume_notifier_unregister(struct notifier_block *nb);
19 
20 int xen_setup_shutdown_event(void);
21 
22 extern unsigned long *xen_contiguous_bitmap;
23 int xen_create_contiguous_region(phys_addr_t pstart, unsigned int order,
24 				unsigned int address_bits,
25 				dma_addr_t *dma_handle);
26 
27 void xen_destroy_contiguous_region(phys_addr_t pstart, unsigned int order);
28 
29 struct vm_area_struct;
30 int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
31 			       unsigned long addr,
32 			       xen_pfn_t mfn, int nr,
33 			       pgprot_t prot, unsigned domid,
34 			       struct page **pages);
35 int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
36 			       int numpgs, struct page **pages);
37 
38 bool xen_running_on_version_or_later(unsigned int major, unsigned int minor);
39 
40 #ifdef CONFIG_XEN_EFI
41 extern efi_system_table_t *xen_efi_probe(void);
42 #else
43 static inline efi_system_table_t __init *xen_efi_probe(void)
44 {
45 	return NULL;
46 }
47 #endif
48 
49 #ifdef CONFIG_PREEMPT
50 
51 static inline void xen_preemptible_hcall_begin(void)
52 {
53 }
54 
55 static inline void xen_preemptible_hcall_end(void)
56 {
57 }
58 
59 #else
60 
61 DECLARE_PER_CPU(bool, xen_in_preemptible_hcall);
62 
63 static inline void xen_preemptible_hcall_begin(void)
64 {
65 	__this_cpu_write(xen_in_preemptible_hcall, true);
66 }
67 
68 static inline void xen_preemptible_hcall_end(void)
69 {
70 	__this_cpu_write(xen_in_preemptible_hcall, false);
71 }
72 
73 #endif /* CONFIG_PREEMPT */
74 
75 #endif /* INCLUDE_XEN_OPS_H */
76