diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-11-14 13:24:59 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-11-14 13:24:59 +0000 |
commit | b0cc3f3395adf89e793558ec44f1b71ac813e9da (patch) | |
tree | 6940ad573d8c4f517d1160ecdd9f3a88edf15535 /sys/arch | |
parent | c47a4413fa5063f711563ad881882f4a67b9ab55 (diff) |
clear pv_synchook if we halt; thus prom "sync" command will not do the wrong thing
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/sparc/sparc/machdep.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/arch/sparc/sparc/machdep.c b/sys/arch/sparc/sparc/machdep.c index 9a479540101..beb7244f608 100644 --- a/sys/arch/sparc/sparc/machdep.c +++ b/sys/arch/sparc/sparc/machdep.c @@ -75,6 +75,7 @@ #include <sys/exec.h> #include <sys/sysctl.h> +#include <machine/bsd_openprom.h> #include <machine/autoconf.h> #include <machine/frame.h> #include <machine/cpu.h> @@ -606,6 +607,7 @@ boot(howto) static char str[4]; /* room for "-sd\0" */ extern volatile void romhalt(void); extern volatile void romboot(char *); + extern struct promvec *promvec; fb_unblank(); boothowto = howto; @@ -627,8 +629,13 @@ boot(howto) resettodr(); } (void) splhigh(); /* ??? */ + if (howto & RB_HALT) { printf("halted\n\n"); +#if defined(SUN4M) || defined(SUN4C) + if (cputyp==CPU_SUN4M || cputyp==CPU_SUN4C) + *promvec->pv_synchook = NULL; +#endif romhalt(); } if (howto & RB_DUMP) @@ -644,6 +651,10 @@ boot(howto) str[i] = 0; } else str[0] = 0; +#if defined(SUN4M) || defined(SUN4C) + if (cputyp==CPU_SUN4M || cputyp==CPU_SUN4C) + *promvec->pv_synchook = NULL; +#endif romboot(str); /*NOTREACHED*/ } |