Move start_stop_daemon to debianutils.
[oweals/busybox.git] / include / usage.h
index 077306bdf7733cec885a794f5480cf7cf2f50615..5b7db4150fe28fec3ed3ffec20846bda12c84052 100644 (file)
 #define adduser_full_usage \
        "Adds a user to the system" \
        "Options:\n" \
-           "\t-h\t\thome directory\n" \
-           "\t-s\t\tshell\n" \
-           "\t-g\t\tGECOS string\n"
+           "\t-h DIR\t\tAssign home directory DIR\n" \
+           "\t-g GECOS\t\tAssign gecos field GECOS\n" \
+           "\t-s SHELL\t\tAssign login shell SHELL\n" \
+           "\t-G\t\tAdd the user to existing group GROUP\n" \
+           "\t-S\t\tcreate a system user (ignored)\n" \
+           "\t-D\t\tDo not assign a password (logins still possible via ssh)\n" \
+           "\t-H\t\tDo not create the home directory\n"
 
 #define adjtimex_trivial_usage \
        "[-q] [-o offset] [-f frequency] [-p timeconstant] [-t tick]"
        "\t-y\tDisplay the entire year."
 
 #define cat_trivial_usage \
-       "[FILE]..."
+       "[-u] [FILE]..."
 #define cat_full_usage \
-       "Concatenates FILE(s) and prints them to stdout."
+       "Concatenates FILE(s) and prints them to stdout.\n\n" \
+       "Options:\n" \
+       "\t-u\tignored since unbuffered i/o is always used"
 #define cat_example_usage \
        "$ cat /proc/uptime\n" \
        "110716.72 17.67"
        "Clear screen."
 
 #define cmp_trivial_usage \
-       "FILE1 [FILE2]"
+       "[OPTION]... FILE1 [FILE2]"
 #define cmp_full_usage \
-       "\t-s\tquiet mode - do not print\n" \
-       "Compare files."
+       "Compare files.\n\n" \
+       "Options:\n" \
+       "\t-l\tWrite the byte numbers (decimal) and values (octal)\n" \
+       "\t\t  for all differing bytes.\n" \
+       "\t-s\tquiet mode - do not print"
 
 #define cp_trivial_usage \
        "[OPTION]... SOURCE DEST"
 #define dpkg_deb_example_usage \
        "$ dpkg-deb -X ./busybox_0.48-1_i386.deb /tmp\n"
 
+#ifdef CONFIG_FEATURE_DU_DEFALT_BLOCKSIZE_1K
+#define USAGE_DU_DEFALT_BLOCKSIZE_1k(a) a
+#define USAGE_NOT_DU_DEFALT_BLOCKSIZE_1k(a)
+#else
+#define USAGE_DU_DEFALT_BLOCKSIZE_1k(a)
+#define USAGE_NOT_DU_DEFALT_BLOCKSIZE_1k(a) a
+#endif
+
 #define du_trivial_usage \
-       "[-lsx" USAGE_HUMAN_READABLE("hm") USAGE_NOT_HUMAN_READABLE("") "k] [FILE]..."
+       "[-aHLdclsx" USAGE_HUMAN_READABLE("hm") "k] [FILE]..."
 #define du_full_usage \
        "Summarizes disk space used for each FILE and/or directory.\n" \
-       "Disk space is printed in units of 1024 bytes.\n\n" \
-       "Options:\n" \
+       "Disk space is printed in units of " \
+       USAGE_DU_DEFALT_BLOCKSIZE_1k("1024") USAGE_NOT_DU_DEFALT_BLOCKSIZE_1k("512") \
+       " bytes.\n\n" \
+       "Options:\n" \
+       "\t-a\tshow sizes of files in addition to directories\n" \
+       "\t-H\tfollow symbolic links that are FILE command line args\n" \
+       "\t-L\tfollow all symbolic links encountered\n" \
+       "\t-d N\tlimit output to directories (and files with -a) of depth < N\n" \
+       "\t-c\toutput a grand total\n" \
        "\t-l\tcount sizes many times if hard linked\n" \
-       "\t-s\tdisplay only a total for each argument" \
-       USAGE_HUMAN_READABLE( \
-       "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
-       "\t-m\tprint sizes in megabytes\n" \
+       "\t-s\tdisplay only a total for each argument\n" \
        "\t-x\tskip directories on different filesystems\n" \
-       "\t-k\tprint sizes in kilobytes(default)") USAGE_NOT_HUMAN_READABLE( \
-       "\n\t-k\tprint sizes in kilobytes(compatibility)")
+       USAGE_HUMAN_READABLE( \
+       "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
+       "\t-m\tprint sizes in megabytes\n" ) \
+       "\t-k\tprint sizes in kilobytes" USAGE_DU_DEFALT_BLOCKSIZE_1k("(default)")
 #define du_example_usage \
        "$ du\n" \
        "16      ./CVS\n" \
        "8|125||l4|||0|0|0|955637629|998367|0\n" \
        "6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0\n" \
        "6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0\n" \
-       "7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0\n"
+       "7|336|pts/0|vt00|andersen|:0.0|0|0|0|955637763|0|0\n"
+
+#ifdef CONFIG_FEATURE_FANCY_ECHO
+  #define USAGE_FANCY_ECHO(a) a
+#else
+  #define USAGE_FANCY_ECHO(a) 
+#endif
 
 #define echo_trivial_usage \
-       "[-neE] [ARG ...]"
+       USAGE_FANCY_ECHO("[-neE] ") "[ARG ...]"
 #define echo_full_usage \
        "Prints the specified ARGs to stdout\n\n" \
-       "Options:\n" \
+       USAGE_FANCY_ECHO("Options:\n" \
        "\t-n\tsuppress trailing newline\n" \
        "\t-e\tinterpret backslash-escaped characters (i.e., \\t=tab)\n" \
-       "\t-E\tdisable interpretation of backslash-escaped characters"
+       "\t-E\tdisable interpretation of backslash-escaped characters")
 #define echo_example_usage \
        "$ echo "Erik is cool"\n" \
        "Erik is cool\n" \
-       "$  echo -e "Erik\\nis\\ncool"\n" \
+       USAGE_FANCY_ECHO("$  echo -e "Erik\\nis\\ncool"\n" \
        "Erik\n" \
        "is\n" \
        "cool\n" \
        "$ echo "Erik\\nis\\ncool"\n" \
-       "Erik\\nis\\ncool\n"
+       "Erik\\nis\\ncool\n")
 
 #define env_trivial_usage \
        "[-iu] [-] [name=value]... [command]"
 #define fdflush_full_usage \
        "Forces floppy disk drive to detect disk change"
 
+#define fdformat_trivial_usage \
+       "[-n] DEVICE"
+#define fdformat_full_usage \
+       "Low-level formats a floppy disk\n\n" \
+       "Options:\n" \
+       "\t-n\tDon't verify after format"
+
 #define fdisk_trivial_usage \
        "[-l] [-v] [-b SSZ] [-u] DISK"
 #define fdisk_full_usage \
        "$ find / -name /etc/passwd\n" \
        "/etc/passwd\n"
 
+#define fold_trivial_usage \
+       "[bsw] [FILE]"
+#define fold_full_usage \
+       "Wrap input lines in each FILE (standard input by default), writing to\n" \
+       "standard output.\n\n" \
+       "Options:\n" \
+       "\t-b\tcount bytes rather than columns\n" \
+       "\t-s\tbreak at spaces\n" \
+       "\t-w\tuse WIDTH columns instead of 80\n"
+
 #define free_trivial_usage \
        ""
 #define free_full_usage \
        "\t-L\t\tLocal line, so do not do carrier detect.\n" \
        "\t-m\t\tGet baud rate from modem's CONNECT status message.\n" \
        "\t-w\t\tWait for a CR or LF before sending /etc/issue.\n" \
+       "\t-n\t\tDo not prompt the user for a login name.\n" \
+       "\t-f issue_file\tDisplay issue_file instead of /etc/issue.\n" \
        "\t-l login_app\tInvoke login_app instead of /bin/login.\n" \
        "\t-t timeout\tTerminate after timeout if no username is read.\n" \
        "\t-I initstring\tSets the init string to send before anything else.\n" \
 #define halt_full_usage \
        "Halt the system."
 
+#ifdef CONFIG_FEATURE_HDPARM_GET_IDENTITY
+#define USAGE_HDPARM_IDENT(a) a
+#else
+#define USAGE_HDPARM_IDENT(a)
+#endif
+
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF
+#define USAGE_SCAN_HWIF(a) a
+#else
+#define USAGE_SCAN_HWIF(a)
+#endif
+
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
+#define USAGE_UNREGISTER_HWIF(a) a
+#else
+#define USAGE_UNREGISTER_HWIF(a)
+#endif
+
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET
+#define USAGE_DRIVE_RESET(a) a
+#else
+#define USAGE_DRIVE_RESET(a)
+#endif
+
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
+#define USAGE_TRISTATE_HWIF(a) a
+#else
+#define USAGE_TRISTATE_HWIF(a)
+#endif
+
+#define hdparm_trivial_usage \
+       "[options] [device] .."
+#define hdparm_full_usage \
+       "Options:" \
+       " -a   get/set fs readahead\n" \
+       " -A   set drive read-lookahead flag (0/1)\n" \
+       " -b   get/set bus state (0 == off, 1 == on, 2 == tristate)\n" \
+       " -B   set Advanced Power Management setting (1-255)\n" \
+       " -c   get/set IDE 32-bit IO setting\n" \
+       " -C   check IDE power mode status\n" \
+       " -d   get/set using_dma flag\n" \
+       " -D   enable/disable drive defect-mgmt\n" \
+       " -f   flush buffer cache for device on exit\n" \
+       " -g   display drive geometry\n" \
+       " -h   display terse usage information\n" \
+       " -i   display drive identification\n" \
+       USAGE_HDPARM_IDENT(" -I   detailed/current information directly from drive\n") \
+       USAGE_HDPARM_IDENT(" -Istdin  similar to -I, but wants /proc/ide/" "*" "/hd?/identify as input\n") \
+       " -k   get/set keep_settings_over_reset flag (0/1)\n" \
+       " -K   set drive keep_features_over_reset flag (0/1)\n" \
+       " -L   set drive doorlock (0/1) (removable harddisks only)\n" \
+       " -m   get/set multiple sector count\n" \
+       " -n   get/set ignore-write-errors flag (0/1)\n" \
+       " -p   set PIO mode on IDE interface chipset (0,1,2,3,4,...)\n" \
+       " -P   set drive prefetch count\n" \
+       " -q   change next setting quietly\n" \
+       " -Q   get/set DMA tagged-queuing depth (if supported)\n" \
+       " -r   get/set readonly flag (DANGEROUS to set)\n" \
+       USAGE_SCAN_HWIF(" -R   register an IDE interface (DANGEROUS)\n") \
+       " -S   set standby (spindown) timeout\n" \
+       " -t   perform device read timings\n" \
+       " -T   perform cache read timings\n" \
+       " -u   get/set unmaskirq flag (0/1)\n" \
+       USAGE_UNREGISTER_HWIF(" -U   un-register an IDE interface (DANGEROUS)\n") \
+       " -v   defaults; same as -mcudkrag for IDE drives\n" \
+       " -V   display program version and exit immediately\n" \
+       USAGE_DRIVE_RESET(" -w   perform device reset (DANGEROUS)\n") \
+       " -W   set drive write-caching flag (0/1) (DANGEROUS)\n" \
+       USAGE_TRISTATE_HWIF(" -x   tristate device for hotswap (0/1) (DANGEROUS)\n") \
+       " -X   set IDE xfer mode (DANGEROUS)\n" \
+       " -y   put IDE drive in standby mode\n" \
+       " -Y   put IDE drive to sleep\n" \
+       " -Z   disable Seagate auto-powersaving mode\n" \
+       " -z   re-read partition table\n"
+
+#ifdef CONFIG_FEATURE_FANCY_HEAD
+#define USAGE_FANCY_HEAD(a) a
+#else
+#define USAGE_FANCY_HEAD(a)
+#endif
+
 #define head_trivial_usage \
-       "[OPTION] [FILE]..."
+       "[OPTION]... [FILE]..."
 #define head_full_usage \
        "Print first 10 lines of each FILE to standard output.\n" \
        "With more than one FILE, precede each with a header giving the\n" \
        "file name. With no FILE, or when FILE is -, read standard input.\n\n" \
        "Options:\n" \
-       "\t-n NUM\t\tPrint first NUM lines instead of first 10"
+       "\t-n NUM\t\tPrint first NUM lines instead of first 10" \
+       USAGE_FANCY_HEAD( \
+       "\n\t-c NUM\t\toutput the first NUM bytes\n" \
+       "\t-q\t\tnever output headers giving file names\n" \
+       "\t-v\t\talways output headers giving file names" )
 #define head_example_usage \
        "$ head -n 2 /etc/passwd\n" \
        "root:x:0:0:root:/root:/bin/bash\n" \
        "\t-u\tthe hardware clock is kept in coordinated universal time\n" \
        "\t-l\tthe hardware clock is kept in local time"
 
+#ifdef CONFIG_SELINUX
+#define USAGE_SELINUX(a, b) a
+#else
+#define USAGE_SELINUX(a, b) b
+#endif
+
 #define id_trivial_usage \
        "[OPTIONS]... [USERNAME]"
 #define id_full_usage \
        "Options:\n" \
        "\t-g\tprints only the group ID\n" \
        "\t-u\tprints only the user ID\n" \
+       USAGE_SELINUX("\t-c\tprints only the security context\n", "") \
        "\t-n\tprint a name instead of a number (with for -ug)\n" \
        "\t-r\tprints the real user ID instead of the effective ID (with -ug)"
 #define id_example_usage \
        "\t-m\tdon't run any mappings\n" \
        "\t-f\tforce de/configuration\n"
        
+#define inetd_trivial_usage \
+       "[-q len] [conf]"
+#define inetd_full_usage \
+       "Usage: [-q len] [conf]\n\n" \
+       "Option:\n" \
+       "\t-q\tSets the size of the socket listen queue to\n" \
+       "the specified value. Default is 128."
+
 #define init_trivial_usage \
        ""
 #define init_full_usage \
   #define USAGE_AUTOWIDTH(a)
 #endif
 #define ls_trivial_usage \
-       "[-1Aa" USAGE_LS_TIMESTAMPS("c") "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h") USAGE_NOT_HUMAN_READABLE("") "k] [filenames...]"
+       "[-1Aa" USAGE_LS_TIMESTAMPS("c") "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h") USAGE_NOT_HUMAN_READABLE("") "k" USAGE_SELINUX("K", "") "] [filenames...]"
 #define ls_full_usage \
        "List directory contents\n\n" \
        "Options:\n" \
        USAGE_LS_SORTFILES("\t-X\tsort the listing by extension\n") \
        USAGE_HUMAN_READABLE( \
        "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
-       "\t-k\tprint sizes in kilobytes(default)") USAGE_NOT_HUMAN_READABLE( \
-       "\t-k\tprint sizes in kilobytes(compatibility)") 
+       USAGE_SELINUX("\t-k\tprint security context\n\t-K\tprint security context in long format\n", ""))
 
 #define lsmod_trivial_usage \
        ""
        "\ty\tAllow write access to your terminal.\n" \
        "\tn\tDisallow write access to your terminal.\n"
 
+#define minit_trivial_usage \
+       "[-spPrRC]"
+#define minit_full_usage \
+       "[-spPrRC]"
+
 #define mkdir_trivial_usage \
        "[OPTION] DIRECTORY..."
 #define mkdir_full_usage \
        "$ mount /dev/fd0 /mnt -t msdos -o ro\n" \
        "$ mount /tmp/diskimage /opt -t ext2 -o loop\n" 
 
+#define msvc_trivial_usage \
+       "-[udorspchaitkx] service"
+#define msvc_full_usage \
+       "[option] service\n" \
+       "Where option is one of\n" \
+       "\t-u\tUp.  If the service is not running, start it.  If the service stops, restart it.\n" \
+       "\t-d\tDown.  If the service is running, stop it, do not restart it.\n" \
+       "\t-o\tOnce.  If the service is not running, start it.  Do not restart it if it stops.\n" \
+       "\t-r\tTell supervise that the service is normally running; this affects status messages.\n" \
+       "\t-s\tTell supervise that the service is normally stopped; this affects status messages.\n" \
+       "\t-p\tPause.  Send the service a STOP signal.\n" \
+       "\t-c\tContinue.  Send the service a CONT signal.\n" \
+       "\t-h\tHangup.  Send the service a HUP signal.\n" \
+       "\t-a\tAlarm.  Send the service an ALRM signal.\n" \
+       "\t-i\tInterrupt.  Send the service an INT signal.\n" \
+       "\t-t\tTerminate.  Send the service a TERM signal.\n" \
+       "\t-k\tKill.  Send the service a KILL signal.\n" \
+       "\t-x\tExit.  supervise will quit as soon as the service is down.\n"
+
 #define mt_trivial_usage \
        "[-f device] opcode value"
 #define mt_full_usage \
        "\t-l\tLocks (disables) the specified user account.\n" \
        "\t-u\tUnlocks (re-enables) the specified user account."
 
+#define patch_trivial_usage \
+       "[-p<num>]"
+#define patch_full_usage \
+       "[-p<num>]"
+#define patch_example_usage \
+       "$ patch -p1 <example.diff"
+
+#define pidfilehack_trivial_usage \
+       "[daemon.pid] [daemon]"
+#define pidfilehack_full_usage \
+       "service /var/run/daemon.pid /usr/sbin/daemon args...\n"
+
 #define pidof_trivial_usage \
        "process-name [process-name ...]"
 #define pidof_full_usage \
        ""
 #define ps_full_usage \
        "Report process status\n" \
-       "\nThis version of ps accepts no options."
+       USAGE_SELINUX("\nOptions:\n\t-c\tshow SE Linux context", "\nThis version of ps accepts no options.")
 #define ps_example_usage \
        "$ ps\n" \
        "  PID  Uid      Gid State Command\n" \
        "/root\n"
 
 #define rdate_trivial_usage \
-       "[OPTION] HOST"
+       "[-sp] HOST"
 #define rdate_full_usage \
        "Get and possibly set the system date and time from a remote HOST.\n\n" \
        "Options:\n" \
        "Remove (unlink) the FILE(s).  You may use '--' to\n" \
        "indicate that all following arguments are non-options.\n\n" \
        "Options:\n" \
-       "\t-i\t\talways prompt before removing each destination" \
+       "\t-i\t\talways prompt before removing each destination\n" \
        "\t-f\t\tremove existing destinations, never prompt\n" \
        "\t-r or -R\tremove the contents of directories recursively"
 #define rm_example_usage \
        "-i -q[ildc]p package.rpm"
 #define rpm_full_usage \
        "Manipulates RPM packages" \
-       "Options:" \
-       "\t-i Install package" \
-       "\t-q Query package" \
-       "\t\t-p Query uninstalled package" \
-       "\t\t-i Show information" \
-       "\t\t-l List contents" \
-       "\t\t-d List documents" \
-       "\t\t-c List config files"
+       "\n\nOptions:" \
+       "\n\t-i Install package" \
+       "\n\t-q Query package" \
+       "\n\t-p Query uninstalled package" \
+       "\n\t-i Show information" \
+       "\n\t-l List contents" \
+       "\n\t-d List documents" \
+       "\n\t-c List config files"
 
 #define rpm2cpio_trivial_usage \
        "package.rpm"
 "use ash or bash.  If you just need a very simple and extremely small shell,\n" \
 "this will do the job."
 
+#define sha1sum_trivial_usage \
+       "[OPTION] [FILE]"
+#define sha1sum_full_usage \
+       "[OPTION] [FILE]"
+
+#ifdef CONFIG_FEATURE_FANCY_SLEEP
+  #define USAGE_FANCY_SLEEP(a) a
+  #define USAGE_NOT_FANCY_SLEEP(a)
+#else
+  #define USAGE_FANCY_SLEEP(a) 
+  #define USAGE_NOT_FANCY_SLEEP(a) a
+#endif
+
 #define sleep_trivial_usage \
-       "N"
+       USAGE_FANCY_SLEEP("[") "N" USAGE_FANCY_SLEEP("]...") 
 #define sleep_full_usage \
-       "Pause for N seconds."
+       USAGE_NOT_FANCY_SLEEP("Pause for N seconds.") \
+       USAGE_FANCY_SLEEP( \
+"Pause for a time equal to the total of the args given, where each arg can\n" \
+"have an optional suffix of (s)econds, (m)inutes, (h)ours, or (d)ays.")
 #define sleep_example_usage \
        "$ sleep 2\n" \
-       "[2 second delay results]\n"
-
+       "[2 second delay results]\n" \
+       USAGE_FANCY_SLEEP("$ sleep 1d 3h 22m 8s\n" \
+       "[98528 second delay results]\n")
 
 #ifdef CONFIG_FEATURE_SORT_UNIQUE
   #define USAGE_SORT_UNIQUE(a) a
 #define tee_full_usage \
        "Copy standard input to each FILE, and also to standard output.\n\n" \
        "Options:\n" \
-       "\t-a\tappend to the given FILEs, do not overwrite"
+       "\t-a\tappend to the given FILEs, do not overwrite\n" \
+       "\t-i\tignore interrupt signals (SIGINT)"
 #define tee_example_usage \
        "$ echo "Hello" | tee /tmp/foo\n" \
        "$ cat /tmp/foo\n" \
        "Telnet is used to establish interactive communication with another\n"\
        "computer over a network using the TELNET protocol."
 
+#ifdef CONFIG_FEATURE_TELNETD_INETD
+#define telnetd_trivial_usage \
+       "(inetd mode) [OPTION]"
+#define telnetd_full_usage \
+       "Telnetd uses incoming TELNET connections via inetd.\n"\
+       "Options:\n" \
+       "\t-l LOGIN\texec LOGIN on connect (default /bin/sh)"
+#else
 #define telnetd_trivial_usage \
        "[OPTION]"
 #define telnetd_full_usage \
        "Options:\n" \
        "\t-p PORT\tlisten for connections on PORT (default 23)\n"\
        "\t-l LOGIN\texec LOGIN on connect (default /bin/sh)"
+#endif
 
 #define test_trivial_usage \
        "EXPRESSION\n  or   [ EXPRESSION ]"
        "Options:\n" \
        "\t-c\tprefix lines by the number of occurrences\n" \
        "\t-d\tonly print duplicate lines\n" \
-       "\t-u\tonly print unique lines"
+       "\t-u\tonly print unique lines\n" \
+       "\t-f N\tskip the first N fields\n" \
+       "\t-s N\tskip the first N chars (after any skipped fields)"
 #define uniq_example_usage \
        "$ echo -e \"a\\na\\nb\\nc\\nc\\na\" | sort | uniq\n" \
        "a\n" \
        "\t-x\texclude these files\n" \
        "\t-d\textract files into this directory"
 
-#define update_trivial_usage \
-       "[options]"
-#define update_full_usage \
-       "Periodically flushes filesystem buffers.\n\n" \
-       "Options:\n" \
-       "\t-S\tforce use of sync(2) instead of flushing\n" \
-       "\t-s SECS\tcall sync this often (default 30)\n" \
-       "\t-f SECS\tflush some buffers this often (default 5)"
-
 #define uptime_trivial_usage \
        ""
 #define uptime_full_usage \
        "$ uudecode busybox busybox > busybox.uu\n" \
        "$\n"
 
+#define vconfig_trivial_usage \
+       "COMMAND [OPTIONS] ..."
+
+#define vconfig_full_usage \
+"Usage: add             [interface-name] [vlan_id] \n" \
+"       rem             [vlan-name] \n" \
+"       set_flag        [interface-name] [flag-num]       [0 | 1] \n" \
+"       set_egress_map  [vlan-name]      [skb_priority]   [vlan_qos] \n" \
+"       set_ingress_map [vlan-name]      [skb_priority]   [vlan_qos] \n" \
+"       set_name_type   [name-type] \n" 
+
 #define vi_trivial_usage \
        "[OPTION] [FILE]..."
 #define vi_full_usage \
        "Mon Dec 17 10:31:44 GMT 2000" 
 
 #define watchdog_trivial_usage \
-       "DEV"
+       "[-t <seconds>] DEV"
 #define watchdog_full_usage \
-       "Periodically write to watchdog device DEV"
+       "Periodically write to watchdog device DEV.\n" \
+       "Options:\n" \
+       "\t-t\tTimer period in seconds - default is 30."
 
 #define wc_trivial_usage \
        "[OPTION]... [FILE]..."