diff options
author | fenner <fenner@FreeBSD.org> | 2002-05-04 17:45:48 +0000 |
---|---|---|
committer | fenner <fenner@FreeBSD.org> | 2002-05-04 17:45:48 +0000 |
commit | 4a04ef1ff890214aa92df3050d7db8206275f618 (patch) | |
tree | 0dfb2f7a72e9f4757b60d199f102dd822886a2b3 /sys | |
parent | 226cd40e3da30c9b459363d3da47dc3f4a309bf9 (diff) | |
download | FreeBSD-src-4a04ef1ff890214aa92df3050d7db8206275f618.zip FreeBSD-src-4a04ef1ff890214aa92df3050d7db8206275f618.tar.gz |
Restore the ability interrupt dumps on i386, based on
the old kern_shutdown.c . Other archs might be able to
use similar code but I don't have anything to test on.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/amd64/amd64/dump_machdep.c | 7 | ||||
-rw-r--r-- | sys/i386/i386/dump_machdep.c | 7 | ||||
-rw-r--r-- | sys/i386/i386/i386dump.c | 7 |
3 files changed, 21 insertions, 0 deletions
diff --git a/sys/amd64/amd64/dump_machdep.c b/sys/amd64/amd64/dump_machdep.c index 09db68b..c671a5a 100644 --- a/sys/amd64/amd64/dump_machdep.c +++ b/sys/amd64/amd64/dump_machdep.c @@ -38,6 +38,7 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/conf.h> +#include <sys/cons.h> #include <sys/kernel.h> #include <sys/kerneldump.h> #include <vm/vm.h> @@ -56,6 +57,7 @@ dumpsys(struct dumperinfo *di) u_int count, left, u; void *va; int i, mb; + int c; printf("Dumping %u MB\n", Maxmem / (1024*1024 / PAGE_SIZE)); @@ -104,6 +106,11 @@ dumpsys(struct dumperinfo *di) count += left; dumplo += left * PAGE_SIZE; addr += left * PAGE_SIZE; + if ((c = cncheckc()) == 0x03) { + printf("\nDump aborted.\n"); + return; + } else if (c != -1) + printf("[CTRL-C to abort] "); } if (i) printf("\nDump failed writing data (%d)\n", i); diff --git a/sys/i386/i386/dump_machdep.c b/sys/i386/i386/dump_machdep.c index 09db68b..c671a5a 100644 --- a/sys/i386/i386/dump_machdep.c +++ b/sys/i386/i386/dump_machdep.c @@ -38,6 +38,7 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/conf.h> +#include <sys/cons.h> #include <sys/kernel.h> #include <sys/kerneldump.h> #include <vm/vm.h> @@ -56,6 +57,7 @@ dumpsys(struct dumperinfo *di) u_int count, left, u; void *va; int i, mb; + int c; printf("Dumping %u MB\n", Maxmem / (1024*1024 / PAGE_SIZE)); @@ -104,6 +106,11 @@ dumpsys(struct dumperinfo *di) count += left; dumplo += left * PAGE_SIZE; addr += left * PAGE_SIZE; + if ((c = cncheckc()) == 0x03) { + printf("\nDump aborted.\n"); + return; + } else if (c != -1) + printf("[CTRL-C to abort] "); } if (i) printf("\nDump failed writing data (%d)\n", i); diff --git a/sys/i386/i386/i386dump.c b/sys/i386/i386/i386dump.c index 09db68b..c671a5a 100644 --- a/sys/i386/i386/i386dump.c +++ b/sys/i386/i386/i386dump.c @@ -38,6 +38,7 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/conf.h> +#include <sys/cons.h> #include <sys/kernel.h> #include <sys/kerneldump.h> #include <vm/vm.h> @@ -56,6 +57,7 @@ dumpsys(struct dumperinfo *di) u_int count, left, u; void *va; int i, mb; + int c; printf("Dumping %u MB\n", Maxmem / (1024*1024 / PAGE_SIZE)); @@ -104,6 +106,11 @@ dumpsys(struct dumperinfo *di) count += left; dumplo += left * PAGE_SIZE; addr += left * PAGE_SIZE; + if ((c = cncheckc()) == 0x03) { + printf("\nDump aborted.\n"); + return; + } else if (c != -1) + printf("[CTRL-C to abort] "); } if (i) printf("\nDump failed writing data (%d)\n", i); |