diff options
Diffstat (limited to 'init.c')
-rw-r--r-- | init.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -41,6 +41,7 @@ #include <linux/serial.h> /* for serial_struct */ #include <sys/vt.h> /* for vt_stat */ #include <sys/ioctl.h> +#include <linux/version.h> #ifdef BB_SYSLOGD #include <sys/syslog.h> #endif @@ -49,6 +50,10 @@ #error Sorry, I depend on the /proc filesystem right now. #endif +#ifndef KERNEL_VERSION +#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) +#endif + #define VT_PRIMARY "/dev/tty1" /* Primary virtual console */ #define VT_SECONDARY "/dev/tty2" /* Virtual console */ @@ -418,9 +423,11 @@ static void halt_signal(int sig) "The system is halted. Press CTRL-ALT-DEL or turn off power\r\n"); sync(); #ifndef DEBUG_INIT +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0) if (sig == SIGUSR2) reboot(RB_POWER_OFF); else +#endif reboot(RB_HALT_SYSTEM); #endif exit(0); |