aboutsummaryrefslogtreecommitdiff
path: root/sbin/mdconfig/mdconfig.c
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2003-06-11 06:38:24 +0000
committerRobert Watson <rwatson@FreeBSD.org>2003-06-11 06:38:24 +0000
commitf79c46d3f4669e243574e046e718c1edec91fe6c (patch)
tree13871376fc71754261a513a8ba381814ddf1acd3 /sbin/mdconfig/mdconfig.c
parent7ddc2528b7328729b8af37c8fc614cb37dafcecd (diff)
downloadsrc-f79c46d3f4669e243574e046e718c1edec91fe6c.tar.gz
src-f79c46d3f4669e243574e046e718c1edec91fe6c.zip
Add "-n" argument, which causes mdconfig to simply print the unit
number X, rather than mdX, making it easier to script tests that use md devices but don't want to make assumptions about any existing md use (such as in diskless environments).
Notes
Notes: svn path=/head/; revision=116194
Diffstat (limited to 'sbin/mdconfig/mdconfig.c')
-rw-r--r--sbin/mdconfig/mdconfig.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/sbin/mdconfig/mdconfig.c b/sbin/mdconfig/mdconfig.c
index 0269fe943d4f..263a94214f6f 100644
--- a/sbin/mdconfig/mdconfig.c
+++ b/sbin/mdconfig/mdconfig.c
@@ -33,13 +33,15 @@ struct md_ioctl mdio;
enum {UNSET, ATTACH, DETACH, LIST} action = UNSET;
+int nflag;
+
void
usage()
{
fprintf(stderr, "usage:\n");
- fprintf(stderr, "\tmdconfig -a -t type [-o [no]option]... [ -f file] [-s size] [-S sectorsize] [-u unit]\n");
+ fprintf(stderr, "\tmdconfig -a -t type [-n] [-o [no]option]... [ -f file] [-s size] [-S sectorsize] [-u unit]\n");
fprintf(stderr, "\tmdconfig -d -u unit\n");
- fprintf(stderr, "\tmdconfig -l [-u unit]\n");
+ fprintf(stderr, "\tmdconfig -l [-n] [-u unit]\n");
fprintf(stderr, "\t\ttype = {malloc, preload, vnode, swap}\n");
fprintf(stderr, "\t\toption = {cluster, compress, reserve}\n");
fprintf(stderr, "\t\tsize = %%d (512 byte blocks), %%dk (kB), %%dm (MB) or %%dg (GB)\n");
@@ -54,7 +56,7 @@ main(int argc, char **argv)
int cmdline = 0;
for (;;) {
- ch = getopt(argc, argv, "ab:df:lo:s:S:t:u:x:y:");
+ ch = getopt(argc, argv, "ab:df:lno:s:S:t:u:x:y:");
if (ch == -1)
break;
switch (ch) {
@@ -78,6 +80,9 @@ main(int argc, char **argv)
mdio.md_options = MD_AUTOUNIT;
cmdline = 3;
break;
+ case 'n':
+ nflag = 1;
+ break;
case 't':
if (cmdline != 1)
usage();
@@ -202,7 +207,7 @@ main(int argc, char **argv)
if (i < 0)
err(1, "ioctl(/dev/%s)", MDCTL_NAME);
if (mdio.md_options & MD_AUTOUNIT)
- printf("%s%d\n", MD_NAME, mdio.md_unit);
+ printf("%s%d\n", nflag ? "" : MD_NAME, mdio.md_unit);
} else if (action == DETACH) {
if (mdio.md_options & MD_AUTOUNIT)
usage();
@@ -230,7 +235,8 @@ list(const int fd)
if (ioctl(fd, MDIOCLIST, &mdio) < 0)
err(1, "ioctl(/dev/%s)", MDCTL_NAME);
for (unit = 0; unit < mdio.md_pad[0] && unit < MDNPAD - 1; unit++) {
- printf("%smd%d", unit > 0 ? " " : "", mdio.md_pad[unit + 1]);
+ printf("%s%s%d", unit > 0 ? " " : "",
+ nflag ? "" : MD_NAME, mdio.md_pad[unit + 1]);
}
if (mdio.md_pad[0] - unit > 0)
printf(" ... %d more", mdio.md_pad[0] - unit);