X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=makedevs.c;h=c9802cca7748eecf01c7d127aa401c26bf939a0a;hb=79565b6c910e76c19cd5c0729659d6e96472c785;hp=691236e298694ff6c2da489792b1dc94ca861e71;hpb=cc8ed39b240180b58810784f844e253263594ac3;p=oweals%2Fbusybox.git diff --git a/makedevs.c b/makedevs.c index 691236e29..c9802cca7 100644 --- a/makedevs.c +++ b/makedevs.c @@ -1,3 +1,4 @@ +/* vi: set sw=4 ts=4: */ /* * public domain -- Dave 'Kill a Cop' Cinege * @@ -5,7 +6,7 @@ * Make ranges of device files quickly. * known bugs: can't deal with alpha ranges */ - + #include "internal.h" #include #include @@ -13,63 +14,62 @@ #include #include #include -#include - -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(struct FileInfo * i, 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]; + if (argc < 7 || *argv[1]=='-') + usage(makedevs_usage); 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); - return 2; - } - 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; } /*