Messages in this thread |  | | Date | Sun, 29 Sep 1996 22:15:46 +1000 (EST) | From | David Monro <> | Subject | Re: rebooting |
| |
> > xor %esp,%esp > inc %esp > push %esp > > That works on every x86 machine we've tested it on, including his with > the wacko keyboard controller, it's about as non-portable as it gets > though, so I doubt its suitable for the actual kernel, you should try it > in your machine, tho. Actually, this should work fine on any x86 machine - I guess this will cause the processor to enter shutdown mode (stack fault trying to run on an invalid stack), which on any machine I have come across causes reboot. Of course on a machine that was designed properly it would drop you into a rom monitor, like on a Sun or a Dec, but we are talking PCs here after all....
Currently this works because we don't use a separate task for handling stack exceptions (by using a separate task it is possible to have a stack kept aside for the exception handler). This approach will fail if this changes.
Note that this causes a cold rather than warm reboot, so we don't ususally want to do this, but it could be useful to attempt to do a warm boot, and if we are still running say 1 second later try this approach.
Does this sound reasonable?
David > > -- > +-------------+----------------------+ > | | | || ||| |Email: Jared@isysg.com| > | |||||||=| | | "Orion" at IRC | > |Jared Roberts| Redmond, WA | > +-------------+----------------------+
|  |