diff options
author | Shao Miller <shao.miller@yrdsb.edu.on.ca> | 2010-06-15 00:34:20 -0400 |
---|---|---|
committer | Shao Miller <shao.miller@yrdsb.edu.on.ca> | 2010-06-15 00:48:56 -0400 |
commit | 107806f9ab7e87b0535944606d53b07dca291b1c (patch) | |
tree | 13bbfb389717e7d067cd40ee1076ff1a5e4142a3 | |
parent | 38792ac66a4d4285a06ba8b6ee5b866792f536f4 (diff) | |
download | syslinux-107806f9ab7e87b0535944606d53b07dca291b1c.tar.gz |
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 <gerth@zytor.com>
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
-rw-r--r-- | dosutil/mdiskchk.c | 11 |
1 files changed, 10 insertions, 1 deletions
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; |