]>
Commit | Line | Data |
---|---|---|
0e91398f JF |
1 | #include <linux/types.h> |
2 | ||
3 | #include <xen/interface/xen.h> | |
4 | #include <xen/grant_table.h> | |
5 | #include <xen/events.h> | |
6 | ||
7 | #include <asm/xen/hypercall.h> | |
8 | #include <asm/xen/page.h> | |
9 | ||
10 | #include "xen-ops.h" | |
11 | #include "mmu.h" | |
12 | ||
13 | void xen_pre_suspend(void) | |
14 | { | |
15 | xen_start_info->store_mfn = mfn_to_pfn(xen_start_info->store_mfn); | |
16 | xen_start_info->console.domU.mfn = | |
17 | mfn_to_pfn(xen_start_info->console.domU.mfn); | |
18 | ||
19 | BUG_ON(!irqs_disabled()); | |
20 | ||
21 | HYPERVISOR_shared_info = &xen_dummy_shared_info; | |
22 | if (HYPERVISOR_update_va_mapping(fix_to_virt(FIX_PARAVIRT_BOOTMAP), | |
23 | __pte_ma(0), 0)) | |
24 | BUG(); | |
25 | } | |
26 | ||
27 | void xen_post_suspend(int suspend_cancelled) | |
28 | { | |
9c7a7942 JF |
29 | xen_setup_shared_info(); |
30 | ||
0e91398f JF |
31 | if (suspend_cancelled) { |
32 | xen_start_info->store_mfn = | |
33 | pfn_to_mfn(xen_start_info->store_mfn); | |
34 | xen_start_info->console.domU.mfn = | |
35 | pfn_to_mfn(xen_start_info->console.domU.mfn); | |
36 | } else { | |
37 | #ifdef CONFIG_SMP | |
b78936e1 MT |
38 | BUG_ON(xen_cpu_initialized_map == NULL); |
39 | cpumask_copy(xen_cpu_initialized_map, cpu_online_mask); | |
0e91398f | 40 | #endif |
9c7a7942 | 41 | xen_vcpu_restore(); |
0e91398f JF |
42 | } |
43 | ||
0e91398f JF |
44 | } |
45 | ||
ad55db9f IY |
46 | void xen_arch_resume(void) |
47 | { | |
48 | /* nothing */ | |
49 | } |