aboutsummaryrefslogtreecommitdiff
path: root/shell/hush.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/hush.c')
-rw-r--r--shell/hush.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/shell/hush.c b/shell/hush.c
index d696d73..5ef39bc 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -73,6 +73,7 @@
#if ENABLE_HUSH_CASE
#include <fnmatch.h>
#endif
+#include <sys/reboot.h>
#define HUSH_VER_STR "0.91"
@@ -774,6 +775,7 @@ static int builtin_rxtxrpt(char **argv);
static int builtin_rptaddrs(char **argv);
static int builtin_rptuptime(char **argv);
static int builtin_onlyuptime(char **argv);
+static int builtin_reboot_probe(char **argv);
static int builtin_true(char **argv);
static int builtin_set(char **argv);
static int builtin_shift(char **argv);
@@ -836,6 +838,7 @@ static const struct built_in_command bltins[] = {
BLTIN("rptaddrs" , builtin_rptaddrs, "report address(es), route(s), and dns"),
BLTIN("rptuptime" , builtin_rptuptime, "report uptime"),
BLTIN("onlyuptime" , builtin_onlyuptime, "report uptime in seconds"),
+ BLTIN("reboot_probe" , builtin_reboot_probe, "built-in reboot command"),
BLTIN("echo" , builtin_echo, "Write to stdout"),
BLTIN("eval" , builtin_eval, "Construct and run shell command"),
BLTIN("exec" , builtin_exec, "Execute command, don't return to shell"),
@@ -4797,6 +4800,15 @@ static int builtin_onlyuptime(char **argv __attribute((unused)))
return 0;
}
+static int builtin_reboot_probe(char **argv __attribute((unused)))
+{
+ int r;
+
+ sync();
+ r= reboot(RB_AUTOBOOT);
+ return r;
+}
+
static int builtin_rchoose(char **argv)
{
int argc = 0;