aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2017-12-06 17:28:02 -0600
committerEric Sandeen <sandeen@redhat.com>2017-12-06 17:28:02 -0600
commitdafb318d937656cf2fa2bf058579d4e5b7789377 (patch)
treecbb915cc8f167c0b45ec8c5b873b4daa70823cbb
parentb449c79e779d44fe6cbfc309f2bbacb43f4f4dc0 (diff)
downloadxfsprogs-dev-dafb318d937656cf2fa2bf058579d4e5b7789377.tar.gz
mkfs: move error functions
Move all the error and helper functions like conflict() to the top of the file so we can get rid of the forward declarations. Signed-Off-By: Dave Chinner <dchinner@redhat.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
-rw-r--r--mkfs/xfs_mkfs.c324
1 files changed, 157 insertions, 167 deletions
diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
index f252983b89..cc70d110ed 100644
--- a/mkfs/xfs_mkfs.c
+++ b/mkfs/xfs_mkfs.c
@@ -21,16 +21,6 @@
#include "xfs_multidisk.h"
#include "libxcmd.h"
-/*
- * Prototypes for internal functions.
- */
-static void conflict(char opt, const char *tab[], int oldidx, int newidx);
-static void illegal(const char *value, const char *opt);
-static __attribute__((noreturn)) void usage (void);
-static __attribute__((noreturn)) void reqval(char opt, const char *tab[], int idx);
-static void respec(char opt, const char *tab[], int idx);
-static void unknown(char opt, char *s);
-static int ispow2(unsigned int i);
/*
* XXX: The configured block and sector sizes are defined as global variables so
@@ -907,6 +897,163 @@ struct mkfs_default_params {
*/
#define WHACK_SIZE (128 * 1024)
+static void __attribute__((noreturn))
+usage( void )
+{
+ fprintf(stderr, _("Usage: %s\n\
+/* blocksize */ [-b log=n|size=num]\n\
+/* metadata */ [-m crc=0|1,finobt=0|1,uuid=xxx,rmapbt=0|1,reflink=0|1]\n\
+/* data subvol */ [-d agcount=n,agsize=n,file,name=xxx,size=num,\n\
+ (sunit=value,swidth=value|su=num,sw=num|noalign),\n\
+ sectlog=n|sectsize=num\n\
+/* force overwrite */ [-f]\n\
+/* inode size */ [-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,\n\
+ projid32bit=0|1,sparse=0|1]\n\
+/* no discard */ [-K]\n\
+/* log subvol */ [-l agnum=n,internal,size=num,logdev=xxx,version=n\n\
+ sunit=value|su=num,sectlog=n|sectsize=num,\n\
+ lazy-count=0|1]\n\
+/* label */ [-L label (maximum 12 characters)]\n\
+/* naming */ [-n log=n|size=num,version=2|ci,ftype=0|1]\n\
+/* no-op info only */ [-N]\n\
+/* prototype file */ [-p fname]\n\
+/* quiet */ [-q]\n\
+/* realtime subvol */ [-r extsize=num,size=num,rtdev=xxx]\n\
+/* sectorsize */ [-s log=n|size=num]\n\
+/* version */ [-V]\n\
+ devicename\n\
+<devicename> is required unless -d name=xxx is given.\n\
+<num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),\n\
+ xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).\n\
+<value> is xxx (512 byte blocks).\n"),
+ progname);
+ exit(1);
+}
+
+static void
+conflict(
+ char opt,
+ const char *tab[],
+ int oldidx,
+ int newidx)
+{
+ fprintf(stderr, _("Cannot specify both -%c %s and -%c %s\n"),
+ opt, tab[oldidx], opt, tab[newidx]);
+ usage();
+}
+
+
+static void
+illegal(
+ const char *value,
+ const char *opt)
+{
+ fprintf(stderr, _("Illegal value %s for -%s option\n"), value, opt);
+ usage();
+}
+
+static int
+ispow2(
+ unsigned int i)
+{
+ return (i & (i - 1)) == 0;
+}
+
+static void __attribute__((noreturn))
+reqval(
+ char opt,
+ const char *tab[],
+ int idx)
+{
+ fprintf(stderr, _("-%c %s option requires a value\n"), opt, tab[idx]);
+ usage();
+}
+
+static void
+respec(
+ char opt,
+ const char *tab[],
+ int idx)
+{
+ fprintf(stderr, "-%c ", opt);
+ if (tab)
+ fprintf(stderr, "%s ", tab[idx]);
+ fprintf(stderr, _("option respecified\n"));
+ usage();
+}
+
+static void
+unknown(
+ char opt,
+ char *s)
+{
+ fprintf(stderr, _("unknown option -%c %s\n"), opt, s);
+ usage();
+}
+
+long long
+cvtnum(
+ unsigned int blksize,
+ unsigned int sectsize,
+ const char *s)
+{
+ long long i;
+ char *sp;
+ int c;
+
+ i = strtoll(s, &sp, 0);
+ if (i == 0 && sp == s)
+ return -1LL;
+ if (*sp == '\0')
+ return i;
+
+ if (sp[1] != '\0')
+ return -1LL;
+
+ if (*sp == 'b') {
+ if (!blksize) {
+ fprintf(stderr,
+_("Blocksize must be provided prior to using 'b' suffix.\n"));
+ usage();
+ } else {
+ return i * blksize;
+ }
+ }
+ if (*sp == 's') {
+ if (!sectsize) {
+ fprintf(stderr,
+_("Sectorsize must be specified prior to using 's' suffix.\n"));
+ usage();
+ } else {
+ return i * sectsize;
+ }
+ }
+
+ c = tolower(*sp);
+ switch (c) {
+ case 'e':
+ i *= 1024LL;
+ /* fall through */
+ case 'p':
+ i *= 1024LL;
+ /* fall through */
+ case 't':
+ i *= 1024LL;
+ /* fall through */
+ case 'g':
+ i *= 1024LL;
+ /* fall through */
+ case 'm':
+ i *= 1024LL;
+ /* fall through */
+ case 'k':
+ return i * 1024LL;
+ default:
+ break;
+ }
+ return -1LL;
+}
+
static void
check_device_type(
const char *name,
@@ -3959,160 +4106,3 @@ main(
return 0;
}
-
-static void
-conflict(
- char opt,
- const char *tab[],
- int oldidx,
- int newidx)
-{
- fprintf(stderr, _("Cannot specify both -%c %s and -%c %s\n"),
- opt, tab[oldidx], opt, tab[newidx]);
- usage();
-}
-
-
-static void
-illegal(
- const char *value,
- const char *opt)
-{
- fprintf(stderr, _("Illegal value %s for -%s option\n"), value, opt);
- usage();
-}
-
-static int
-ispow2(
- unsigned int i)
-{
- return (i & (i - 1)) == 0;
-}
-
-static void __attribute__((noreturn))
-reqval(
- char opt,
- const char *tab[],
- int idx)
-{
- fprintf(stderr, _("-%c %s option requires a value\n"), opt, tab[idx]);
- usage();
-}
-
-static void
-respec(
- char opt,
- const char *tab[],
- int idx)
-{
- fprintf(stderr, "-%c ", opt);
- if (tab)
- fprintf(stderr, "%s ", tab[idx]);
- fprintf(stderr, _("option respecified\n"));
- usage();
-}
-
-static void
-unknown(
- char opt,
- char *s)
-{
- fprintf(stderr, _("unknown option -%c %s\n"), opt, s);
- usage();
-}
-
-long long
-cvtnum(
- unsigned int blksize,
- unsigned int sectsize,
- const char *s)
-{
- long long i;
- char *sp;
- int c;
-
- i = strtoll(s, &sp, 0);
- if (i == 0 && sp == s)
- return -1LL;
- if (*sp == '\0')
- return i;
-
- if (sp[1] != '\0')
- return -1LL;
-
- if (*sp == 'b') {
- if (!blksize) {
- fprintf(stderr,
-_("Blocksize must be provided prior to using 'b' suffix.\n"));
- usage();
- } else {
- return i * blksize;
- }
- }
- if (*sp == 's') {
- if (!sectsize) {
- fprintf(stderr,
-_("Sectorsize must be specified prior to using 's' suffix.\n"));
- usage();
- } else {
- return i * sectsize;
- }
- }
-
- c = tolower(*sp);
- switch (c) {
- case 'e':
- i *= 1024LL;
- /* fall through */
- case 'p':
- i *= 1024LL;
- /* fall through */
- case 't':
- i *= 1024LL;
- /* fall through */
- case 'g':
- i *= 1024LL;
- /* fall through */
- case 'm':
- i *= 1024LL;
- /* fall through */
- case 'k':
- return i * 1024LL;
- default:
- break;
- }
- return -1LL;
-}
-
-static void __attribute__((noreturn))
-usage( void )
-{
- fprintf(stderr, _("Usage: %s\n\
-/* blocksize */ [-b log=n|size=num]\n\
-/* metadata */ [-m crc=0|1,finobt=0|1,uuid=xxx,rmapbt=0|1,reflink=0|1]\n\
-/* data subvol */ [-d agcount=n,agsize=n,file,name=xxx,size=num,\n\
- (sunit=value,swidth=value|su=num,sw=num|noalign),\n\
- sectlog=n|sectsize=num\n\
-/* force overwrite */ [-f]\n\
-/* inode size */ [-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,\n\
- projid32bit=0|1,sparse=0|1]\n\
-/* no discard */ [-K]\n\
-/* log subvol */ [-l agnum=n,internal,size=num,logdev=xxx,version=n\n\
- sunit=value|su=num,sectlog=n|sectsize=num,\n\
- lazy-count=0|1]\n\
-/* label */ [-L label (maximum 12 characters)]\n\
-/* naming */ [-n log=n|size=num,version=2|ci,ftype=0|1]\n\
-/* no-op info only */ [-N]\n\
-/* prototype file */ [-p fname]\n\
-/* quiet */ [-q]\n\
-/* realtime subvol */ [-r extsize=num,size=num,rtdev=xxx]\n\
-/* sectorsize */ [-s log=n|size=num]\n\
-/* version */ [-V]\n\
- devicename\n\
-<devicename> is required unless -d name=xxx is given.\n\
-<num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),\n\
- xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).\n\
-<value> is xxx (512 byte blocks).\n"),
- progname);
- exit(1);
-}