Thanks for the example.

regards


23 января 2012, 09:41 от "Daniel O'Connor" <docon...@gsoft.com.au>:
> 
> On 23/01/2012, at 13:33, Andrew Davis wrote:
> 
> >> do you want to sync the disks first? of just hard reset?
> >
> > Why would anyone ever want to do that, you're a kernel mod, if you want to
> > do that just triple-fault.
> 
> You can call cpu_reset().
> 
> I wrote a KLD which did this because we had a driver issue where the system 
> wouldn't reboot if you did shutdown -r (it would hang).
> 
> ==== reset.c ====
> #include <sys/param.h>
> #include <sys/kernel.h>
> #include <sys/module.h>
> #include <sys/types.h>
> #include <sys/systm.h>
> #include <machine/cpu.h>
> 
> static int reset_handler(module_t mod, int /*modeventtype_t*/ what,
>                      void *arg);
> 
> static moduledata_t mod_data= {
>     "reset",
>     reset_handler,
>     0
> };
> 
> MODULE_VERSION(reset, 1);
> 
> DECLARE_MODULE(reset, mod_data, SI_SUB_EXEC, SI_ORDER_ANY);
> 
> static int
> reset_handler(module_t mod, int /*modeventtype_t*/ what, void *arg) {
>     switch (what) {
>       case MOD_LOAD:
>           printf("Forced reboot\n");
>           DELAY(1000000); /* wait 1 sec for printf's to complete and be read 
> */
>           /* cpu_boot(howto); */ /* doesn't do anything at the moment */
>           cpu_reset();
>           printf("Reset failed!\n");
>           /* NOTREACHED */ /* assuming reset worked */
>           break;
>       
>       default:
>           return(EOPNOTSUPP);
>           break;
>     }
> 
>     return(ENXIO);
> }
> ====
> 
> ==== Makefile ====
> KMOD  = reset
> SRCS  = reset.c
> 
> .include <bsd.kmod.mk>
> ====
> 
> > On Sun, Jan 22, 2012 at 9:32 PM, Julian Elischer <jul...@freebsd.org> wrote:
> >
> >> On 1/22/12 2:19 AM, geoffrey levand wrote:
> >>
> >>> Hi,
> >>>
> >>> how would i reboot/halt the system from a kernel module ?
> >>>
> >>
> >> the answer is "that depends"..
> >>
> >> do you want to sync the disks first? of just hard reset?
> >>
> >>
> >>
> >> ______________________________**_________________
> >> freebsd-hackers@freebsd.org mailing list
> >> http://lists.freebsd.org/**mailman/listinfo/freebsd-**hackers<http://lists.freebsd.org/mailman/listinfo/freebsd-hackers>
> >> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@**
> >> freebsd.org <freebsd-hackers-unsubscr...@freebsd.org>"
> >>
> > _______________________________________________
> > freebsd-hackers@freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> > To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"
> >
> 
> --
> Daniel O'Connor software and network engineer
> for Genesis Software - http://www.gsoft.com.au
> "The nice thing about standards is that there
> are so many of them to choose from."
>   -- Andrew Tanenbaum
> GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
> 
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"
> 
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to