From f3837fd9c687ec40de7aab3a56ce75cc39aa2961 Mon Sep 17 00:00:00 2001 From: Guillaume Cottenceau Date: Thu, 27 Nov 2003 13:18:47 +0000 Subject: allow to halt machine --- mdk-stage1/init.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'mdk-stage1/init.c') diff --git a/mdk-stage1/init.c b/mdk-stage1/init.c index ac9154dcd..44fc9a3e9 100644 --- a/mdk-stage1/init.c +++ b/mdk-stage1/init.c @@ -336,13 +336,17 @@ void unmount_filesystems(void) } } +int reboot_magic = 0x01234567; + int in_reboot(void) { int fd; if ((fd = open("/var/run/rebootctl", O_RDONLY, 0)) > 0) { - char buf[1]; + char buf[100]; int i = read(fd, buf, sizeof(buf)); close(fd); + if (strstr(buf, "halt")) + reboot_magic = 0x4321FEDC; return i > 0; } return 0; @@ -475,9 +479,12 @@ int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)) sync(); sync(); if (!abnormal_termination) { - printf("automatic reboot in 10 seconds\n"); + if (reboot_magic == 0x01234567) + printf("automatic reboot in 10 seconds\n"); + else + printf("automatic poweroff in 10 seconds\n"); sleep(10); - reboot(0xfee1dead, 672274793, 0x01234567); + reboot(0xfee1dead, 672274793, reboot_magic); } else { printf("you may safely reboot or halt your system\n"); while (1); -- cgit v1.2.1