aboutsummaryrefslogtreecommitdiffstats
path: root/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c
diff options
context:
space:
mode:
Diffstat (limited to 'unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c')
-rw-r--r--unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c b/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c
new file mode 100644
index 0000000000..d14bdbf1d9
--- /dev/null
+++ b/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c
@@ -0,0 +1,24 @@
+#include <linux/config.h>
+#include <xen/xenbus.h>
+#include "platform-pci.h"
+#include <asm/hypervisor.h>
+
+int __xen_suspend(int fast_suspend)
+{
+ int suspend_cancelled;
+
+ xenbus_suspend();
+ platform_pci_suspend();
+
+ suspend_cancelled = HYPERVISOR_shutdown(SHUTDOWN_suspend);
+
+ if (suspend_cancelled) {
+ platform_pci_suspend_cancel();
+ xenbus_suspend_cancel();
+ } else {
+ platform_pci_resume();
+ xenbus_resume();
+ }
+
+ return 0;
+}