/* * arch/i386/mach-generic/mach_reboot.h * * Machine specific reboot functions for generic. * Split out from reboot.c by Osamu Tomita */ #ifndef _MACH_REBOOT_H #define _MACH_REBOOT_H static inline void kb_wait(void) { int i; for (i = 0; i < 0x10000; i++) if ((inb_p(0x64) & 0x02) == 0) break; } static inline void mach_reboot(void) { int i; for (i = 0; i < 100; i++) { kb_wait(); udelay(50); outb(0x60, 0x64); /* write Controller Command Byte */ udelay(50); kb_wait(); udelay(50); outb(0x14, 0x60); /* set "System flag" */ udelay(50); kb_wait(); udelay(50); outb(0xfe, 0x64); /* pulse reset low */ udelay(50); } } #endif /* !_MACH_REBOOT_H */