From 107806f9ab7e87b0535944606d53b07dca291b1c Mon Sep 17 00:00:00 2001 From: Shao Miller Date: Tue, 15 Jun 2010 00:34:20 -0400 Subject: mdiskchk: Add --no-sequential mode It might be useful to suppress MDISKCHK.COM's classic behaviour of probing all BIOS drive numbers in search of MEMDISKs. Some BIOSes might not enjoy being probed. Reported-by: bylokk Reported-by: Gert Hulselmans Signed-off-by: Shao Miller --- dosutil/mdiskchk.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dosutil/mdiskchk.c b/dosutil/mdiskchk.c index ddc57632..f7bde614 100644 --- a/dosutil/mdiskchk.c +++ b/dosutil/mdiskchk.c @@ -200,7 +200,8 @@ static MDISKCHK_FUNC_DECL(show_usage) "Action: --safe-hooks . . Will scan INT 13h \"safe hook\" chain\n" " --mbfts . . . . Will scan memory for MEMDISK mBFTs\n" " --batch-output . Will output SET command output based\n" - " on MEMDISK kernel arguments\n"); + " on MEMDISK kernel arguments\n" + " --no-sequential Suppresses probing all drive numbers\n"); } /* Search memory for mBFTs and report them via the output method */ @@ -297,6 +298,7 @@ int main(int argc, char *argv[]) { int d; int found = 0; + int sequential_scan = 1; /* Classic behaviour */ const struct memdiskinfo *m; /* Default behaviour */ @@ -331,6 +333,10 @@ int main(int argc, char *argv[]) case 'b': show_memdisk = batch_output; break; + case 'N': + case 'n': + sequential_scan = 0; + break; default: usage = show_usage; } /* switch */ @@ -338,6 +344,8 @@ int main(int argc, char *argv[]) safe_hooks(); mbfts(); + if (!sequential_scan) + goto skip_sequential; for (d = 0; d <= 0xff; d++) { m = query_memdisk(d); if (m != NULL) { @@ -345,6 +353,7 @@ int main(int argc, char *argv[]) show_memdisk(d, m); } } +skip_sequential: usage(); return found; -- cgit v1.2.1