added scram(8)
This commit is contained in:
parent
7aee021b13
commit
27dc8032ab
3 changed files with 36 additions and 3 deletions
|
@ -48,6 +48,7 @@ cp /bin/ns /tmp
|
||||||
cp /bin/rc /tmp
|
cp /bin/rc /tmp
|
||||||
cp /bin/sed /tmp
|
cp /bin/sed /tmp
|
||||||
cp /bin/sleep /tmp
|
cp /bin/sleep /tmp
|
||||||
|
cp /bin/scram /tmp
|
||||||
bind /tmp /rc
|
bind /tmp /rc
|
||||||
bind /tmp /bin
|
bind /tmp /bin
|
||||||
|
|
||||||
|
@ -77,6 +78,7 @@ fn x {
|
||||||
echo rebooting...
|
echo rebooting...
|
||||||
echo reboot >'#c/reboot'
|
echo reboot >'#c/reboot'
|
||||||
}
|
}
|
||||||
|
if not scram
|
||||||
}
|
}
|
||||||
|
|
||||||
x
|
x
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.TH FSHALT 8
|
.TH FSHALT 8
|
||||||
.SH NAME
|
.SH NAME
|
||||||
fshalt, reboot \- halt any local file systems and optionally reboot the system
|
fshalt, scram, reboot \- halt any local file systems and optionally shut down or reboot the system
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B fshalt
|
.B fshalt
|
||||||
[
|
[
|
||||||
|
@ -8,6 +8,8 @@ fshalt, reboot \- halt any local file systems and optionally reboot the system
|
||||||
]
|
]
|
||||||
.br
|
.br
|
||||||
.B reboot
|
.B reboot
|
||||||
|
.br
|
||||||
|
.B scram
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.I Fshalt
|
.I Fshalt
|
||||||
syncs all local
|
syncs all local
|
||||||
|
@ -25,6 +27,9 @@ If given
|
||||||
.BR -r ,
|
.BR -r ,
|
||||||
.I fshalt
|
.I fshalt
|
||||||
will then reboot the machine.
|
will then reboot the machine.
|
||||||
|
Else it will invoke
|
||||||
|
.I scram
|
||||||
|
to shut down the machine.
|
||||||
The halting and rebooting is done by copying all necessary
|
The halting and rebooting is done by copying all necessary
|
||||||
commands into a
|
commands into a
|
||||||
.IR ramfs (4)
|
.IR ramfs (4)
|
||||||
|
@ -35,6 +40,9 @@ local file systems.
|
||||||
.PP
|
.PP
|
||||||
.I Reboot
|
.I Reboot
|
||||||
restarts the machine it is invoked on.
|
restarts the machine it is invoked on.
|
||||||
|
.PP
|
||||||
|
.I Scram
|
||||||
|
shuts down the machine it is invoked on.
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B /rc/bin/fshalt
|
.B /rc/bin/fshalt
|
||||||
.br
|
.br
|
||||||
|
@ -43,6 +51,9 @@ restarts the machine it is invoked on.
|
||||||
.IR cons (3),
|
.IR cons (3),
|
||||||
.IR reboot (8)
|
.IR reboot (8)
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
On standalone machines, it will be impossible to do anything
|
On standalone machines, it will be impossible to do anything if scram fails
|
||||||
after invoking bare
|
after invoking bare
|
||||||
.LR fshalt .
|
.IR fshalt .
|
||||||
|
|
||||||
|
.I Scram
|
||||||
|
is limited to the PC and requires APM.
|
||||||
|
|
20
sys/src/cmd/scram.c
Normal file
20
sys/src/cmd/scram.c
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#include <u.h>
|
||||||
|
#include </386/include/ureg.h>
|
||||||
|
typedef struct Ureg Ureg;
|
||||||
|
#include <libc.h>
|
||||||
|
|
||||||
|
void
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
Ureg ureg;
|
||||||
|
int fd;
|
||||||
|
|
||||||
|
fd = open("/dev/apm", OWRITE);
|
||||||
|
if(fd < 0) sysfatal("%r");
|
||||||
|
memset(&ureg, 0, sizeof ureg);
|
||||||
|
ureg.ax = 0x5307;
|
||||||
|
ureg.bx = 0x0001;
|
||||||
|
ureg.cx = 0x0003;
|
||||||
|
ureg.trap = 0x15;
|
||||||
|
write(fd, &ureg, sizeof ureg);
|
||||||
|
}
|
Loading…
Reference in a new issue