Regenerate generated files after upstream toybox sync.

Change-Id: I712c4e8391d333536887dcea162e640b2b73948e
diff --git a/.config b/.config
index 90a62c1..fb117b1 100644
--- a/.config
+++ b/.config
@@ -1,15 +1,15 @@
 #
-# Automatically generated make config: don't edit
+# Manually-generated.
 # ToyBox version: KCONFIG_VERSION
-# Sun May  3 17:30:15 2015
 #
 CONFIG_TOYBOX_CONTAINER=y
-CONFIG_TOYBOX_FIFREEZE=y
-CONFIG_TOYBOX_ICONV=y
 CONFIG_TOYBOX_FALLOCATE=y
-CONFIG_TOYBOX_UTMPX=y
-CONFIG_TOYBOX_SHADOW=y
+CONFIG_TOYBOX_FIFREEZE=y
+CONFIG_TOYBOX_FORK=y
+CONFIG_TOYBOX_ICONV=y
 CONFIG_TOYBOX_ON_ANDROID=y
+CONFIG_TOYBOX_SHADOW=y
+CONFIG_TOYBOX_UTMPX=y
 
 #
 # Posix commands
@@ -27,6 +27,7 @@
 CONFIG_COMM=y
 CONFIG_CP=y
 CONFIG_CP_MORE=y
+CONFIG_CP_PRESERVE=y
 CONFIG_MV=y
 CONFIG_MV_MORE=y
 CONFIG_INSTALL=y
@@ -47,6 +48,8 @@
 CONFIG_HEAD=y
 CONFIG_ID=y
 CONFIG_ID_Z=y
+CONFIG_IONICE=y
+CONFIG_IORENICE=y
 CONFIG_GROUPS=y
 CONFIG_LOGNAME=y
 CONFIG_WHOAMI=y
@@ -60,9 +63,13 @@
 CONFIG_MKDIR=y
 CONFIG_MKDIR_Z=y
 CONFIG_MKFIFO=y
+CONFIG_MKFIFO_Z=y
+CONFIG_MKNOD=y
+CONFIG_MKNOD_Z=y
 CONFIG_NICE=y
 CONFIG_NL=y
 CONFIG_NOHUP=y
+# CONFIG_NPROC is not set
 CONFIG_OD=y
 CONFIG_PASTE=y
 CONFIG_PATCH=y
@@ -81,6 +88,7 @@
 CONFIG_STRINGS=y
 CONFIG_TAIL=y
 CONFIG_TAIL_SEEK=y
+CONFIG_TASKSET=y
 CONFIG_TEE=y
 CONFIG_TIME=y
 CONFIG_TOUCH=y
@@ -249,6 +257,7 @@
 CONFIG_VMSTAT=y
 # CONFIG_W is not set
 CONFIG_WHICH=y
+CONFIG_XXD=y
 CONFIG_YES=y
 
 #
diff --git a/Android.mk b/Android.mk
index 068eb8c..02865da 100644
--- a/Android.mk
+++ b/Android.mk
@@ -93,6 +93,7 @@
     toys/other/ifconfig.c \
     toys/other/inotifyd.c \
     toys/other/insmod.c \
+    toys/other/ionice.c \
     toys/other/losetup.c \
     toys/other/lsattr.c \
     toys/other/lsmod.c \
@@ -127,6 +128,7 @@
     toys/other/vconfig.c \
     toys/other/vmstat.c \
     toys/other/which.c \
+    toys/other/xxd.c \
     toys/other/yes.c \
     toys/pending/dd.c \
     toys/pending/expr.c \
diff --git a/generated/config.h b/generated/config.h
index 9217676..4c698f7 100644
--- a/generated/config.h
+++ b/generated/config.h
@@ -1,17 +1,19 @@
 #define CFG_TOYBOX_CONTAINER 1
 #define USE_TOYBOX_CONTAINER(...) __VA_ARGS__
-#define CFG_TOYBOX_FIFREEZE 1
-#define USE_TOYBOX_FIFREEZE(...) __VA_ARGS__
-#define CFG_TOYBOX_ICONV 1
-#define USE_TOYBOX_ICONV(...) __VA_ARGS__
 #define CFG_TOYBOX_FALLOCATE 1
 #define USE_TOYBOX_FALLOCATE(...) __VA_ARGS__
-#define CFG_TOYBOX_UTMPX 1
-#define USE_TOYBOX_UTMPX(...) __VA_ARGS__
-#define CFG_TOYBOX_SHADOW 1
-#define USE_TOYBOX_SHADOW(...) __VA_ARGS__
+#define CFG_TOYBOX_FIFREEZE 1
+#define USE_TOYBOX_FIFREEZE(...) __VA_ARGS__
+#define CFG_TOYBOX_FORK 1
+#define USE_TOYBOX_FORK(...) __VA_ARGS__
+#define CFG_TOYBOX_ICONV 1
+#define USE_TOYBOX_ICONV(...) __VA_ARGS__
 #define CFG_TOYBOX_ON_ANDROID 1
 #define USE_TOYBOX_ON_ANDROID(...) __VA_ARGS__
+#define CFG_TOYBOX_SHADOW 1
+#define USE_TOYBOX_SHADOW(...) __VA_ARGS__
+#define CFG_TOYBOX_UTMPX 1
+#define USE_TOYBOX_UTMPX(...) __VA_ARGS__
 #define CFG_BASENAME 1
 #define USE_BASENAME(...) __VA_ARGS__
 #define CFG_CAL 1
@@ -38,6 +40,8 @@
 #define USE_CP(...) __VA_ARGS__
 #define CFG_CP_MORE 1
 #define USE_CP_MORE(...) __VA_ARGS__
+#define CFG_CP_PRESERVE 1
+#define USE_CP_PRESERVE(...) __VA_ARGS__
 #define CFG_MV 1
 #define USE_MV(...) __VA_ARGS__
 #define CFG_MV_MORE 1
@@ -78,6 +82,10 @@
 #define USE_ID(...) __VA_ARGS__
 #define CFG_ID_Z 1
 #define USE_ID_Z(...) __VA_ARGS__
+#define CFG_IONICE 1
+#define USE_IONICE(...) __VA_ARGS__
+#define CFG_IORENICE 1
+#define USE_IORENICE(...) __VA_ARGS__
 #define CFG_GROUPS 1
 #define USE_GROUPS(...) __VA_ARGS__
 #define CFG_LOGNAME 1
@@ -104,12 +112,20 @@
 #define USE_MKDIR_Z(...) __VA_ARGS__
 #define CFG_MKFIFO 1
 #define USE_MKFIFO(...) __VA_ARGS__
+#define CFG_MKFIFO_Z 1
+#define USE_MKFIFO_Z(...) __VA_ARGS__
+#define CFG_MKNOD 1
+#define USE_MKNOD(...) __VA_ARGS__
+#define CFG_MKNOD_Z 1
+#define USE_MKNOD_Z(...) __VA_ARGS__
 #define CFG_NICE 1
 #define USE_NICE(...) __VA_ARGS__
 #define CFG_NL 1
 #define USE_NL(...) __VA_ARGS__
 #define CFG_NOHUP 1
 #define USE_NOHUP(...) __VA_ARGS__
+#define CFG_NPROC 0
+#define USE_NPROC(...)
 #define CFG_OD 1
 #define USE_OD(...) __VA_ARGS__
 #define CFG_PASTE 1
@@ -146,6 +162,8 @@
 #define USE_TAIL(...) __VA_ARGS__
 #define CFG_TAIL_SEEK 1
 #define USE_TAIL_SEEK(...) __VA_ARGS__
+#define CFG_TASKSET 1
+#define USE_TASKSET(...) __VA_ARGS__
 #define CFG_TEE 1
 #define USE_TEE(...) __VA_ARGS__
 #define CFG_TIME 1
@@ -466,6 +484,8 @@
 #define USE_W(...)
 #define CFG_WHICH 1
 #define USE_WHICH(...) __VA_ARGS__
+#define CFG_XXD 1
+#define USE_XXD(...) __VA_ARGS__
 #define CFG_YES 1
 #define USE_YES(...) __VA_ARGS__
 #define CFG_DMESG 1
diff --git a/generated/flags.h b/generated/flags.h
index ad01478..f70392b 100644
--- a/generated/flags.h
+++ b/generated/flags.h
@@ -288,9 +288,9 @@
 #undef FOR_count
 #endif
 
-// cp <2RHLPprdaslvnF(remove-destination)fi[-HLPd][-ni] <2RHLPprdaslvnF(remove-destination)fi[-HLPd][-ni]
+// cp <2(preserve):;RHLPprdaslvnF(remove-destination)fi[-HLPd][-ni] <2(preserve):;RHLPprdaslvnF(remove-destination)fi[-HLPd][-ni]
 #undef OPTSTR_cp
-#define OPTSTR_cp "<2RHLPprdaslvnF(remove-destination)fi[-HLPd][-ni]"
+#define OPTSTR_cp "<2(preserve):;RHLPprdaslvnF(remove-destination)fi[-HLPd][-ni]"
 #ifdef CLEANUP_cp
 #undef CLEANUP_cp
 #undef FOR_cp
@@ -310,6 +310,7 @@
 #undef FLAG_L
 #undef FLAG_H
 #undef FLAG_R
+#undef FLAG_preserve
 #endif
 
 // cpio mduH:p:|i|t|F:v(verbose)o|[!pio][!pot][!pF] mduH:p:|i|t|F:v(verbose)o|[!pio][!pot][!pF]
@@ -444,13 +445,14 @@
 #undef FLAG_V
 #endif
 
-// dhcpd   >1P#<0>65535=67fS
+// dhcpd   >1P#<0>65535=67fi:S
 #undef OPTSTR_dhcpd
 #define OPTSTR_dhcpd  0 
 #ifdef CLEANUP_dhcpd
 #undef CLEANUP_dhcpd
 #undef FOR_dhcpd
 #undef FLAG_S
+#undef FLAG_i
 #undef FLAG_f
 #undef FLAG_P
 #endif
@@ -658,7 +660,7 @@
 #undef FLAG_H
 #endif
 
-// fold   bsuw#
+// fold   bsuw#<1
 #undef OPTSTR_fold
 #define OPTSTR_fold  0 
 #ifdef CLEANUP_fold
@@ -1022,6 +1024,26 @@
 #undef FLAG_c
 #endif
 
+// ionice ^tc#<0>3n#<0>7=5p# ^tc#<0>3n#<0>7=5p#
+#undef OPTSTR_ionice
+#define OPTSTR_ionice "^tc#<0>3n#<0>7=5p#"
+#ifdef CLEANUP_ionice
+#undef CLEANUP_ionice
+#undef FOR_ionice
+#undef FLAG_p
+#undef FLAG_n
+#undef FLAG_c
+#undef FLAG_t
+#endif
+
+// iorenice ?<1>3 ?<1>3
+#undef OPTSTR_iorenice
+#define OPTSTR_iorenice "?<1>3"
+#ifdef CLEANUP_iorenice
+#undef CLEANUP_iorenice
+#undef FOR_iorenice
+#endif
+
 // ip    
 #undef OPTSTR_ip
 #define OPTSTR_ip  0 
@@ -1338,21 +1360,23 @@
 #undef FLAG_g
 #endif
 
-// mkfifo <1m: <1m:
+// mkfifo <1Zm: <1Zm:
 #undef OPTSTR_mkfifo
-#define OPTSTR_mkfifo "<1m:"
+#define OPTSTR_mkfifo "<1Zm:"
 #ifdef CLEANUP_mkfifo
 #undef CLEANUP_mkfifo
 #undef FOR_mkfifo
 #undef FLAG_m
+#undef FLAG_Z
 #endif
 
-// mknod <2>4m(mode): <2>4m(mode):
+// mknod <2>4m(mode):Z: <2>4m(mode):Z:
 #undef OPTSTR_mknod
-#define OPTSTR_mknod "<2>4m(mode):"
+#define OPTSTR_mknod "<2>4m(mode):Z:"
 #ifdef CLEANUP_mknod
 #undef CLEANUP_mknod
 #undef FOR_mknod
+#undef FLAG_Z
 #undef FLAG_mode
 #undef FLAG_m
 #endif
@@ -1543,6 +1567,15 @@
 #undef FOR_nohup
 #endif
 
+// nproc   (all)
+#undef OPTSTR_nproc
+#define OPTSTR_nproc  0 
+#ifdef CLEANUP_nproc
+#undef CLEANUP_nproc
+#undef FOR_nproc
+#undef FLAG_all
+#endif
+
 // nsenter   <1F(no-fork)t#<1(target)i:(ipc);m:(mount);n:(net);p:(pid);u:(uts);U:(user);
 #undef OPTSTR_nsenter
 #define OPTSTR_nsenter  0 
@@ -1724,9 +1757,9 @@
 #undef FLAG_0
 #endif
 
-// printf <1 <1
+// printf <1?^ <1?^
 #undef OPTSTR_printf
-#define OPTSTR_printf "<1"
+#define OPTSTR_printf "<1?^"
 #ifdef CLEANUP_printf
 #undef CLEANUP_printf
 #undef FOR_printf
@@ -2665,6 +2698,17 @@
 #undef FLAG_I
 #endif
 
+// xxd >1c#<1>4096=16l#g#<1=2 >1c#<1>4096=16l#g#<1=2
+#undef OPTSTR_xxd
+#define OPTSTR_xxd ">1c#<1>4096=16l#g#<1=2"
+#ifdef CLEANUP_xxd
+#undef CLEANUP_xxd
+#undef FOR_xxd
+#undef FLAG_g
+#undef FLAG_l
+#undef FLAG_c
+#endif
+
 // xzcat    
 #undef OPTSTR_xzcat
 #define OPTSTR_xzcat  0 
@@ -2941,6 +2985,7 @@
 #define FLAG_L (1<<12)
 #define FLAG_H (1<<13)
 #define FLAG_R (1<<14)
+#define FLAG_preserve (1<<15)
 #endif
 
 #ifdef FOR_cpio
@@ -3062,8 +3107,9 @@
 #define TT this.dhcpd
 #endif
 #define FLAG_S (FORCED_FLAG<<0)
-#define FLAG_f (FORCED_FLAG<<1)
-#define FLAG_P (FORCED_FLAG<<2)
+#define FLAG_i (FORCED_FLAG<<1)
+#define FLAG_f (FORCED_FLAG<<2)
+#define FLAG_P (FORCED_FLAG<<3)
 #endif
 
 #ifdef FOR_diff
@@ -3539,6 +3585,22 @@
 #define FLAG_c (1<<8)
 #endif
 
+#ifdef FOR_ionice
+#ifndef TT
+#define TT this.ionice
+#endif
+#define FLAG_p (1<<0)
+#define FLAG_n (1<<1)
+#define FLAG_c (1<<2)
+#define FLAG_t (1<<3)
+#endif
+
+#ifdef FOR_iorenice
+#ifndef TT
+#define TT this.iorenice
+#endif
+#endif
+
 #ifdef FOR_ip
 #ifndef TT
 #define TT this.ip
@@ -3808,14 +3870,16 @@
 #define TT this.mkfifo
 #endif
 #define FLAG_m (1<<0)
+#define FLAG_Z (1<<1)
 #endif
 
 #ifdef FOR_mknod
 #ifndef TT
 #define TT this.mknod
 #endif
-#define FLAG_mode (1<<0)
-#define FLAG_m (1<<0)
+#define FLAG_Z (1<<0)
+#define FLAG_mode (1<<1)
+#define FLAG_m (1<<1)
 #endif
 
 #ifdef FOR_mkpasswd
@@ -3974,6 +4038,13 @@
 #endif
 #endif
 
+#ifdef FOR_nproc
+#ifndef TT
+#define TT this.nproc
+#endif
+#define FLAG_all (FORCED_FLAG<<0)
+#endif
+
 #ifdef FOR_nsenter
 #ifndef TT
 #define TT this.nsenter
@@ -4906,6 +4977,15 @@
 #define FLAG_I (1<<9)
 #endif
 
+#ifdef FOR_xxd
+#ifndef TT
+#define TT this.xxd
+#endif
+#define FLAG_g (1<<0)
+#define FLAG_l (1<<1)
+#define FLAG_c (1<<2)
+#endif
+
 #ifdef FOR_xzcat
 #ifndef TT
 #define TT this.xzcat
diff --git a/generated/globals.h b/generated/globals.h
index 0d8ee92..d089c9e 100644
--- a/generated/globals.h
+++ b/generated/globals.h
@@ -64,6 +64,7 @@
 // toys/lsb/mknod.c
 
 struct mknod_data {
+  char *arg_context;
   char *m;
 };
 
@@ -165,7 +166,7 @@
 struct hexedit_data {
   char *data;
   long long len, base;
-  int numlen;
+  int numlen, undo, undolen;
   unsigned height;
 };
 
@@ -175,6 +176,14 @@
   int sockfd;
 };
 
+// toys/other/ionice.c
+
+struct ionice_data {
+  long pid;
+  long level;
+  long class;
+};
+
 // toys/other/login.c
 
 struct login_data {
@@ -297,6 +306,12 @@
   dev_t rootdev;
 };
 
+// toys/other/taskset.c
+
+struct taskset_data {
+  int nproc;
+};
+
 // toys/other/timeout.c
 
 struct timeout_data {
@@ -318,6 +333,14 @@
   int type;
 };
 
+// toys/other/xxd.c
+
+struct xxd_data {
+  long g;
+  long l;
+  long c;
+};
+
 // toys/pending/arp.c
 
 struct arp_data {
@@ -433,6 +456,7 @@
 // toys/pending/dhcpd.c
 
 struct dhcpd_data {
+    char *iface;
     long port;
 };;
 
@@ -883,16 +907,24 @@
 // toys/posix/cp.c
 
 struct cp_data {
-  // install's options
-  char *group;
-  char *user;
-  char *mode;
+  union {
+    struct {
+      // install's options
+      char *group;
+      char *user;
+      char *mode;
+    } i;
+    struct {
+      char *preserve;
+    } c;
+  };
 
   char *destname;
   struct stat top;
   int (*callback)(struct dirtree *try);
   uid_t uid;
   gid_t gid;
+  int pflags;
 };
 
 // toys/posix/cpio.c
@@ -1012,6 +1044,8 @@
 
 struct mkfifo_data {
   char *m_string;
+  char *Z;
+
   mode_t mode;
 };
 
@@ -1200,6 +1234,7 @@
 	struct free_data free;
 	struct hexedit_data hexedit;
 	struct ifconfig_data ifconfig;
+	struct ionice_data ionice;
 	struct login_data login;
 	struct losetup_data losetup;
 	struct lspci_data lspci;
@@ -1214,8 +1249,10 @@
 	struct stat_data stat;
 	struct swapon_data swapon;
 	struct switch_root_data switch_root;
+	struct taskset_data taskset;
 	struct timeout_data timeout;
 	struct truncate_data truncate;
+	struct xxd_data xxd;
 	struct arp_data arp;
 	struct arping_data arping;
 	struct bootchartd_data bootchartd;
diff --git a/generated/help.h b/generated/help.h
index 4119610..299b329 100644
--- a/generated/help.h
+++ b/generated/help.h
@@ -62,6 +62,8 @@
 
 #define help_mktemp "usage: mktemp [-dq] [-p DIR] [TEMPLATE]\n\nSafely create a new file \"DIR/TEMPLATE\" and print its name.\n\n-d	Create directory instead of file (--directory)\n-p	Put new file in DIR (--tmpdir)\n-q	Quiet, no error messages\n\nEach X in TEMPLATE is replaced with a random printable character. The\ndefault TEMPLATE is tmp.XXXXXX, and the default DIR is $TMPDIR if set,\nelse \"/tmp\".\n\n"
 
+#define help_mknod_z "usage: mknod [-Z CONTEXT] ...\n\n-Z	Set security context to created file\n\n"
+
 #define help_mknod "usage: mknod [-m MODE] NAME TYPE [MAJOR MINOR]\n\nCreate a special file NAME with a given type. TYPE is b for block device,\nc or u for character device, p for named pipe (which ignores MAJOR/MINOR).\n\n-m	Mode (file permissions) of new device, in octal or u+x format\n\n"
 
 #define help_sha1sum "usage: sha1sum [FILE]...\n\ncalculate sha1 hash for each input file, reading from stdin if none.\nOutput one hash (20 hex digits) for each input file, followed by\nfilename.\n\n-b	brief (hash only, no filename)\n\n"
@@ -76,6 +78,8 @@
 
 #define help_yes "usage: yes [args...]\n\nRepeatedly output line until killed. If no args, output 'y'.\n\n\n"
 
+#define help_xxd "usage: xxd [-c n] [-g n] [-l n] [file]\n\nHexdump a file to stdout.  If no file is listed, copy from stdin.\nFilename \"-\" is a synonym for stdin.\n\n-c n	Show n bytes per line (default 16).\n-g n	Group bytes by adding a ' ' every n bytes (default 2).\n-l n	Limit of n bytes before stopping (default is no limit).\n\n"
+
 #define help_which "usage: which [-a] filename ...\n\nSearch $PATH for executable files matching filename(s).\n\n-a	Show all matches\n\n"
 
 #define help_w "usage: w\n\nShow who is logged on and since how long they logged in.\n\n"
@@ -94,6 +98,8 @@
 
 #define help_taskset "usage: taskset [-ap] [mask] [PID | cmd [args...]]\n\nLaunch a new task which may only run on certain processors, or change\nthe processor affinity of an exisitng PID.\n\nMask is a hex string where each bit represents a processor the process\nis allowed to run on. PID without a mask displays existing affinity.\n\n-p	Set/get the affinity of given PID instead of a new command.\n-a	Set/get the affinity of all threads of the PID.\n\n"
 
+#define help_nproc "usage: nproc [--all]\n\nPrint number of processors.\n\n--all	Show all processors, not just ones this task can run on.\n\n"
+
 #define help_tac "usage: tac [FILE...]\n\nOutput lines in reverse order.\n\n"
 
 #define help_sysctl "usage: sysctl [-aAeNnqw] [-p [FILE] | KEY[=VALUE]...]\n\nRead/write system control data (under /proc/sys).\n\n-a,A	Show all values\n-e	Don't warn about unknown keys\n-N	Don't print key values\n-n	Don't print key names\n-p [FILE]	Read values from FILE (default /etc/sysctl.conf)\n-q	Don't show value after write\n-w	Only write values (object to reading)\n\n"
@@ -174,6 +180,10 @@
 
 #define help_login "usage: login [-p] [-h host] [[-f] username]\n\nEstablish a new session with the system.\n\n-p	Preserve environment\n-h	The name of the remote host for this login\n-f	Do not perform authentication\n\n"
 
+#define help_iorenice "usage: iorenice PID [CLASS] [PRIORITY]\n\nDisplay or change I/O priority of existing process. CLASS can be\n\"rt\" for realtime, \"be\" for best effort, \"idle\" for only when idle, or\n\"none\" to leave it alone. PRIORITY can be 0-7 (0 is highest, default 4).\n\n"
+
+#define help_ionice "usage: ionice [-t] [-c CLASS] [-n LEVEL] [COMMAND...|-p PID]\n\nChange the I/O scheduling priority of a process. With no arguments\n(or just -p), display process' existing I/O class/priority.\n\n-c	CLASS = 1-3: 1(realtime), 2(best-effort, default), 3(when-idle)\n-n	LEVEL = 0-7: (0 is highest priority, default = 5)\n-p	Affect existing PID instead of spawning new child\n-t	Ignore failure to set I/O priority\n\nSystem default iopriority is generally -c 2 -n 4.\n\n"
+
 #define help_insmod "usage: insmod MODULE [MODULE_OPTIONS]\n\nLoad the module named MODULE passing options if given.\n\n"
 
 #define help_inotifyd "usage: inotifyd PROG FILE[:MASK] ...\n\nWhen a filesystem event matching MASK occurs to a FILE, run PROG as:\n\n  PROG EVENTS FILE [DIRFILE]\n\nIf PROG is \"-\" events are sent to stdout.\n\nThis file is:\n  a  accessed    c  modified    e  metadata change  w  closed (writable)\n  r  opened      D  deleted     M  moved            0  closed (unwritable)\n  u  unmounted   o  overflow    x  unwatchable\n\nA file in this directory is:\n  m  moved in    y  moved out   n  created          d  deleted\n\nWhen x event happens for all FILEs, inotifyd exits (after waiting for PROG).\n\n"
@@ -230,10 +240,10 @@
 
 #define help_useradd "usage: useradd [-SDH] [-h DIR] [-s SHELL] [-G GRP] [-g NAME] [-u UID] USER [GROUP]\n\nCreate new user, or add USER to GROUP\n\n-D       Don't assign a password\n-g NAME  Real name\n-G GRP   Add user to existing group\n-h DIR   Home directory\n-H       Don't create home directory\n-s SHELL Login shell\n-S       Create a system user\n-u UID   User id\n\n"
 
-#define help_traceroute "usage: traceroute [-46FUIldnvr] [-f 1ST_TTL] [-m MAXTTL] [-p PORT] [-q PROBES]\n[-s SRC_IP] [-t TOS] [-w WAIT_SEC] [-g GATEWAY] [-i IFACE] [-z PAUSE_MSEC] HOST [BYTES]\n\ntraceroute6 [-dnrv] [-m MAXTTL] [-p PORT] [-q PROBES][-s SRC_IP] [-t TOS] [-w WAIT_SEC]\n  [-i IFACE] HOST [BYTES]\n\nTrace the route to HOST\n\n-4,-6 Force IP or IPv6 name resolution\n-F    Set the don't fragment bit (supports IPV4 only)\n-U    Use UDP datagrams instead of ICMP ECHO (supports IPV4 only)\n-I    Use ICMP ECHO instead of UDP datagrams (supports IPV4 only)\n-l    Display the TTL value of the returned packet (supports IPV4 only)\n-d    Set SO_DEBUG options to socket\n-n    Print numeric addresses\n-v    verbose\n-r    Bypass routing tables, send directly to HOST\n-m    Max time-to-live (max number of hops)(RANGE 1 to 255)\n-p    Base UDP port number used in probes(default 33434)(RANGE 1 to 65535)\n-q    Number of probes per TTL (default 3)(RANGE 1 to 255)\n-s    IP address to use as the source address\n-t    Type-of-service in probe packets (default 0)(RANGE 0 to 255)\n-w    Time in seconds to wait for a response (default 3)(RANGE 0 to 86400)\n-g    Loose source route gateway (8 max) (supports IPV4 only)\n-z    Pause Time in milisec (default 0)(RANGE 0 to 86400) (supports IPV4 only)\n-f    Start from the 1ST_TTL hop (instead from 1)(RANGE 1 to 255) (supports IPV4 only)\n-i    Specify a network interface to operate with\n\n"
-
 #define help_tr "usage: tr [-cds] SET1 [SET2]\n\nTranslate, squeeze, or delete characters from stdin, writing to stdout\n\n-c/-C  Take complement of SET1\n-d     Delete input characters coded SET1\n-s     Squeeze multiple output characters of SET2 into one character\n\n"
 
+#define help_traceroute "usage: traceroute [-46FUIldnvr] [-f 1ST_TTL] [-m MAXTTL] [-p PORT] [-q PROBES]\n[-s SRC_IP] [-t TOS] [-w WAIT_SEC] [-g GATEWAY] [-i IFACE] [-z PAUSE_MSEC] HOST [BYTES]\n\ntraceroute6 [-dnrv] [-m MAXTTL] [-p PORT] [-q PROBES][-s SRC_IP] [-t TOS] [-w WAIT_SEC]\n  [-i IFACE] HOST [BYTES]\n\nTrace the route to HOST\n\n-4,-6 Force IP or IPv6 name resolution\n-F    Set the don't fragment bit (supports IPV4 only)\n-U    Use UDP datagrams instead of ICMP ECHO (supports IPV4 only)\n-I    Use ICMP ECHO instead of UDP datagrams (supports IPV4 only)\n-l    Display the TTL value of the returned packet (supports IPV4 only)\n-d    Set SO_DEBUG options to socket\n-n    Print numeric addresses\n-v    verbose\n-r    Bypass routing tables, send directly to HOST\n-m    Max time-to-live (max number of hops)(RANGE 1 to 255)\n-p    Base UDP port number used in probes(default 33434)(RANGE 1 to 65535)\n-q    Number of probes per TTL (default 3)(RANGE 1 to 255)\n-s    IP address to use as the source address\n-t    Type-of-service in probe packets (default 0)(RANGE 0 to 255)\n-w    Time in seconds to wait for a response (default 3)(RANGE 0 to 86400)\n-g    Loose source route gateway (8 max) (supports IPV4 only)\n-z    Pause Time in milisec (default 0)(RANGE 0 to 86400) (supports IPV4 only)\n-f    Start from the 1ST_TTL hop (instead from 1)(RANGE 1 to 255) (supports IPV4 only)\n-i    Specify a network interface to operate with\n\n"
+
 #define help_top "\n"
 
 #define help_tftpd "usage: tftpd [-cr] [-u USER] [DIR]\n\nTransfer file from/to tftp server.\n\n-r	read only\n-c	Allow file creation via upload\n-u	run as USER\n-l	Log to syslog (inetd mode requires this)\n\n"
@@ -330,7 +340,7 @@
 
 #define help_diff "usage: diff [-abBdiNqrTstw] [-L LABEL] [-S FILE] [-U LINES] FILE1 FILE2\n\n-a  Treat all files as text\n-b  Ignore changes in the amount of whitespace\n-B  Ignore changes whose lines are all blank\n-d  Try hard to find a smaller set of changes\n-i  Ignore case differences\n-L  Use LABEL instead of the filename in the unified header\n-N  Treat absent files as empty\n-q  Output only whether files differ\n-r  Recurse\n-S  Start with FILE when comparing directories\n-T  Make tabs line up by prefixing a tab when necessary\n-s  Report when two files are the same\n-t  Expand tabs to spaces in output\n-U  Output LINES lines of context\n-w  Ignore all whitespace\n\n"
 
-#define help_dhcpd "usage: dhcpd [-fS] [-P N] [CONFFILE]\n\n -f    Run in foreground\n -S    Log to syslog too\n -P N  Use port N (default 67)\n\n"
+#define help_dhcpd "usage: dhcpd [-fS] [-i IFACE] [-P N] [CONFFILE]\n\n -f    Run in foreground\n -i    Interface to use\n -S    Log to syslog too\n -P N  Use port N (default 67)\n\n"
 
 #define help_dhcp "usage: dhcp [-fbnqvoCRB] [-i IFACE] [-r IP] [-s PROG] [-p PIDFILE]\n            [-H HOSTNAME] [-V VENDOR] [-x OPT:VAL] [-O OPT]\n\n     Configure network dynamicaly using DHCP.\n\n   -i Interface to use (default eth0)\n   -p Create pidfile\n   -s Run PROG at DHCP events (default /usr/share/dhcp/default.script)\n   -B Request broadcast replies\n   -t Send up to N discover packets\n   -T Pause between packets (default 3 seconds)\n   -A Wait N seconds after failure (default 20)\n   -f Run in foreground\n   -b Background if lease is not obtained\n   -n Exit if lease is not obtained\n   -q Exit after obtaining lease\n   -R Release IP on exit\n   -S Log to syslog too\n   -a Use arping to validate offered address\n   -O Request option OPT from server (cumulative)\n   -o Don't request any options (unless -O is given)\n   -r Request this IP address\n   -x OPT:VAL  Include option OPT in sent packets (cumulative)\n   -F Ask server to update DNS mapping for NAME\n   -H Send NAME as client hostname (default none)\n   -V VENDOR Vendor identifier (default 'toybox VERSION')\n   -C Don't send MAC as client identifier\n   -v Verbose\n\n   Signals:\n   USR1  Renew current lease\n   USR2  Release current lease\n\n\n"
 
@@ -396,7 +406,7 @@
 
 #define help_split "usage: split [-a SUFFIX_LEN] [-b BYTES] [-l LINES] [INPUT [OUTPUT]]\n\nCopy INPUT (or stdin) data to a series of OUTPUT (or \"x\") files with\nalphabetically increasing suffix (aa, ab, ac... az, ba, bb...).\n\n-a	Suffix length (default 2)\n-b	BYTES/file (10, 10k, 10m, 10g...)\n-l	LINES/file (default 1000)\n\n"
 
-#define help_sort "usage: sort [-Mbcdfginrsuz] [-k#[,#[x]] [-t X]] [-o FILE] [FILE...]\n\nSort all lines of text from input files (or stdin) to stdout.\n\n-M	month sort (jan, feb, etc).\n-b	ignore leading blanks (or trailing blanks in second part of key)\n-c	check whether input is sorted\n-d	dictionary order (use alphanumeric and whitespace chars only)\n-f	force uppercase (case insensitive sort)\n-g	general numeric sort (double precision with nan and inf)\n-i	ignore nonprinting characters\n-k	sort by \"key\" (see below)\n-n	numeric order (instead of alphabetical)\n-o	output to FILE instead of stdout\n-r	reverse\n-s	skip fallback sort (only sort with keys)\n-t	use a key separator other than whitespace\n-u	unique lines only\n-x	Hexadecimal numerical sort\n-z	zero (null) terminated input\n\nSorting by key looks at a subset of the words on each line.  -k2\nuses the second word to the end of the line, -k2,2 looks at only\nthe second word, -k2,4 looks from the start of the second to the end\nof the fourth word.  Specifying multiple keys uses the later keys as\ntie breakers, in order.  A type specifier appended to a sort key\n(such as -2,2n) applies only to sorting that key.\n"
+#define help_sort "usage: sort [-Mbcdfginrsuz] [-k#[,#[x]] [-t X]] [-o FILE] [FILE...]\n\nSort all lines of text from input files (or stdin) to stdout.\n\n-M	month sort (jan, feb, etc).\n-b	ignore leading blanks (or trailing blanks in second part of key)\n-c	check whether input is sorted\n-d	dictionary order (use alphanumeric and whitespace chars only)\n-f	force uppercase (case insensitive sort)\n-g	general numeric sort (double precision with nan and inf)\n-i	ignore nonprinting characters\n-k	sort by \"key\" (see below)\n-n	numeric order (instead of alphabetical)\n-o	output to FILE instead of stdout\n-r	reverse\n-s	skip fallback sort (only sort with keys)\n-t	use a key separator other than whitespace\n-u	unique lines only\n-x	Hexadecimal numerical sort\n-z	zero (null) terminated lines\n\nSorting by key looks at a subset of the words on each line.  -k2\nuses the second word to the end of the line, -k2,2 looks at only\nthe second word, -k2,4 looks from the start of the second to the end\nof the fourth word.  Specifying multiple keys uses the later keys as\ntie breakers, in order.  A type specifier appended to a sort key\n(such as -2,2n) applies only to sorting that key.\n"
 
 #define help_sleep_float "Length can be a decimal fraction.\n\n"
 
@@ -426,7 +436,7 @@
 
 #define help_nice "usage: nice [-n PRIORITY] command [args...]\n\nRun a command line at an increased or decreased scheduling priority.\n\nHigher numbers make a program yield more CPU time, from -20 (highest\npriority) to 19 (lowest).  By default processes inherit their parent's\nniceness (usually 0).  By default this command adds 10 to the parent's\npriority.  Only root can set a negative niceness level.\n\n"
 
-#define help_mkfifo "usage: mkfifo [fifo_name...]\n\nCreate FIFOs (named pipes).\n\n"
+#define help_mkfifo "usage: mkfifo [-Z CONTEXT] [NAME...]\n\nCreate FIFOs (named pipes).\n\n-Z	Security context\n"
 
 #define help_mkdir_z "usage: [-Z context]\n\n-Z	set security context\n\n"
 
@@ -482,7 +492,9 @@
 
 #define help_mv "usage: mv [-finv] SOURCE... DEST\"\n\n-f	force copy by deleting destination file\n-i	interactive, prompt before overwriting existing DEST\n-n	no clobber (don't overwrite DEST)\n-v	verbose\n"
 
-#define help_cp "usage: cp [-HLPRadfilnprsv] SOURCE... DEST\n\nCopy files from SOURCE to DEST.  If more than one SOURCE, DEST must\nbe a directory.\n-F	delete any existing destination file first (--remove-destination)\n-H	Follow symlinks listed on command line\n-L	Follow all symlinks\n-P	Do not follow symlinks [default]\n-R	recurse into subdirectories (DEST must be a directory)\n-a	same as -dpr\n-d	don't dereference symlinks\n-f	delete destination files we can't write to\n-i	interactive, prompt before overwriting existing DEST\n-l	hard link instead of copy\n-n	no clobber (don't overwrite DEST)\n-p	preserve timestamps, ownership, and permissions\n-r	synonym for -R\n-s	symlink instead of copy\n-v	verbose\n"
+#define help_cp_preserve "-i	interactive, prompt before overwriting existing DEST\n-l	hard link instead of copy\n-n	no clobber (don't overwrite DEST)\n-p	preserve timestamps, ownership, and permissions\n-r	synonym for -R\n-s	symlink instead of copy\n-v	verbose\nletter(s) of:\n\n        mode - permissions (ignore umask for rwx, copy suid and sticky bit)\n   ownership - user and group\n  timestamps - file creation, modification, and access times.\n         all - all of the above\nusage: cp [--preserve=mota] [-adlnrsv] [-fipRHLP] SOURCE... DEST\n\nCopy files from SOURCE to DEST.  If more than one SOURCE, DEST must\nbe a directory.\n\n--preserve takes either a comma separated list of attributes, or the first\n-F	delete any existing destination file first (--remove-destination)\n-H	Follow symlinks listed on command line\n-L	Follow all symlinks\n-P	Do not follow symlinks [default]\n-R	recurse into subdirectories (DEST must be a directory)\n-a	same as -dpr\n-d	don't dereference symlinks\n-f	delete destination files we can't write to\n"
+
+#define help_cp "usage: cp [--preserve=mota] [-adlnrsv] [-fipRHLP] SOURCE... DEST\n\nCopy files from SOURCE to DEST.  If more than one SOURCE, DEST must\nbe a directory.\n\n--preserve takes either a comma separated list of attributes, or the first\n-F	delete any existing destination file first (--remove-destination)\n-H	Follow symlinks listed on command line\n-L	Follow all symlinks\n-P	Do not follow symlinks [default]\n-R	recurse into subdirectories (DEST must be a directory)\n-a	same as -dpr\n-d	don't dereference symlinks\n-f	delete destination files we can't write to\n-i	interactive, prompt before overwriting existing DEST\n-l	hard link instead of copy\n-n	no clobber (don't overwrite DEST)\n-p	preserve timestamps, ownership, and permissions\n-r	synonym for -R\n-s	symlink instead of copy\n-v	verbose\nletter(s) of:\n\n        mode - permissions (ignore umask for rwx, copy suid and sticky bit)\n   ownership - user and group\n  timestamps - file creation, modification, and access times.\n         all - all of the above\n"
 
 #define help_comm "usage: comm [-123] FILE1 FILE2\n\nReads FILE1 and FILE2, which should be ordered, and produces three text\ncolumns as output: lines only in FILE1; lines only in FILE2; and lines\nin both files. Filename \"-\" is a synonym for stdin.\n\n-1 suppress the output column of lines unique to FILE1\n-2 suppress the output column of lines unique to FILE2\n-3 suppress the output column of lines duplicated in FILE1 and FILE2\n\n"
 
diff --git a/generated/newtoys.h b/generated/newtoys.h
index d459572..c503b41 100644
--- a/generated/newtoys.h
+++ b/generated/newtoys.h
@@ -29,7 +29,7 @@
 USE_COMM(NEWTOY(comm, "<2>2321", TOYFLAG_USR|TOYFLAG_BIN))
 USE_COMPRESS(NEWTOY(compress, "zcd9lrg[-cd][!zgLr]", TOYFLAG_USR|TOYFLAG_BIN))
 USE_COUNT(NEWTOY(count, NULL, TOYFLAG_USR|TOYFLAG_BIN))
-USE_CP(NEWTOY(cp, "<2RHLPp"USE_CP_MORE("rdaslvnF(remove-destination)")"fi[-HLP"USE_CP_MORE("d")"]"USE_CP_MORE("[-ni]"), TOYFLAG_BIN))
+USE_CP(NEWTOY(cp, "<2"USE_CP_PRESERVE("(preserve):;")"RHLPp"USE_CP_MORE("rdaslvnF(remove-destination)")"fi[-HLP"USE_CP_MORE("d")"]"USE_CP_MORE("[-ni]"), TOYFLAG_BIN))
 USE_CPIO(NEWTOY(cpio, "mduH:p:|i|t|F:v(verbose)o|[!pio][!pot][!pF]", TOYFLAG_BIN))
 USE_CROND(NEWTOY(crond, "fbSl#<0=8d#<0L:c:[-bf][-LS][-ld]", TOYFLAG_USR|TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 USE_CRONTAB(NEWTOY(crontab, "c:u:elr[!elr]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_STAYROOT))
@@ -41,7 +41,7 @@
 USE_USERDEL(OLDTOY(deluser, userdel, TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
 USE_DF(NEWTOY(df, "Pkt*a[-Pk]", TOYFLAG_SBIN))
 USE_DHCP(NEWTOY(dhcp, "V:H:F:x*r:O*A#<0T#<0t#<0s:p:i:SBRCaovqnbf", TOYFLAG_SBIN|TOYFLAG_ROOTONLY))
-USE_DHCPD(NEWTOY(dhcpd, ">1P#<0>65535=67fS", TOYFLAG_SBIN|TOYFLAG_ROOTONLY))
+USE_DHCPD(NEWTOY(dhcpd, ">1P#<0>65535=67fi:S", TOYFLAG_SBIN|TOYFLAG_ROOTONLY))
 USE_DIFF(NEWTOY(diff, "<2>2B(ignore-blank-lines)d(minimal)b(ignore-space-change)ut(expand-tabs)w(ignore-all-space)i(ignore-case)T(initial-tab)s(report-identical-files)q(brief)a(text)L(label)*S(starting-file):N(new-file)r(recursive)U(unified)#<0=3", TOYFLAG_USR|TOYFLAG_BIN))
 USE_DIRNAME(NEWTOY(dirname, "<1", TOYFLAG_USR|TOYFLAG_BIN))
 USE_DMESG(NEWTOY(dmesg, "trs#<1n#c[!tr]", TOYFLAG_BIN))
@@ -61,7 +61,7 @@
 USE_FDISK(NEWTOY(fdisk, "C#<0H#<0S#<0b#<512ul", TOYFLAG_SBIN))
 USE_FGREP(OLDTOY(fgrep, grep, TOYFLAG_BIN))
 USE_FIND(NEWTOY(find, "?^HL[-HL]", TOYFLAG_USR|TOYFLAG_BIN))
-USE_FOLD(NEWTOY(fold, "bsuw#", TOYFLAG_USR|TOYFLAG_BIN))
+USE_FOLD(NEWTOY(fold, "bsuw#<1", TOYFLAG_USR|TOYFLAG_BIN))
 USE_FREE(NEWTOY(free, "tgmkb[!tgmkb]", TOYFLAG_USR|TOYFLAG_BIN))
 USE_FREERAMDISK(NEWTOY(freeramdisk, "<1>1", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 USE_FSCK(NEWTOY(fsck, "?t:ANPRTVsC#", TOYFLAG_USR|TOYFLAG_BIN))
@@ -93,6 +93,8 @@
 USE_INOTIFYD(NEWTOY(inotifyd, "<2", TOYFLAG_USR|TOYFLAG_BIN))
 USE_INSMOD(NEWTOY(insmod, "<1", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 USE_INSTALL(NEWTOY(install, "<1cdDpsvm:o:g:", TOYFLAG_USR|TOYFLAG_BIN))
+USE_IONICE(NEWTOY(ionice, "^tc#<0>3n#<0>7=5p#", TOYFLAG_USR|TOYFLAG_BIN))
+USE_IORENICE(NEWTOY(iorenice, "?<1>3", TOYFLAG_USR|TOYFLAG_BIN))
 USE_IP(NEWTOY(ip, NULL, TOYFLAG_SBIN))
 USE_IP(OLDTOY(ipaddr, ip, TOYFLAG_SBIN))
 USE_IPCRM(NEWTOY(ipcrm, "m*M*s*S*q*Q*", TOYFLAG_USR|TOYFLAG_BIN))
@@ -124,8 +126,8 @@
 USE_MIX(NEWTOY(mix, "c:d:l#r#", TOYFLAG_USR|TOYFLAG_BIN))
 USE_MKDIR(NEWTOY(mkdir, "<1"USE_MKDIR_Z("Z:")"vpm:", TOYFLAG_BIN|TOYFLAG_UMASK))
 USE_MKE2FS(NEWTOY(mke2fs, "<1>2g:Fnqm#N#i#b#", TOYFLAG_SBIN))
-USE_MKFIFO(NEWTOY(mkfifo, "<1m:", TOYFLAG_USR|TOYFLAG_BIN))
-USE_MKNOD(NEWTOY(mknod, "<2>4m(mode):", TOYFLAG_BIN|TOYFLAG_UMASK))
+USE_MKFIFO(NEWTOY(mkfifo, "<1"USE_MKFIFO_Z("Z")"m:", TOYFLAG_USR|TOYFLAG_BIN))
+USE_MKNOD(NEWTOY(mknod, "<2>4m(mode):"USE_MKNOD_Z("Z:"), TOYFLAG_BIN|TOYFLAG_UMASK))
 USE_MKPASSWD(NEWTOY(mkpasswd, ">2S:m:P#=0<0", TOYFLAG_USR|TOYFLAG_BIN))
 USE_MKSWAP(NEWTOY(mkswap, "<1>1", TOYFLAG_SBIN))
 USE_MKTEMP(NEWTOY(mktemp, ">1qd(directory)p(tmpdir):", TOYFLAG_BIN))
@@ -143,6 +145,7 @@
 USE_NICE(NEWTOY(nice, "^<1n#", TOYFLAG_USR|TOYFLAG_BIN))
 USE_NL(NEWTOY(nl, "v#<1=1l#b:n:s:w#<0=6E", TOYFLAG_BIN))
 USE_NOHUP(NEWTOY(nohup, "<1^", TOYFLAG_USR|TOYFLAG_BIN))
+USE_NPROC(NEWTOY(nproc, "(all)", TOYFLAG_USR|TOYFLAG_BIN))
 USE_NSENTER(NEWTOY(nsenter, "<1F(no-fork)t#<1(target)i:(ipc);m:(mount);n:(net);p:(pid);u:(uts);U:(user);", TOYFLAG_USR|TOYFLAG_BIN))
 USE_OD(NEWTOY(od, "j#vN#xsodcbA:t*", TOYFLAG_USR|TOYFLAG_BIN))
 USE_ONEIT(NEWTOY(oneit, "^<1nc:p3[!pn]", TOYFLAG_SBIN))
@@ -159,7 +162,7 @@
 USE_PMAP(NEWTOY(pmap, "<1xq", TOYFLAG_BIN))
 USE_REBOOT(OLDTOY(poweroff, reboot, TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
 USE_PRINTENV(NEWTOY(printenv, "0(null)", TOYFLAG_USR|TOYFLAG_BIN))
-USE_PRINTF(NEWTOY(printf, "<1", TOYFLAG_USR|TOYFLAG_BIN))
+USE_PRINTF(NEWTOY(printf, "<1?^", TOYFLAG_USR|TOYFLAG_BIN))
 USE_PS(NEWTOY(ps, "aAdeflo*[!ol][+Ae]", TOYFLAG_USR|TOYFLAG_BIN))
 USE_PWD(NEWTOY(pwd, ">0LP[-LP]", TOYFLAG_BIN))
 USE_PWDX(NEWTOY(pwdx, "<1a", TOYFLAG_USR|TOYFLAG_BIN))
@@ -243,6 +246,7 @@
 USE_WHO(NEWTOY(who, "a", TOYFLAG_USR|TOYFLAG_BIN))
 USE_WHOAMI(OLDTOY(whoami, logname, TOYFLAG_USR|TOYFLAG_BIN))
 USE_XARGS(NEWTOY(xargs, "^I:E:L#ptxrn#<1s#0", TOYFLAG_USR|TOYFLAG_BIN))
+USE_XXD(NEWTOY(xxd, ">1c#<1>4096=16l#g#<1=2", TOYFLAG_USR|TOYFLAG_BIN))
 USE_XZCAT(NEWTOY(xzcat, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 USE_YES(NEWTOY(yes, NULL, TOYFLAG_USR|TOYFLAG_BIN))
 USE_ZCAT(NEWTOY(zcat, 0, TOYFLAG_USR|TOYFLAG_BIN))