1 /* 2 * Copyright 2010 Tilera Corporation. All Rights Reserved. 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation, version 2. 7 * 8 * This program is distributed in the hope that it will be useful, but 9 * WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or 11 * NON INFRINGEMENT. See the GNU General Public License for 12 * more details. 13 */ 14 15 #include <linux/stddef.h> 16 #include <linux/reboot.h> 17 #include <linux/smp.h> 18 #include <linux/pm.h> 19 #include <linux/export.h> 20 #include <asm/page.h> 21 #include <asm/setup.h> 22 #include <hv/hypervisor.h> 23 24 #ifndef CONFIG_SMP 25 #define smp_send_stop() 26 #endif 27 machine_halt(void)28void machine_halt(void) 29 { 30 warn_early_printk(); 31 arch_local_irq_disable_all(); 32 smp_send_stop(); 33 hv_halt(); 34 } 35 machine_power_off(void)36void machine_power_off(void) 37 { 38 warn_early_printk(); 39 arch_local_irq_disable_all(); 40 smp_send_stop(); 41 hv_power_off(); 42 } 43 machine_restart(char * cmd)44void machine_restart(char *cmd) 45 { 46 arch_local_irq_disable_all(); 47 smp_send_stop(); 48 hv_restart((HV_VirtAddr) "vmlinux", (HV_VirtAddr) cmd); 49 } 50 51 /* No interesting distinction to be made here. */ 52 void (*pm_power_off)(void) = NULL; 53 EXPORT_SYMBOL(pm_power_off); 54