From 956a5693603be076a7a2b0bacc22eea4a3b93cbe Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Wed, 27 Sep 2006 14:51:27 +0000 Subject: [PATCH] losetup: with no arguments lists all /dev/loopN. Corrected help text. (patch by Vladimir Dronnikov ) --- include/usage.h | 5 +++-- util-linux/losetup.c | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/include/usage.h b/include/usage.h index 8b8d64e84..36739c712 100644 --- a/include/usage.h +++ b/include/usage.h @@ -1623,13 +1623,14 @@ USE_FEATURE_DATE_ISOFMT( \ "\t-f\t\toutput data as the log grows" #define losetup_trivial_usage \ - "[-od] LOOPDEVICE [FILE]" + "[-o OFFSET] [-d] LOOPDEVICE [FILE]]" #define losetup_full_usage \ - "Associate LOOPDEVICE with FILE, or display current association.\n\n" \ + "(Dis)associate LOOPDEVICE with FILE, or display current associations.\n\n" \ "Options:\n" \ "\t-d\t\tDisassociate LOOPDEVICE\n" \ "\t-o OFFSET\tStart OFFSET bytes into FILE" #define losetup_notes_usage \ + "No arguments will display all current associations.\n" \ "One argument (losetup /dev/loop1) will display the current association\n" \ "(if any), or disassociate it (with -d). The display shows the offset\n" \ "and filename of the file the loop device is currently bound to.\n\n" \ diff --git a/util-linux/losetup.c b/util-linux/losetup.c index af0b03a53..6b9a810f2 100644 --- a/util-linux/losetup.c +++ b/util-linux/losetup.c @@ -22,7 +22,8 @@ int losetup_main(int argc, char **argv) argc -= optind; argv += optind; - if (opt == 0x3) bb_show_usage(); // -d and -o (illegal) + if (opt == 0x3) // -d + -o (illegal) + bb_show_usage(); if (opt == 0x1) { // -d /* detach takes exactly one argument */ @@ -46,7 +47,18 @@ int losetup_main(int argc, char **argv) if (!s) bb_perror_nomsg_and_die(); printf("%s: %s\n", argv[0], s); if (ENABLE_FEATURE_CLEAN_UP) free(s); - } else - bb_show_usage(); + } else { + char dev[11] = "/dev/loop0"; + char c; + for (c = '0'; c <= '9'; ++c) { + char *s; + dev[9] = c; + s = query_loop(dev); + if (s) { + printf("%s: %s\n", dev, s); + if (ENABLE_FEATURE_CLEAN_UP) free(s); + } + } + } return EXIT_SUCCESS; } -- 2.25.1