- case 'a':
- if (argc < 1)
- fatal("-a: missing max contiguous blocks\n");
- argc--, argv++;
- maxcontig = atoi(*argv);
- if (maxcontig <= 0)
- fatal("%s: bad max contiguous blocks\n",
- *argv);
- goto next;
-
- case 'b':
- if (argc < 1)
- fatal("-b: missing block size");
- argc--, argv++;
- bsize = atoi(*argv);
- if (bsize < MINBSIZE)
- fatal("%s: bad block size", *argv);
- goto next;
-
- case 'c':
- if (argc < 1)
- fatal("-c: missing cylinders/group");
- argc--, argv++;
- cpg = atoi(*argv);
- if (cpg <= 0)
- fatal("%s: bad cylinders/group", *argv);
- cpgflg++;
- goto next;
-
- case 'd':
- if (argc < 1)
- fatal("-d: missing rotational delay\n");
- argc--, argv++;
- rotdelay = atoi(*argv);
- if (rotdelay < 0)
- fatal("%s: bad rotational delay\n",
- *argv);
- goto next;
-
- case 'e':
- if (argc < 1)
- fatal("-e: missing blocks pre file in a cyl group\n");
- argc--, argv++;
- maxbpg = atoi(*argv);
- if (maxbpg <= 0)
- fatal("%s: bad blocks per file in a cyl group\n",
- *argv);
- goto next;
-
- case 'f':
- if (argc < 1)
- fatal("-f: missing frag size");
- argc--, argv++;
- fsize = atoi(*argv);
- if (fsize <= 0)
- fatal("%s: bad frag size", *argv);
- goto next;
-
- case 'i':
- if (argc < 1)
- fatal("-i: missing bytes per inode\n");
- argc--, argv++;
- density = atoi(*argv);
- if (density <= 0)
- fatal("%s: bad bytes per inode\n",
- *argv);
- goto next;
-
- case 'k':
- if (argc < 1)
- fatal("-k: track skew");
- argc--, argv++;
- trackskew = atoi(*argv);
- if (trackskew < 0)
- fatal("%s: bad track skew", *argv);
- goto next;
-
- case 'l':
- if (argc < 1)
- fatal("-l: interleave");
- argc--, argv++;
- interleave = atoi(*argv);
- if (interleave <= 0)
- fatal("%s: bad interleave", *argv);
- goto next;
-
- case 'm':
- if (argc < 1)
- fatal("-m: missing free space %%\n");
- argc--, argv++;
- minfree = atoi(*argv);
- if (minfree < 0 || minfree > 99)
- fatal("%s: bad free space %%\n",
- *argv);
- goto next;
-
- case 'n':
- if (argc < 1)
- fatal("-n: missing rotational layout count\n");
- argc--, argv++;
- nrpos = atoi(*argv);
- if (nrpos <= 0)
- fatal("%s: bad rotational layout count\n",
- *argv);
- goto next;
-
- case 'o':
- if (argc < 1)
- fatal("-o: missing optimization preference");
- argc--, argv++;
- if (strcmp(*argv, "space") == 0)
- opt = FS_OPTSPACE;
- else if (strcmp(*argv, "time") == 0)
- opt = FS_OPTTIME;
- else
- fatal("%s: bad optimization preference %s",
- *argv,
- "(options are `space' or `time')");
- goto next;
-
- case 'p':
- if (argc < 1)
- fatal("-p: spare sectors per track");
- argc--, argv++;
- trackspares = atoi(*argv);
- if (trackspares < 0)
- fatal("%s: bad spare sectors per track", *argv);
- goto next;
-
- case 'r':
- if (argc < 1)
- fatal("-r: missing revs/minute\n");
- argc--, argv++;
- rpm = atoi(*argv);
- if (rpm <= 0)
- fatal("%s: bad revs/minute\n", *argv);
- goto next;
-
- case 's':
- if (argc < 1)
- fatal("-s: missing file system size");
- argc--, argv++;
- fssize = atoi(*argv);
- if (fssize <= 0)
- fatal("%s: bad file system size",
- *argv);
- goto next;
-
- case 't':
- if (argc < 1)
- fatal("-t: missing track total");
- argc--, argv++;
- ntracks = atoi(*argv);
- if (ntracks <= 0)
- fatal("%s: bad total tracks", *argv);
- goto next;
-
- case 'u':
- if (argc < 1)
- fatal("-u: missing sectors/track");
- argc--, argv++;
- nsectors = atoi(*argv);
- if (nsectors <= 0)
- fatal("%s: bad sectors/track", *argv);
- goto next;
-
- case 'x':
- if (argc < 1)
- fatal("-x: spare sectors per cylinder");
- argc--, argv++;
- cylspares = atoi(*argv);
- if (cylspares < 0)
- fatal("%s: bad spare sectors per cylinder", *argv);
- goto next;
-
- default:
- fatal("-%c: unknown flag", *cp);
- }
-next:
- argc--, argv++;
- }
- if (argc < 1) {
- if (mfs)
- fprintf(stderr,
- "usage: mfs [ fsoptions ] special-device %s\n",
- "mount-point");
- else
-#ifdef COMPAT
- fprintf(stderr, "usage: %s\n",
- "newfs [ fsoptions ] special-device [device-type]");
-#else
- fprintf(stderr,
- "usage: newfs [ fsoptions ] special-device\n");
-#endif
- fprintf(stderr, "where fsoptions are:\n");
- fprintf(stderr, "\t-N do not create file system, %s\n",
- "just print out parameters");
-#ifdef COMPAT
- fprintf(stderr, "\t-T disktype\n");
-#endif
- fprintf(stderr, "\t-b block size\n");
- fprintf(stderr, "\t-f frag size\n");
- fprintf(stderr, "\t-m minimum free space %%\n");
- fprintf(stderr, "\t-o optimization preference %s\n",
- "(`space' or `time')");
- fprintf(stderr, "\t-a maximum contiguous blocks\n");
- fprintf(stderr, "\t-d rotational delay between %s\n",
- "contiguous blocks");
- fprintf(stderr, "\t-e maximum blocks per file in a %s\n",
- "cylinder group");
- fprintf(stderr, "\t-i number of bytes per inode\n");
- fprintf(stderr, "\t-c cylinders/group\n");
- fprintf(stderr, "\t-n number of distinguished %s\n",
- "rotational positions");
- fprintf(stderr, "\t-s file system size (sectors)\n");
- fprintf(stderr, "\t-r revolutions/minute\n");
- fprintf(stderr, "\t-S sector size\n");
- fprintf(stderr, "\t-u sectors/track\n");
- fprintf(stderr, "\t-t tracks/cylinder\n");
- fprintf(stderr, "\t-p spare sectors per track\n");
- fprintf(stderr, "\t-x spare sectors per cylinder\n");
- fprintf(stderr, "\t-l hardware sector interleave\n");
- fprintf(stderr, "\t-k sector 0 skew, per track\n");
- exit(1);
- }