diff options
Diffstat (limited to 'miscutils/makedevs.c')
-rw-r--r-- | miscutils/makedevs.c | 83 |
1 files changed, 44 insertions, 39 deletions
diff --git a/miscutils/makedevs.c b/miscutils/makedevs.c index f7fbeb2..5948bac 100644 --- a/miscutils/makedevs.c +++ b/miscutils/makedevs.c @@ -1,3 +1,4 @@ +/* vi: set sw=4 ts=4: */ /* * public domain -- Dave 'Kill a Cop' Cinege <dcinege@psychosis.com> * @@ -5,7 +6,7 @@ * Make ranges of device files quickly. * known bugs: can't deal with alpha ranges */ - + #include "internal.h" #include <stdio.h> #include <stdlib.h> @@ -15,60 +16,64 @@ #include <sys/types.h> #include <sys/stat.h> -static const char makedevs_usage[] = -"makedevs 0.01 -- Create an entire range of device files\n\n" -"\tmakedevs /dev/ttyS c 4 64 0 63 (ttyS0-ttyS63)\n" -"\tmakedevs /dev/hda b 3 0 0 8 s (hda,hda1-hda8)\n"; +static const char makedevs_usage[] = + "makedevs 0.01 -- Create an entire range of device files\n\n" + "\tmakedevs /dev/ttyS c 4 64 0 63 (ttyS0-ttyS63)\n" + + "\tmakedevs /dev/hda b 3 0 0 8 s (hda,hda1-hda8)\n"; -int -makedevs_main(int argc, char * * argv) +int makedevs_main(int argc, char **argv) { -const char *basedev = argv[1]; -const char *type = argv[2]; -int major = atoi(argv[3]); -int Sminor = atoi(argv[4]); -int S = atoi(argv[5]); -int E = atoi(argv[6]); -int sbase = argc == 8 ? 1 : 0; + const char *basedev = argv[1]; + const char *type = argv[2]; + int major = atoi(argv[3]); + int Sminor = atoi(argv[4]); + int S = atoi(argv[5]); + int E = atoi(argv[6]); + int sbase = argc == 8 ? 1 : 0; -mode_t mode = 0; -dev_t dev = 0; -char devname[255]; -char buf[255]; + mode_t mode = 0; + dev_t dev = 0; + char devname[255]; + char buf[255]; switch (type[0]) { - case 'c': - mode = S_IFCHR; break; - case 'b': - mode = S_IFBLK; break; - case 'f': - mode = S_IFIFO; break; - default: - usage( makedevs_usage); - } - mode |= 0660; - - while ( S <= E ) { - + case 'c': + mode = S_IFCHR; + break; + case 'b': + mode = S_IFBLK; + break; + case 'f': + mode = S_IFIFO; + break; + default: + usage(makedevs_usage); + } + mode |= 0660; + + while (S <= E) { + if (type[0] != 'f') dev = (major << 8) | Sminor; strcpy(devname, basedev); - + if (sbase == 0) { - sprintf(buf, "%d", S); + sprintf(buf, "%d", S); strcat(devname, buf); } else { sbase = 0; } - - if (mknod (devname, mode, dev)) - printf("Failed to create: %s\n", devname); - - S++; Sminor++; + + if (mknod(devname, mode, dev)) + printf("Failed to create: %s\n", devname); + + S++; + Sminor++; } -return 0; + return 0; } /* |