From 4a04ef1ff890214aa92df3050d7db8206275f618 Mon Sep 17 00:00:00 2001 From: fenner Date: Sat, 4 May 2002 17:45:48 +0000 Subject: 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. --- sys/amd64/amd64/dump_machdep.c | 7 +++++++ sys/i386/i386/dump_machdep.c | 7 +++++++ sys/i386/i386/i386dump.c | 7 +++++++ 3 files changed, 21 insertions(+) (limited to 'sys') 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 #include #include +#include #include #include #include @@ -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 #include #include +#include #include #include #include @@ -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 #include #include +#include #include #include #include @@ -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); -- cgit v1.1