diff options
author | Gene Cumm <gene.cumm@gmail.com> | 2010-10-03 07:12:06 -0400 |
---|---|---|
committer | Gene Cumm <gene.cumm@gmail.com> | 2010-10-09 07:33:08 -0400 |
commit | afb0c23c5f1dc25e4f0a71141b0ed42a1d81c96f (patch) | |
tree | 368779283efb5ca80fcdb5d9b7ce0e8f7fef998d /com32/rosh | |
parent | e5113373998003f6858abe5074a8c2c57f8a5dad (diff) | |
download | syslinux-afb0c23c5f1dc25e4f0a71141b0ed42a1d81c96f.tar.gz |
rosh: Add argc/argv rosh_reboot(); Allow warm reboots
Diffstat (limited to 'com32/rosh')
-rw-r--r-- | com32/rosh/rosh.c | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/com32/rosh/rosh.c b/com32/rosh/rosh.c index e8c29faf..70010d4b 100644 --- a/com32/rosh/rosh.c +++ b/com32/rosh/rosh.c @@ -41,7 +41,7 @@ #define APP_NAME "rosh" #define APP_AUTHOR "Gene Cumm" #define APP_YEAR "2010" -#define APP_VER "beta-b080" +#define APP_VER "beta-b082" /* Print version information to stdout */ @@ -1095,13 +1095,33 @@ void rosh_pwd(const char *cmdstr) ROSH_DEBUG2(" --%08X\n", istr); } /* rosh_pwd */ -/* Reboot +/* Reboot; use warm reboot if one of certain options set + * argc Argument count + * argv Argument values */ -void rosh_reboot(void) +void rosh_reboot(int argc, char *argv[]) { -// char cmdstr[ROSH_CMD_SZ]; -// printf - syslinux_reboot(0); + int rtype = 0; + if (argc) { + /* For now, just use the first */ + switch (argv[0][0]) { + case '1': + case 's': + case 'w': + rtype = 1; + break; + case '-': + switch (argv[0][1]) { + case '1': + case 's': + case 'w': + rtype = 1; + break; + } + break; + } + } + syslinux_reboot(rtype); } /* rosh_reboot */ /* Run a boot string, calling syslinux_run_command @@ -1268,7 +1288,7 @@ char rosh_command(int argc, char *argv[], const char *ipwdstr) case 'e': case 'E': if (strncasecmp("reboot", argv[0], tlen) == 0) - rosh_reboot(); + rosh_reboot(argc - 1, &argv[1]); else rosh_help(1, NULL); break; |