Support reboot, halt, and poweroff independent of busybox init.

Simplify and fixup some logic.
 -Erik
This commit is contained in:
Eric Andersen
2003-07-22 09:41:39 +00:00
parent 85e5e72bc1
commit 0246222351
6 changed files with 136 additions and 45 deletions

View File

@@ -2,7 +2,6 @@
/*
* Mini poweroff implementation for busybox
*
* Copyright (C) 1995, 1996 by Bruce Perens <bruce@pixar.com>.
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -21,10 +20,37 @@
*
*/
#include "busybox.h"
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
#include <getopt.h>
#include <sys/reboot.h>
#include "busybox.h"
#include "init_shared.h"
extern int poweroff_main(int argc, char **argv)
{
char *delay; /* delay in seconds before rebooting */
if(bb_getopt_ulflags(argc, argv, "d:", &delay)) {
sleep(atoi(delay));
}
#ifndef CONFIG_INIT
#ifndef RB_POWER_OFF
#define RB_POWER_OFF 0x4321fedc
#endif
return(bb_shutdown_system(RB_POWER_OFF));
#else
return kill_init(SIGUSR2);
#endif
}
/*
Local Variables:
c-file-style: "linux"
c-basic-offset: 4
tab-width: 4
End:
*/