--- /dev/null
- int show_xfer;
- int show_records;
+// toys/android/getprop.c
+
+struct getprop_data {
+ size_t size;
+ char **nv; // name/value pairs: even=name, odd=value
+ struct selabel_handle *handle;
+};
+
+// toys/android/log.c
+
+struct log_data {
+ char *tag;
+ char *pri;
+};
+
+// toys/example/hello.c
+
+struct hello_data {
+ int unused;
+};
+
+// toys/example/skeleton.c
+
+struct skeleton_data {
+ union {
+ struct {
+ char *b_string;
+ long c_number;
+ struct arg_list *d_list;
+ long e_count;
+ char *also_string;
+ char *blubber_string;
+ } s;
+ struct {
+ long b_number;
+ } a;
+ };
+
+ int more_globals;
+};
+
+// toys/lsb/dmesg.c
+
+struct dmesg_data {
+ long level;
+ long size;
+
+ int use_color;
+ time_t tea;
+};
+
+// toys/lsb/hostname.c
+
+struct hostname_data {
+ char *fname;
+};
+
+// toys/lsb/killall.c
+
+struct killall_data {
+ char *sig;
+
+ int signum;
+ pid_t cur_pid;
+ char **names;
+ short *err;
+};
+
+// toys/lsb/md5sum.c
+
+struct md5sum_data {
+ struct arg_list *c;
+
+ int sawline;
+
+ // Crypto variables blanked after summing
+ unsigned state[5];
+ unsigned oldstate[5];
+ uint64_t count;
+ union {
+ char c[64];
+ unsigned i[16];
+ } buffer;
+};
+
+// toys/lsb/mknod.c
+
+struct mknod_data {
+ char *arg_context;
+ char *m;
+};
+
+// toys/lsb/mktemp.c
+
+struct mktemp_data {
+ char *tmpdir;
+};
+
+// toys/lsb/mount.c
+
+struct mount_data {
+ struct arg_list *optlist;
+ char *type;
+ char *bigO;
+
+ unsigned long flags;
+ char *opts;
+ int okuser;
+};
+
+// toys/lsb/passwd.c
+
+struct passwd_data {
+ char *algo;
+};
+
+// toys/lsb/pidof.c
+
+struct pidof_data {
+ char *omit;
+};
+
+// toys/lsb/seq.c
+
+struct seq_data {
+ char *sep;
+ char *fmt;
+};
+
+// toys/lsb/su.c
+
+struct su_data {
+ char *s;
+ char *c;
+};
+
+// toys/lsb/umount.c
+
+struct umount_data {
+ struct arg_list *t;
+
+ char *types;
+};
+
+// toys/net/ftpget.c
+
+struct ftpget_data {
+ char *user;
+ char *port;
+ char *password;
+
+ int fd;
+};
+
+// toys/net/ifconfig.c
+
+struct ifconfig_data {
+ int sockfd;
+};
+
+// toys/net/microcom.c
+
+struct microcom_data {
+ char *s;
+
+ int fd;
+ struct termios original_stdin_state, original_fd_state;
+};
+
+// toys/net/netcat.c
+
+struct netcat_data {
+ char *filename; // -f read from filename instead of network
+ long quit_delay; // -q Exit after EOF from stdin after # seconds.
+ char *source_address; // -s Bind to a specific source address.
+ long port; // -p Bind to a specific source port.
+ long idle; // -W Wait # seconds for more data
+ long wait; // -w Wait # seconds for a connection.
+};
+
+// toys/net/netstat.c
+
+struct netstat_data {
+ struct num_cache *inodes;
+ int wpad;
+};;
+
+// toys/net/tunctl.c
+
+struct tunctl_data {
+ char *user;
+};
+
+// toys/other/acpi.c
+
+struct acpi_data {
+ int ac, bat, therm, cool;
+ char *cpath;
+};
+
+// toys/other/base64.c
+
+struct base64_data {
+ long columns;
+
+ unsigned total;
+};
+
+// toys/other/blockdev.c
+
+struct blockdev_data {
+ long bsz;
+};
+
+// toys/other/chrt.c
+
+struct chrt_data {
+ long pid;
+};
+
+// toys/other/dos2unix.c
+
+struct dos2unix_data {
+ char *tempfile;
+};
+
+// toys/other/fallocate.c
+
+struct fallocate_data {
+ long offset;
+ long size;
+};
+
+// toys/other/free.c
+
+struct free_data {
+ unsigned bits;
+ unsigned long long units;
+ char *buf;
+};
+
+// toys/other/hexedit.c
+
+struct hexedit_data {
+ char *data;
+ long long len, base;
+ int numlen, undo, undolen;
+ unsigned height;
+};
+
+// toys/other/hwclock.c
+
+struct hwclock_data {
+ char *fname;
+
+ int utc;
+};
+
+// toys/other/ionice.c
+
+struct ionice_data {
+ long pid;
+ long level;
+ long class;
+};
+
+// toys/other/login.c
+
+struct login_data {
+ char *hostname;
+ char *username;
+
+ int login_timeout, login_fail_timeout;
+};
+
+// toys/other/losetup.c
+
+struct losetup_data {
+ char *jfile;
+ long offset;
+ long size;
+
+ int openflags;
+ dev_t jdev;
+ ino_t jino;
+};
+
+// toys/other/lspci.c
+
+struct lspci_data {
+ char *ids;
+ long numeric;
+
+ FILE *db;
+};
+
+// toys/other/makedevs.c
+
+struct makedevs_data {
+ char *fname;
+};
+
+// toys/other/mix.c
+
+struct mix_data {
+ long right;
+ long level;
+ char *dev;
+ char *chan;
+};
+
+// toys/other/mkpasswd.c
+
+struct mkpasswd_data {
+ long pfd;
+ char *method;
+ char *salt;
+};
+
+// toys/other/mkswap.c
+
+struct mkswap_data {
+ char *L;
+};
+
+// toys/other/modinfo.c
+
+struct modinfo_data {
+ char *field;
+ char *knam;
+ char *base;
+
+ long mod;
+};
+
+// toys/other/nsenter.c
+
+struct nsenter_data {
+ char *nsnames[6];
+ long targetpid;
+};
+
+// toys/other/oneit.c
+
+struct oneit_data {
+ char *console;
+};
+
+// toys/other/shred.c
+
+struct shred_data {
+ long offset;
+ long iterations;
+ long size;
+
+ int ufd;
+};
+
+// toys/other/stat.c
+
+struct stat_data {
+ char *fmt;
+
+ union {
+ struct stat st;
+ struct statfs sf;
+ } stat;
+ char *file, *pattern;
+ int patlen;
+};
+
+// toys/other/swapon.c
+
+struct swapon_data {
+ long priority;
+};
+
+// toys/other/switch_root.c
+
+struct switch_root_data {
+ char *console;
+
+ dev_t rootdev;
+};
+
+// toys/other/timeout.c
+
+struct timeout_data {
+ char *s_signal;
+ char *k_timeout;
+
+ int nextsig;
+ pid_t pid;
+ struct timeval ktv;
+ struct itimerval itv;
+};
+
+// toys/other/truncate.c
+
+struct truncate_data {
+ char *s;
+
+ long size;
+ int type;
+};
+
+// toys/other/xxd.c
+
+struct xxd_data {
+ long s;
+ long g;
+ long l;
+ long c;
+};
+
+// toys/pending/arp.c
+
+struct arp_data {
+ char *hw_type;
+ char *af_type_A;
+ char *af_type_p;
+ char *interface;
+
+ int sockfd;
+ char *device;
+};
+
+// toys/pending/arping.c
+
+struct arping_data {
+ long count;
+ unsigned long time_out;
+ char *iface;
+ char *src_ip;
+
+ int sockfd;
+ unsigned long start, end;
+ unsigned sent_at, sent_nr, rcvd_nr, brd_sent, rcvd_req, brd_rcv,
+ unicast_flag;
+};
+
+// toys/pending/bootchartd.c
+
+struct bootchartd_data {
+ char buf[32];
+ long smpl_period_usec;
+ int proc_accounting;
+ int is_login;
+
+ void *head;
+};
+
+// toys/pending/brctl.c
+
+struct brctl_data {
+ int sockfd;
+};
+
+// toys/pending/compress.c
+
+struct compress_data {
+ // Huffman codes: base offset and extra bits tables (length and distance)
+ char lenbits[29], distbits[30];
+ unsigned short lenbase[29], distbase[30];
+ void *fixdisthuff, *fixlithuff;
+
+ // CRC
+ void (*crcfunc)(char *data, int len);
+ unsigned crc;
+
+ // Compressed data buffer
+ char *data;
+ unsigned pos, len;
+ int infd, outfd;
+
+ // Tables only used for deflation
+ unsigned short *hashhead, *hashchain;
+};
+
+// toys/pending/crond.c
+
+struct crond_data {
+ char *crontabs_dir;
+ char *logfile;
+ int loglevel_d;
+ int loglevel;
+
+ time_t crontabs_dir_mtime;
+ uint8_t flagd;
+};
+
+// toys/pending/crontab.c
+
+struct crontab_data {
+ char *user;
+ char *cdir;
+};
+
+// toys/pending/dd.c
+
+struct dd_data {
++ int show_xfer, show_records;
+ unsigned long long bytes, c_count, in_full, in_part, out_full, out_part;
+ struct timeval start;
+ struct {
+ char *name;
+ int fd;
+ unsigned char *buff, *bp;
+ long sz, count;
+ unsigned long long offset;
+ } in, out;
+};;
+
+// toys/pending/dhcp.c
+
+struct dhcp_data {
+ char *iface;
+ char *pidfile;
+ char *script;
+ long retries;
+ long timeout;
+ long tryagain;
+ struct arg_list *req_opt;
+ char *req_ip;
+ struct arg_list *pkt_opt;
+ char *fdn_name;
+ char *hostname;
+ char *vendor_cls;
+};
+
+// toys/pending/dhcp6.c
+
+struct dhcp6_data {
+ char *interface_name, *pidfile, *script;
+ long retry, timeout, errortimeout;
+ char *req_ip;
+ int length, state, request_length, sock, sock1, status, retval, retries;
+ struct timeval tv;
+ uint8_t transction_id[3];
+ struct sockaddr_in6 input_socket6;
+};
+
+// toys/pending/dhcpd.c
+
+struct dhcpd_data {
+ char *iface;
+ long port;
+};;
+
+// toys/pending/diff.c
+
+struct diff_data {
+ long ct;
+ char *start;
+ struct arg_list *L_list;
+
+ int dir_num, size, is_binary, status, change, len[2];
+ int *offset[2];
+};
+
+// toys/pending/dumpleases.c
+
+struct dumpleases_data {
+ char *file;
+};
+
+// toys/pending/expr.c
+
+struct expr_data {
+ char **tok; // current token, not on the stack since recursive calls mutate it
+
+ char *refree;
+};
+
+// toys/pending/fdisk.c
+
+struct fdisk_data {
+ long sect_sz;
+ long sectors;
+ long heads;
+ long cylinders;
+};
+
+// toys/pending/fold.c
+
+struct fold_data {
+ int width;
+};
+
+// toys/pending/fsck.c
+
+struct fsck_data {
+ int fd_num;
+ char *t_list;
+
+ struct double_list *devices;
+ char *arr_flag;
+ char **arr_type;
+ int negate;
+ int sum_status;
+ int nr_run;
+ int sig_num;
+ long max_nr_run;
+};
+
+// toys/pending/getfattr.c
+
+struct getfattr_data {
+ char *n;
+};
+
+// toys/pending/getty.c
+
+struct getty_data {
+ char *issue_str;
+ char *login_str;
+ char *init_str;
+ char *host_str;
+ long timeout;
+
+ char *tty_name;
+ int speeds[20];
+ int sc;
+ struct termios termios;
+ char buff[128];
+};
+
+// toys/pending/groupadd.c
+
+struct groupadd_data {
+ long gid;
+};
+
+// toys/pending/gzip.c
+
+struct gzip_data {
+ int level;
+};
+
+// toys/pending/host.c
+
+struct host_data {
+ char *type_str;
+};
+
+// toys/pending/iconv.c
+
+struct iconv_data {
+ char *from;
+ char *to;
+
+ void *ic;
+};
+
+// toys/pending/ip.c
+
+struct ip_data {
+ char stats, singleline, flush, *filter_dev, gbuf[8192];
+ int sockfd, connected, from_ok, route_cmd;
+ int8_t addressfamily, is_addr;
+};
+
+// toys/pending/ipcrm.c
+
+struct ipcrm_data {
+ struct arg_list *qkey;
+ struct arg_list *qid;
+ struct arg_list *skey;
+ struct arg_list *sid;
+ struct arg_list *mkey;
+ struct arg_list *mid;
+};
+
+// toys/pending/ipcs.c
+
+struct ipcs_data {
+ int id;
+};
+
+// toys/pending/klogd.c
+
+struct klogd_data {
+ long level;
+
+ int fd;
+};
+
+// toys/pending/last.c
+
+struct last_data {
+ char *file;
+
+ struct arg_list *list;
+};
+
+// toys/pending/logger.c
+
+struct logger_data {
+ char *priority_arg;
+ char *ident;
+};
+
+// toys/pending/lsof.c
+
+struct lsof_data {
+ struct arg_list *p;
+
+ struct stat *sought_files;
+
+ struct double_list *all_sockets;
+ struct double_list *files;
+ int last_shown_pid;
+ int shown_header;
+};
+
+// toys/pending/mke2fs.c
+
+struct mke2fs_data {
+ // Command line arguments.
+ long blocksize;
+ long bytes_per_inode;
+ long inodes; // Total inodes in filesystem.
+ long reserved_percent; // Integer precent of space to reserve for root.
+ char *gendir; // Where to read dirtree from.
+
+ // Internal data.
+ struct dirtree *dt; // Tree of files to copy into the new filesystem.
+ unsigned treeblocks; // Blocks used by dt
+ unsigned treeinodes; // Inodes used by dt
+
+ unsigned blocks; // Total blocks in the filesystem.
+ unsigned freeblocks; // Free blocks in the filesystem.
+ unsigned inodespg; // Inodes per group
+ unsigned groups; // Total number of block groups.
+ unsigned blockbits; // Bits per block. (Also blocks per group.)
+
+ // For gene2fs
+ unsigned nextblock; // Next data block to allocate
+ unsigned nextgroup; // Next group we'll be allocating from
+ int fsfd; // File descriptor of filesystem (to output to).
+
+ struct ext2_superblock sb;
+};
+
+// toys/pending/modprobe.c
+
+struct modprobe_data {
+ struct arg_list *dirs;
+
+ struct arg_list *probes;
+ struct arg_list *dbase[256];
+ char *cmdopts;
+ int nudeps;
+ uint8_t symreq;
+};
+
+// toys/pending/more.c
+
+struct more_data {
+ struct termios inf;
+ int cin_fd;
+};
+
+// toys/pending/openvt.c
+
+struct openvt_data {
+ unsigned long vt_num;
+};
+
+// toys/pending/ping.c
+
+struct ping_data {
+ long wait_exit;
+ long wait_resp;
+ char *iface;
+ long size;
+ long count;
+ long ttl;
+
+ int sock;
+};
+
+// toys/pending/route.c
+
+struct route_data {
+ char *family;
+};
+
+// toys/pending/setfattr.c
+
+struct setfattr_data {
+ char *x, *v, *n;
+};
+
+// toys/pending/sh.c
+
+struct sh_data {
+ char *command;
+
+ long lineno;
+};
+
+// toys/pending/sulogin.c
+
+struct sulogin_data {
+ long timeout;
+ struct termios crntio;
+};
+
+// toys/pending/syslogd.c
+
+struct syslogd_data {
+ char *socket;
+ char *config_file;
+ char *unix_socket;
+ char *logfile;
+ long interval;
+ long rot_size;
+ long rot_count;
+ char *remote_log;
+ long log_prio;
+
+ struct unsocks *lsocks; // list of listen sockets
+ struct logfile *lfiles; // list of write logfiles
+ int sigfd[2];
+};
+
+// toys/pending/tar.c
+
+struct tar_data {
+ char *fname;
+ char *dir;
+ struct arg_list *inc_file;
+ struct arg_list *exc_file;
+ char *tocmd;
+ struct arg_list *exc;
+
+ struct arg_list *inc, *pass;
+ void *inodes, *handle;
+};
+
+// toys/pending/tcpsvd.c
+
+struct tcpsvd_data {
+ char *name;
+ char *user;
+ long bn;
+ char *nmsg;
+ long cn;
+
+ int maxc;
+ int count_all;
+ int udp;
+};
+
+// toys/pending/telnet.c
+
+struct telnet_data {
+ int port;
+ int sfd;
+ char buff[128];
+ int pbuff;
+ char iac[256];
+ int piac;
+ char *ttype;
+ struct termios def_term;
+ struct termios raw_term;
+ uint8_t term_ok;
+ uint8_t term_mode;
+ uint8_t flags;
+ unsigned win_width;
+ unsigned win_height;
+};
+
+// toys/pending/telnetd.c
+
+struct telnetd_data {
+ char *login_path;
+ char *issue_path;
+ int port;
+ char *host_addr;
+ long w_sec;
+
+ int gmax_fd;
+ pid_t fork_pid;
+};
+
+// toys/pending/tftp.c
+
+struct tftp_data {
+ char *local_file;
+ char *remote_file;
+ long block_size;
+
+ struct sockaddr_storage inaddr;
+ int af;
+};
+
+// toys/pending/tftpd.c
+
+struct tftpd_data {
+ char *user;
+
+ long sfd;
+ struct passwd *pw;
+};
+
+// toys/pending/tr.c
+
+struct tr_data {
+ short map[256]; //map of chars
+ int len1, len2;
+};
+
+// toys/pending/traceroute.c
+
+struct traceroute_data {
+ long max_ttl;
+ long port;
+ long ttl_probes;
+ char *src_ip;
+ long tos;
+ long wait_time;
+ struct arg_list *loose_source;
+ long pause_time;
+ long first_ttl;
+ char *iface;
+
+ uint32_t gw_list[9];
+ int recv_sock;
+ int snd_sock;
+ unsigned msg_len;
+ char *packet;
+ uint32_t ident;
+ int istraceroute6;
+};
+
+// toys/pending/useradd.c
+
+struct useradd_data {
+ char *dir;
+ char *gecos;
+ char *shell;
+ char *u_grp;
+ long uid;
+
+ long gid;
+};
+
+// toys/pending/vi.c
+
+struct vi_data {
+ struct linestack *ls;
+ char *statline;
+};
+
+// toys/pending/watch.c
+
+struct watch_data {
+ int interval;
+};
+
+// toys/pending/wget.c
+
+struct wget_data {
+ char *filename;
+};
+
+// toys/posix/chgrp.c
+
+struct chgrp_data {
+ uid_t owner;
+ gid_t group;
+ char *owner_name, *group_name;
+ int symfollow;
+};
+
+// toys/posix/chmod.c
+
+struct chmod_data {
+ char *mode;
+};
+
+// toys/posix/cksum.c
+
+struct cksum_data {
+ unsigned crc_table[256];
+};
+
+// toys/posix/cmp.c
+
+struct cmp_data {
+ int fd;
+ char *name;
+};
+
+// toys/posix/cp.c
+
+struct cp_data {
+ 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
+
+struct cpio_data {
+ char *archive;
+ char *pass;
+ char *fmt;
+};
+
+// toys/posix/cut.c
+
+struct cut_data {
+ char *delim;
+ char *flist;
+ char *clist;
+ char *blist;
+
+ void *slist_head;
+ unsigned nelem;
+ void (*do_cut)(int fd);
+};
+
+// toys/posix/date.c
+
+struct date_data {
+ char *file;
+ char *setfmt;
+ char *showdate;
+
+ unsigned nano;
+};
+
+// toys/posix/df.c
+
+struct df_data {
+ struct arg_list *fstype;
+
+ long units;
+ int column_widths[5];
+ int header_shown;
+};
+
+// toys/posix/du.c
+
+struct du_data {
+ long maxdepth;
+
+ unsigned long depth, total;
+ dev_t st_dev;
+ void *inodes;
+};
+
+// toys/posix/env.c
+
+struct env_data {
+ struct arg_list *u;
+};;
+
+// toys/posix/expand.c
+
+struct expand_data {
+ struct arg_list *tabs;
+
+ unsigned tabcount, *tab;
+};
+
+// toys/posix/file.c
+
+struct file_data {
+ int max_name_len;
+};
+
+// toys/posix/find.c
+
+struct find_data {
+ char **filter;
+ struct double_list *argdata;
+ int topdir, xdev, depth;
+ time_t now;
+};
+
+// toys/posix/grep.c
+
+struct grep_data {
+ long m;
+ struct arg_list *f;
+ struct arg_list *e;
+ long a;
+ long b;
+ long c;
+ struct arg_list *M;
+ struct arg_list *S;
+
+ char indelim, outdelim;
+ int found;
+};
+
+// toys/posix/head.c
+
+struct head_data {
+ long bytes;
+ long lines;
+ int file_no;
+};
+
+// toys/posix/id.c
+
+struct id_data {
+ int is_groups;
+};
+
+// toys/posix/kill.c
+
+struct kill_data {
+ char *signame;
+ struct arg_list *olist;
+};
+
+// toys/posix/ls.c
+
+struct ls_data {
+ long ll;
+ char *color;
+
+ struct dirtree *files, *singledir;
+
+ unsigned screen_width;
+ int nl_title;
+ char *escmore;
+};
+
+// toys/posix/mkdir.c
+
+struct mkdir_data {
+ char *arg_mode;
+ char *arg_context;
+};
+
+// toys/posix/mkfifo.c
+
+struct mkfifo_data {
+ char *m_string;
+ char *Z;
+
+ mode_t mode;
+};
+
+// toys/posix/nice.c
+
+struct nice_data {
+ long priority;
+};
+
+// toys/posix/nl.c
+
+struct nl_data {
+ long w;
+ char *s;
+ char *n;
+ char *b;
+ long l;
+ long v;
+
+ // Count of consecutive blank lines for -l has to persist between files
+ long lcount;
+};
+
+// toys/posix/od.c
+
+struct od_data {
+ struct arg_list *output_base;
+ char *address_base;
+ long max_count;
+ long width;
+ long jump_bytes;
+
+ int address_idx;
+ unsigned types, leftover, star;
+ char *buf; // Points to buffers[0] or buffers[1].
+ char *bufs[2]; // Used to detect duplicate lines.
+ off_t pos;
+};
+
+// toys/posix/paste.c
+
+struct paste_data {
+ char *d;
+
+ int files;
+};
+
+// toys/posix/patch.c
+
+struct patch_data {
+ char *infile;
+ long prefix;
+ char *dir;
+
+ struct double_list *current_hunk;
+ long oldline, oldlen, newline, newlen;
+ long linenum;
+ int context, state, filein, fileout, filepatch, hunknum;
+ char *tempname;
+};
+
+// toys/posix/ps.c
+
+struct ps_data {
+ union {
+ struct {
+ struct arg_list *G;
+ struct arg_list *g;
+ struct arg_list *U;
+ struct arg_list *u;
+ struct arg_list *t;
+ struct arg_list *s;
+ struct arg_list *p;
+ struct arg_list *O;
+ struct arg_list *o;
+ struct arg_list *P;
+ struct arg_list *k;
+ } ps;
+ struct {
+ long n;
+ long d;
+ long s;
+ struct arg_list *u;
+ struct arg_list *p;
+ struct arg_list *o;
+ struct arg_list *k;
+ struct arg_list *O;
+ } top;
+ struct {
+ char *L;
+ struct arg_list *G;
+ struct arg_list *g;
+ struct arg_list *P;
+ struct arg_list *s;
+ struct arg_list *t;
+ struct arg_list *U;
+ struct arg_list *u;
+ char *d;
+
+ void *regexes, *snapshot;
+ int signal;
+ pid_t self, match;
+ } pgrep;
+ };
+
+ struct sysinfo si;
+ struct ptr_len gg, GG, pp, PP, ss, tt, uu, UU;
+ struct dirtree *threadparent;
+ unsigned width, height;
+ dev_t tty;
+ void *fields, *kfields;
+ long long ticks, bits, time;
+ int kcount, forcek, sortpos;
+ int (*match_process)(long long *slot);
+ void (*show_process)(void *tb);
+};
+
+// toys/posix/renice.c
+
+struct renice_data {
+ long nArgu;
+};
+
+// toys/posix/sed.c
+
+struct sed_data {
+ struct arg_list *f;
+ struct arg_list *e;
+
+ // processed pattern list
+ struct double_list *pattern;
+
+ char *nextline, *remember;
+ void *restart, *lastregex;
+ long nextlen, rememberlen, count;
+ int fdout, noeol;
+ unsigned xx;
+};
+
+// toys/posix/sort.c
+
+struct sort_data {
+ char *key_separator;
+ struct arg_list *raw_keys;
+ char *outfile;
+ char *ignore1, ignore2; // GNU compatability NOPs for -S and -T.
+
+ void *key_list;
+ int linecount;
+ char **lines;
+};
+
+// toys/posix/split.c
+
+struct split_data {
+ long lines;
+ long bytes;
+ long suflen;
+
+ char *outfile;
+};
+
+// toys/posix/strings.c
+
+struct strings_data {
+ long num;
+ char *t;
+};
+
+// toys/posix/tail.c
+
+struct tail_data {
+ long lines;
+ long bytes;
+
+ int file_no, ffd, *files;
+};
+
+// toys/posix/tee.c
+
+struct tee_data {
+ void *outputs;
+};
+
+// toys/posix/touch.c
+
+struct touch_data {
+ char *time;
+ char *file;
+ char *date;
+};
+
+// toys/posix/ulimit.c
+
+struct ulimit_data {
+ long pid;
+};
+
+// toys/posix/uniq.c
+
+struct uniq_data {
+ long maxchars;
+ long nchars;
+ long nfields;
+ long repeats;
+};
+
+// toys/posix/uudecode.c
+
+struct uudecode_data {
+ char *o;
+};
+
+// toys/posix/wc.c
+
+struct wc_data {
+ unsigned long totals[4];
+};
+
+// toys/posix/xargs.c
+
+struct xargs_data {
+ long max_bytes;
+ long max_entries;
+ long L;
+ char *eofstr;
+ char *I;
+
+ long entries, bytes;
+ char delim;
+};
+
+extern union global_union {
+ struct getprop_data getprop;
+ struct log_data log;
+ struct hello_data hello;
+ struct skeleton_data skeleton;
+ struct dmesg_data dmesg;
+ struct hostname_data hostname;
+ struct killall_data killall;
+ struct md5sum_data md5sum;
+ struct mknod_data mknod;
+ struct mktemp_data mktemp;
+ struct mount_data mount;
+ struct passwd_data passwd;
+ struct pidof_data pidof;
+ struct seq_data seq;
+ struct su_data su;
+ struct umount_data umount;
+ struct ftpget_data ftpget;
+ struct ifconfig_data ifconfig;
+ struct microcom_data microcom;
+ struct netcat_data netcat;
+ struct netstat_data netstat;
+ struct tunctl_data tunctl;
+ struct acpi_data acpi;
+ struct base64_data base64;
+ struct blockdev_data blockdev;
+ struct chrt_data chrt;
+ struct dos2unix_data dos2unix;
+ struct fallocate_data fallocate;
+ struct free_data free;
+ struct hexedit_data hexedit;
+ struct hwclock_data hwclock;
+ struct ionice_data ionice;
+ struct login_data login;
+ struct losetup_data losetup;
+ struct lspci_data lspci;
+ struct makedevs_data makedevs;
+ struct mix_data mix;
+ struct mkpasswd_data mkpasswd;
+ struct mkswap_data mkswap;
+ struct modinfo_data modinfo;
+ struct nsenter_data nsenter;
+ struct oneit_data oneit;
+ struct shred_data shred;
+ struct stat_data stat;
+ struct swapon_data swapon;
+ struct switch_root_data switch_root;
+ struct timeout_data timeout;
+ struct truncate_data truncate;
+ struct xxd_data xxd;
+ struct arp_data arp;
+ struct arping_data arping;
+ struct bootchartd_data bootchartd;
+ struct brctl_data brctl;
+ struct compress_data compress;
+ struct crond_data crond;
+ struct crontab_data crontab;
+ struct dd_data dd;
+ struct dhcp_data dhcp;
+ struct dhcp6_data dhcp6;
+ struct dhcpd_data dhcpd;
+ struct diff_data diff;
+ struct dumpleases_data dumpleases;
+ struct expr_data expr;
+ struct fdisk_data fdisk;
+ struct fold_data fold;
+ struct fsck_data fsck;
+ struct getfattr_data getfattr;
+ struct getty_data getty;
+ struct groupadd_data groupadd;
+ struct gzip_data gzip;
+ struct host_data host;
+ struct iconv_data iconv;
+ struct ip_data ip;
+ struct ipcrm_data ipcrm;
+ struct ipcs_data ipcs;
+ struct klogd_data klogd;
+ struct last_data last;
+ struct logger_data logger;
+ struct lsof_data lsof;
+ struct mke2fs_data mke2fs;
+ struct modprobe_data modprobe;
+ struct more_data more;
+ struct openvt_data openvt;
+ struct ping_data ping;
+ struct route_data route;
+ struct setfattr_data setfattr;
+ struct sh_data sh;
+ struct sulogin_data sulogin;
+ struct syslogd_data syslogd;
+ struct tar_data tar;
+ struct tcpsvd_data tcpsvd;
+ struct telnet_data telnet;
+ struct telnetd_data telnetd;
+ struct tftp_data tftp;
+ struct tftpd_data tftpd;
+ struct tr_data tr;
+ struct traceroute_data traceroute;
+ struct useradd_data useradd;
+ struct vi_data vi;
+ struct watch_data watch;
+ struct wget_data wget;
+ struct chgrp_data chgrp;
+ struct chmod_data chmod;
+ struct cksum_data cksum;
+ struct cmp_data cmp;
+ struct cp_data cp;
+ struct cpio_data cpio;
+ struct cut_data cut;
+ struct date_data date;
+ struct df_data df;
+ struct du_data du;
+ struct env_data env;
+ struct expand_data expand;
+ struct file_data file;
+ struct find_data find;
+ struct grep_data grep;
+ struct head_data head;
+ struct id_data id;
+ struct kill_data kill;
+ struct ls_data ls;
+ struct mkdir_data mkdir;
+ struct mkfifo_data mkfifo;
+ struct nice_data nice;
+ struct nl_data nl;
+ struct od_data od;
+ struct paste_data paste;
+ struct patch_data patch;
+ struct ps_data ps;
+ struct renice_data renice;
+ struct sed_data sed;
+ struct sort_data sort;
+ struct split_data split;
+ struct strings_data strings;
+ struct tail_data tail;
+ struct tee_data tee;
+ struct touch_data touch;
+ struct ulimit_data ulimit;
+ struct uniq_data uniq;
+ struct uudecode_data uudecode;
+ struct wc_data wc;
+ struct xargs_data xargs;
+} this;
--- /dev/null
- USE_DD(NEWTOY(dd, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+USE_TOYBOX(NEWTOY(toybox, NULL, TOYFLAG_STAYROOT))
+USE_SH(OLDTOY(-sh, sh, 0))
+USE_SH(OLDTOY(-toysh, sh, 0))
+USE_TRUE(OLDTOY(:, true, TOYFLAG_NOFORK|TOYFLAG_NOHELP))
+USE_ACPI(NEWTOY(acpi, "abctV", TOYFLAG_USR|TOYFLAG_BIN))
+USE_GROUPADD(OLDTOY(addgroup, groupadd, TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
+USE_USERADD(OLDTOY(adduser, useradd, TOYFLAG_NEEDROOT|TOYFLAG_UMASK|TOYFLAG_SBIN))
+USE_ARP(NEWTOY(arp, "vi:nDsdap:A:H:[+Ap][!sd]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_ARPING(NEWTOY(arping, "<1>1s:I:w#<0c#<0AUDbqf[+AU][+Df]", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_ASCII(NEWTOY(ascii, 0, TOYFLAG_USR|TOYFLAG_BIN))
+USE_BASE64(NEWTOY(base64, "diw#<0=76[!dw]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_BASENAME(NEWTOY(basename, "<1>2", TOYFLAG_USR|TOYFLAG_BIN))
+USE_BLKID(NEWTOY(blkid, 0, TOYFLAG_BIN))
+USE_BLOCKDEV(NEWTOY(blockdev, "<1>1(setro)(setrw)(getro)(getss)(getbsz)(setbsz)#<0(getsz)(getsize)(getsize64)(flushbufs)(rereadpt)",TOYFLAG_USR|TOYFLAG_BIN))
+USE_BOOTCHARTD(NEWTOY(bootchartd, 0, TOYFLAG_STAYROOT|TOYFLAG_USR|TOYFLAG_BIN))
+USE_BRCTL(NEWTOY(brctl, "<1", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_BUNZIP2(NEWTOY(bunzip2, "cftkv", TOYFLAG_USR|TOYFLAG_BIN))
+USE_BZCAT(NEWTOY(bzcat, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+USE_CAL(NEWTOY(cal, ">2", TOYFLAG_USR|TOYFLAG_BIN))
+USE_CAT(NEWTOY(cat, "u"USE_CAT_V("vte"), TOYFLAG_BIN))
+USE_CATV(NEWTOY(catv, USE_CATV("vte"), TOYFLAG_USR|TOYFLAG_BIN))
+USE_SH(NEWTOY(cd, NULL, TOYFLAG_NOFORK))
+USE_CHATTR(NEWTOY(chattr, NULL, TOYFLAG_BIN))
+USE_CHCON(NEWTOY(chcon, "<2hvR", TOYFLAG_USR|TOYFLAG_BIN))
+USE_CHGRP(NEWTOY(chgrp, "<2hPLHRfv[-HLP]", TOYFLAG_BIN))
+USE_CHMOD(NEWTOY(chmod, "<2?vRf[-vf]", TOYFLAG_BIN))
+USE_CHOWN(OLDTOY(chown, chgrp, TOYFLAG_BIN))
+USE_CHROOT(NEWTOY(chroot, "^<1", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_CHRT(NEWTOY(chrt, "^mp#<0iRbrfo[!ibrfo]", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_CHVT(NEWTOY(chvt, "<1", TOYFLAG_USR|TOYFLAG_BIN))
+USE_CKSUM(NEWTOY(cksum, "HIPLN", TOYFLAG_BIN))
+USE_CLEAR(NEWTOY(clear, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+USE_CMP(NEWTOY(cmp, "<2>2ls[!ls]", TOYFLAG_USR|TOYFLAG_BIN))
+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, "<2"USE_CP_PRESERVE("(preserve):;")"RHLPprdaslvnF(remove-destination)fi[-HLPd][-ni]", TOYFLAG_BIN))
+USE_CPIO(NEWTOY(cpio, "(no-preserve-owner)(trailer)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))
+USE_CUT(NEWTOY(cut, "b:|c:|f:|d:sn[!cbf]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_DATE(NEWTOY(date, "d:D:r:u[!dr]", TOYFLAG_BIN))
++USE_DD(NEWTOY(dd, 0, TOYFLAG_USR|TOYFLAG_BIN))
+USE_DEALLOCVT(NEWTOY(deallocvt, ">1", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_NEEDROOT))
+USE_GROUPDEL(OLDTOY(delgroup, groupdel, TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
+USE_USERDEL(OLDTOY(deluser, userdel, TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
+USE_DF(NEWTOY(df, "HPkht*a[-HPkh]", TOYFLAG_SBIN))
+USE_DHCP(NEWTOY(dhcp, "V:H:F:x*r:O*A#<0=20T#<0=3t#<0=3s:p:i:SBRCaovqnbf", TOYFLAG_SBIN|TOYFLAG_ROOTONLY))
+USE_DHCP6(NEWTOY(dhcp6, "r:A#<0T#<0t#<0s:p:i:SRvqnbf", TOYFLAG_SBIN|TOYFLAG_ROOTONLY))
+USE_DHCPD(NEWTOY(dhcpd, ">1P#<0>65535fi:S46[!46]", 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, "w(follow)CSTtrs#<1n#c[!Ttr][!Cc][!Sw]", TOYFLAG_BIN))
+USE_DOS2UNIX(NEWTOY(dos2unix, 0, TOYFLAG_BIN))
+USE_DU(NEWTOY(du, "d#<0hmlcaHkKLsx[-HL][-kKmh]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_DUMPLEASES(NEWTOY(dumpleases, ">0arf:[!ar]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_ECHO(NEWTOY(echo, "^?en", TOYFLAG_BIN))
+USE_EGREP(OLDTOY(egrep, grep, TOYFLAG_BIN))
+USE_EJECT(NEWTOY(eject, ">1stT[!tT]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_ENV(NEWTOY(env, "^0iu*", TOYFLAG_USR|TOYFLAG_BIN))
+USE_SH(NEWTOY(exit, NULL, TOYFLAG_NOFORK))
+USE_EXPAND(NEWTOY(expand, "t*", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
+USE_EXPR(NEWTOY(expr, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+USE_FACTOR(NEWTOY(factor, 0, TOYFLAG_USR|TOYFLAG_BIN))
+USE_FALLOCATE(NEWTOY(fallocate, ">1l#|o#", TOYFLAG_USR|TOYFLAG_BIN))
+USE_FALSE(NEWTOY(false, NULL, TOYFLAG_BIN|TOYFLAG_NOHELP))
+USE_FDISK(NEWTOY(fdisk, "C#<0H#<0S#<0b#<512ul", TOYFLAG_SBIN))
+USE_FGREP(OLDTOY(fgrep, grep, TOYFLAG_BIN))
+USE_FILE(NEWTOY(file, "<1hL[!hL]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_FIND(NEWTOY(find, "?^HL[-HL]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_FLOCK(NEWTOY(flock, "<1>1nsux[-sux]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_FOLD(NEWTOY(fold, "bsuw#<1", TOYFLAG_USR|TOYFLAG_BIN))
+USE_FREE(NEWTOY(free, "htgmkb[!htgmkb]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_FREERAMDISK(NEWTOY(freeramdisk, "<1>1", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
+USE_FSCK(NEWTOY(fsck, "?t:ANPRTVsC#", TOYFLAG_USR|TOYFLAG_BIN))
+USE_FSFREEZE(NEWTOY(fsfreeze, "<1>1f|u|[!fu]", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_FSTYPE(NEWTOY(fstype, "<1", TOYFLAG_BIN))
+USE_FSYNC(NEWTOY(fsync, "<1d", TOYFLAG_BIN))
+USE_FTPGET(NEWTOY(ftpget, "<2>3P:cp:u:vgslLmMdD[-gs][!gslLmMdD][!clL]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_FTPPUT(OLDTOY(ftpput, ftpget, TOYFLAG_USR|TOYFLAG_BIN))
+USE_GETENFORCE(NEWTOY(getenforce, ">0", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_GETFATTR(NEWTOY(getfattr, "dhn:", TOYFLAG_USR|TOYFLAG_BIN))
+USE_GETPROP(NEWTOY(getprop, ">2Z", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_GETTY(NEWTOY(getty, "<2t#<0H:I:l:f:iwnmLh",TOYFLAG_SBIN))
+USE_GREP(NEWTOY(grep, "S(exclude)*M(include)*C#B#A#ZzEFHabhinorsvwclqe*f*m#x[!wx][!EFw]", TOYFLAG_BIN))
+USE_GROUPADD(NEWTOY(groupadd, "<1>2g#<0S", TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
+USE_GROUPDEL(NEWTOY(groupdel, "<1>2", TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
+USE_GROUPS(NEWTOY(groups, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+USE_GUNZIP(NEWTOY(gunzip, "cdfk123456789", TOYFLAG_USR|TOYFLAG_BIN))
+USE_GZIP(NEWTOY(gzip, "cdfk123456789", TOYFLAG_USR|TOYFLAG_BIN))
+USE_REBOOT(OLDTOY(halt, reboot, TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
+USE_HEAD(NEWTOY(head, "?n#<0=10c#<0qv[-nc]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_HELLO(NEWTOY(hello, 0, TOYFLAG_USR|TOYFLAG_BIN))
+USE_HELP(NEWTOY(help, ""USE_HELP_EXTRAS("ah"), TOYFLAG_BIN))
+USE_HEXEDIT(NEWTOY(hexedit, "<1>1r", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
+USE_HOST(NEWTOY(host, "<1>2avt:", TOYFLAG_USR|TOYFLAG_BIN))
+USE_HOSTID(NEWTOY(hostid, ">0", TOYFLAG_USR|TOYFLAG_BIN))
+USE_HOSTNAME(NEWTOY(hostname, "bF:", TOYFLAG_BIN))
+USE_HWCLOCK(NEWTOY(hwclock, ">0(fast)f(rtc):u(utc)l(localtime)t(systz)s(hctosys)r(show)w(systohc)[-ul][!rtsw]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_ICONV(NEWTOY(iconv, "cst:f:", TOYFLAG_USR|TOYFLAG_BIN))
+USE_ID(NEWTOY(id, ">1"USE_ID_Z("Z")"nGgru[!"USE_ID_Z("Z")"Ggu]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_IFCONFIG(NEWTOY(ifconfig, "^?a", TOYFLAG_SBIN))
+USE_INIT(NEWTOY(init, "", TOYFLAG_SBIN))
+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>3=2n#<0>7=5p#", TOYFLAG_USR|TOYFLAG_BIN))
+USE_IORENICE(NEWTOY(iorenice, "?<1>3", TOYFLAG_USR|TOYFLAG_BIN))
+USE_IOTOP(NEWTOY(iotop, ">0AaKO" "k*o*p*u*s#<1=7d#=3<1n#<1bq", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_STAYROOT|TOYFLAG_LOCALE))
+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))
+USE_IPCS(NEWTOY(ipcs, "acptulsqmi#", TOYFLAG_USR|TOYFLAG_BIN))
+USE_IP(OLDTOY(iplink, ip, TOYFLAG_SBIN))
+USE_IP(OLDTOY(iproute, ip, TOYFLAG_SBIN))
+USE_IP(OLDTOY(iprule, ip, TOYFLAG_SBIN))
+USE_IP(OLDTOY(iptunnel, ip, TOYFLAG_SBIN))
+USE_KILL(NEWTOY(kill, "?ls: ", TOYFLAG_BIN))
+USE_KILLALL(NEWTOY(killall, "?s:lqvi", TOYFLAG_USR|TOYFLAG_BIN))
+USE_KILLALL5(NEWTOY(killall5, "?o*ls: [!lo][!ls]", TOYFLAG_SBIN))
+USE_KLOGD(NEWTOY(klogd, "c#<1>8n", TOYFLAG_SBIN))
+USE_LAST(NEWTOY(last, "f:W", TOYFLAG_BIN))
+USE_LINK(NEWTOY(link, "<2>2", TOYFLAG_USR|TOYFLAG_BIN))
+USE_LN(NEWTOY(ln, "<1vnfs", TOYFLAG_BIN))
+USE_LOAD_POLICY(NEWTOY(load_policy, "<1>1", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_LOG(NEWTOY(log, "<1p:t:", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_LOGGER(NEWTOY(logger, "st:p:", TOYFLAG_USR|TOYFLAG_BIN))
+USE_LOGIN(NEWTOY(login, ">1f:ph:", TOYFLAG_BIN|TOYFLAG_NEEDROOT))
+USE_LOGNAME(NEWTOY(logname, ">0", TOYFLAG_USR|TOYFLAG_BIN))
+USE_LOSETUP(NEWTOY(losetup, ">2S(sizelimit)#s(show)ro#j:fdca[!afj]", TOYFLAG_SBIN))
+USE_LS(NEWTOY(ls, USE_LS_COLOR("(color):;")"(full-time)(show-control-chars)ZgoACFHLRSabcdfhikl@mnpqrstux1[-Cxm1][-Cxml][-Cxmo][-Cxmg][-cu][-ftS][-HL][!qb]", TOYFLAG_BIN|TOYFLAG_LOCALE))
+USE_LSATTR(NEWTOY(lsattr, "vldaR", TOYFLAG_BIN))
+USE_LSMOD(NEWTOY(lsmod, NULL, TOYFLAG_SBIN))
+USE_LSOF(NEWTOY(lsof, "lp*t", TOYFLAG_USR|TOYFLAG_BIN))
+USE_LSPCI(NEWTOY(lspci, "emkn"USE_LSPCI_TEXT("@i:"), TOYFLAG_USR|TOYFLAG_BIN))
+USE_LSUSB(NEWTOY(lsusb, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+USE_MAKEDEVS(NEWTOY(makedevs, "<1>1d:", TOYFLAG_USR|TOYFLAG_BIN))
+USE_MD5SUM(NEWTOY(md5sum, "bc*[!bc]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_MDEV(NEWTOY(mdev, "s", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_UMASK))
+USE_MICROCOM(NEWTOY(microcom, "<1>1s:X", TOYFLAG_BIN))
+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, "<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>1L:", TOYFLAG_SBIN))
+USE_MKTEMP(NEWTOY(mktemp, ">1uqd(directory)p(tmpdir):", TOYFLAG_BIN))
+USE_MODINFO(NEWTOY(modinfo, "<1b:k:F:0", TOYFLAG_BIN))
+USE_MODPROBE(NEWTOY(modprobe, "alrqvsDbd*", TOYFLAG_SBIN))
+USE_MORE(NEWTOY(more, 0, TOYFLAG_USR|TOYFLAG_BIN))
+USE_MOUNT(NEWTOY(mount, "?O:afnrvwt:o*[-rw]", TOYFLAG_BIN|TOYFLAG_STAYROOT))
+USE_MOUNTPOINT(NEWTOY(mountpoint, "<1qdx[-dx]", TOYFLAG_BIN))
+USE_MV(NEWTOY(mv, "<2vnF(remove-destination)fi[-ni]", TOYFLAG_BIN))
+USE_NBD_CLIENT(OLDTOY(nbd-client, nbd_client, TOYFLAG_USR|TOYFLAG_BIN))
+USE_NBD_CLIENT(NEWTOY(nbd_client, "<3>3ns", 0))
+USE_NETCAT(OLDTOY(nc, netcat, TOYFLAG_USR|TOYFLAG_BIN))
+USE_NETCAT(NEWTOY(netcat, USE_NETCAT_LISTEN("^tlL")"w#W#p#s:q#f:"USE_NETCAT_LISTEN("[!tlL][!Lw]"), TOYFLAG_BIN))
+USE_NETSTAT(NEWTOY(netstat, "pWrxwutneal", TOYFLAG_BIN))
+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#vw#<1=16N#xsodcbA:t*", TOYFLAG_USR|TOYFLAG_BIN))
+USE_ONEIT(NEWTOY(oneit, "^<1nc:p3[!pn]", TOYFLAG_SBIN))
+USE_OPENVT(NEWTOY(openvt, "c#<1>63sw", TOYFLAG_BIN|TOYFLAG_NEEDROOT))
+USE_PARTPROBE(NEWTOY(partprobe, "<1", TOYFLAG_SBIN))
+USE_PASSWD(NEWTOY(passwd, ">1a:dlu", TOYFLAG_STAYROOT|TOYFLAG_USR|TOYFLAG_BIN))
+USE_PASTE(NEWTOY(paste, "d:s", TOYFLAG_BIN|TOYFLAG_LOCALE))
+USE_PATCH(NEWTOY(patch, "(dry-run)"USE_TOYBOX_DEBUG("x")"d:ulp#i:R", TOYFLAG_USR|TOYFLAG_BIN))
+USE_PGREP(NEWTOY(pgrep, "?cld:u*U*t*s*P*g*G*fnovxL:[-no]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_PIDOF(NEWTOY(pidof, "<1so:", TOYFLAG_BIN))
+USE_PING(NEWTOY(ping, "<1>1t#<0>255c#<0s#<0>65535I:W#<0w#<0q46[-46]", TOYFLAG_ROOTONLY|TOYFLAG_USR|TOYFLAG_BIN))
+USE_PIVOT_ROOT(NEWTOY(pivot_root, "<2>2", TOYFLAG_SBIN))
+USE_PKILL(NEWTOY(pkill, "?Vu*U*t*s*P*g*G*fnovxl:[-no]", TOYFLAG_USR|TOYFLAG_BIN))
+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_PS(NEWTOY(ps, "k(sort)*P(ppid)*aAdeflMno*O*p(pid)*s*t*Tu*U*g*G*wZ[!ol][+Ae][!oO]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
+USE_PWD(NEWTOY(pwd, ">0LP[-LP]", TOYFLAG_BIN))
+USE_PWDX(NEWTOY(pwdx, "<1a", TOYFLAG_USR|TOYFLAG_BIN))
+USE_READAHEAD(NEWTOY(readahead, NULL, TOYFLAG_BIN))
+USE_READLINK(NEWTOY(readlink, "<1>1fenq[-fe]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_REALPATH(NEWTOY(realpath, "<1", TOYFLAG_USR|TOYFLAG_BIN))
+USE_REBOOT(NEWTOY(reboot, "fn", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
+USE_RENICE(NEWTOY(renice, "<1gpun#|", TOYFLAG_USR|TOYFLAG_BIN))
+USE_RESET(NEWTOY(reset, 0, TOYFLAG_USR|TOYFLAG_BIN))
+USE_RESTORECON(NEWTOY(restorecon, "<1DFnRrv", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_REV(NEWTOY(rev, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+USE_RFKILL(NEWTOY(rfkill, "<1>2", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_RM(NEWTOY(rm, "fiRr[-fi]", TOYFLAG_BIN))
+USE_RMDIR(NEWTOY(rmdir, "<1p", TOYFLAG_BIN))
+USE_RMMOD(NEWTOY(rmmod, "<1wf", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
+USE_ROUTE(NEWTOY(route, "?neA:", TOYFLAG_BIN))
+USE_RUNCON(NEWTOY(runcon, "<2", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_SED(NEWTOY(sed, "(help)(version)e*f*inEr[+Er]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE|TOYFLAG_NOHELP))
+USE_SENDEVENT(NEWTOY(sendevent, "<4>4", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_SEQ(NEWTOY(seq, "<1>3?f:s:w[!fw]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_SETENFORCE(NEWTOY(setenforce, "<1>1", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_SETFATTR(NEWTOY(setfattr, "hn:|v:x:|[!xv]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_SETPROP(NEWTOY(setprop, "<2>2", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_SETSID(NEWTOY(setsid, "^<1t", TOYFLAG_USR|TOYFLAG_BIN))
+USE_SH(NEWTOY(sh, "c:i", TOYFLAG_BIN))
+USE_SHA1SUM(NEWTOY(sha1sum, "bc*[!bc]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_SHA224SUM(OLDTOY(sha224sum, sha1sum, TOYFLAG_USR|TOYFLAG_BIN))
+USE_SHA256SUM(OLDTOY(sha256sum, sha1sum, TOYFLAG_USR|TOYFLAG_BIN))
+USE_SHA384SUM(OLDTOY(sha384sum, sha1sum, TOYFLAG_USR|TOYFLAG_BIN))
+USE_SHA512SUM(OLDTOY(sha512sum, sha1sum, TOYFLAG_USR|TOYFLAG_BIN))
+USE_SHRED(NEWTOY(shred, "<1zxus#<1n#<1o#<0f", TOYFLAG_USR|TOYFLAG_BIN))
+USE_SKELETON(NEWTOY(skeleton, "(walrus)(blubber):;(also):e@d*c#b:a", TOYFLAG_USR|TOYFLAG_BIN))
+USE_SKELETON_ALIAS(NEWTOY(skeleton_alias, "b#dq", TOYFLAG_USR|TOYFLAG_BIN))
+USE_SLEEP(NEWTOY(sleep, "<1", TOYFLAG_BIN))
+USE_SORT(NEWTOY(sort, USE_SORT_FLOAT("g")USE_SORT_BIG("S:T:m" "o:k*t:xbMcszdfi") "run", TOYFLAG_USR|TOYFLAG_BIN))
+USE_SPLIT(NEWTOY(split, ">2a#<1=2>9b#<1l#<1[!bl]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_START(NEWTOY(start, "", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_STAT(NEWTOY(stat, "<1c:fLt", TOYFLAG_BIN))
+USE_STOP(NEWTOY(stop, "", TOYFLAG_USR|TOYFLAG_SBIN))
+USE_STRINGS(NEWTOY(strings, "t:an#=4<1fo", TOYFLAG_USR|TOYFLAG_BIN))
+USE_SU(NEWTOY(su, "lmpc:s:", TOYFLAG_BIN|TOYFLAG_ROOTONLY))
+USE_SULOGIN(NEWTOY(sulogin, "t#<0=0", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
+USE_SWAPOFF(NEWTOY(swapoff, "<1>1", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
+USE_SWAPON(NEWTOY(swapon, "<1>1p#<0>32767d", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
+USE_SWITCH_ROOT(NEWTOY(switch_root, "<2c:h", TOYFLAG_SBIN))
+USE_SYNC(NEWTOY(sync, NULL, TOYFLAG_BIN))
+USE_SYSCTL(NEWTOY(sysctl, "^neNqwpaA[!ap][!aq][!aw][+aA]", TOYFLAG_SBIN))
+USE_SYSLOGD(NEWTOY(syslogd,">0l#<1>8=8R:b#<0>99=1s#<0=200m#<0>71582787=20O:p:f:a:nSKLD", TOYFLAG_SBIN|TOYFLAG_STAYROOT))
+USE_TAC(NEWTOY(tac, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+USE_TAIL(NEWTOY(tail, "?fc-n-[-cn]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_TAR(NEWTOY(tar, "&(no-recursion)(numeric-owner)(no-same-permissions)(overwrite)(exclude)*(to-command):o(no-same-owner)p(same-permissions)k(keep-old)c(create)|h(dereference)x(extract)|t(list)|v(verbose)j(bzip2)z(gzip)O(to-stdout)m(touch)X(exclude-from)*T(files-from)*C(directory):f(file):[!txc][!jz]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_TASKSET(NEWTOY(taskset, "<1^pa", TOYFLAG_BIN|TOYFLAG_STAYROOT))
+USE_TCPSVD(NEWTOY(tcpsvd, "^<3c#=30<1C:b#=20<0u:l:hEv", TOYFLAG_USR|TOYFLAG_BIN))
+USE_TEE(NEWTOY(tee, "ia", TOYFLAG_USR|TOYFLAG_BIN))
+USE_TELNET(NEWTOY(telnet, "<1>2", TOYFLAG_BIN))
+USE_TELNETD(NEWTOY(telnetd, "w#<0b:p#<0>65535=23f:l:FSKi[!wi]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_TEST(NEWTOY(test, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+USE_TEST_HUMAN_READABLE(NEWTOY(test_human_readable, "<1>1ibs", TOYFLAG_BIN))
+USE_TEST_MANY_OPTIONS(NEWTOY(test_many_options, "ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba", TOYFLAG_BIN))
+USE_TEST_SCANKEY(NEWTOY(test_scankey, 0, TOYFLAG_BIN))
+USE_TFTP(NEWTOY(tftp, "<1b#<8>65464r:l:g|p|[!gp]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_TFTPD(NEWTOY(tftpd, "rcu:l", TOYFLAG_BIN))
+USE_TIME(NEWTOY(time, "<1^p", TOYFLAG_USR|TOYFLAG_BIN))
+USE_TIMEOUT(NEWTOY(timeout, "<2^vk:s: ", TOYFLAG_BIN))
+USE_TOP(NEWTOY(top, ">0m" "O*Hk*o*p*u*s#<1d#=3<1n#<1bq[!oO]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
+USE_TOUCH(NEWTOY(touch, "<1acd:mr:t:h[!dtr]", TOYFLAG_BIN))
+USE_SH(OLDTOY(toysh, sh, TOYFLAG_BIN))
+USE_TR(NEWTOY(tr, "^>2<1Ccsd[+cC]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_TRACEROUTE(NEWTOY(traceroute, "<1>2i:f#<1>255=1z#<0>86400=0g*w#<0>86400=5t#<0>255=0s:q#<1>255=3p#<1>65535=33434m#<1>255=30rvndlIUF64", TOYFLAG_STAYROOT|TOYFLAG_USR|TOYFLAG_BIN))
+USE_TRACEROUTE(OLDTOY(traceroute6,traceroute, TOYFLAG_STAYROOT|TOYFLAG_USR|TOYFLAG_BIN))
+USE_TRUE(NEWTOY(true, NULL, TOYFLAG_BIN|TOYFLAG_NOHELP))
+USE_TRUNCATE(NEWTOY(truncate, "<1s:|c", TOYFLAG_BIN))
+USE_TTY(NEWTOY(tty, "s", TOYFLAG_USR|TOYFLAG_BIN))
+USE_TUNCTL(NEWTOY(tunctl, "<1>1t|d|u:T[!td]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_TCPSVD(OLDTOY(udpsvd, tcpsvd, TOYFLAG_USR|TOYFLAG_BIN))
+USE_ULIMIT(NEWTOY(ulimit, ">1P#<1SHavutsrRqpnmlifedc[-SH][!apvutsrRqnmlifedc]", TOYFLAG_USR|TOYFLAG_BIN))
+USE_UMOUNT(NEWTOY(umount, "ndDflrat*v[!na]", TOYFLAG_BIN|TOYFLAG_STAYROOT))
+USE_UNAME(NEWTOY(uname, "oamvrns[+os]", TOYFLAG_BIN))
+USE_UNIQ(NEWTOY(uniq, "f#s#w#zicdu", TOYFLAG_USR|TOYFLAG_BIN))
+USE_UNIX2DOS(NEWTOY(unix2dos, 0, TOYFLAG_BIN))
+USE_UNLINK(NEWTOY(unlink, "<1>1", TOYFLAG_USR|TOYFLAG_BIN))
+USE_UNSHARE(NEWTOY(unshare, "<1^f(fork);r(map-root-user);i:(ipc);m:(mount);n:(net);p:(pid);u:(uts);U:(user);", TOYFLAG_USR|TOYFLAG_BIN))
+USE_UPTIME(NEWTOY(uptime, ">0s", TOYFLAG_USR|TOYFLAG_BIN))
+USE_USERADD(NEWTOY(useradd, "<1>2u#<0G:s:g:h:SDH", TOYFLAG_NEEDROOT|TOYFLAG_UMASK|TOYFLAG_SBIN))
+USE_USERDEL(NEWTOY(userdel, "<1>1r", TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
+USE_USLEEP(NEWTOY(usleep, "<1", TOYFLAG_BIN))
+USE_UUDECODE(NEWTOY(uudecode, ">1o:", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_UMASK))
+USE_UUENCODE(NEWTOY(uuencode, "<1>2m", TOYFLAG_USR|TOYFLAG_BIN))
+USE_VCONFIG(NEWTOY(vconfig, "<2>4", TOYFLAG_NEEDROOT|TOYFLAG_SBIN))
+USE_VI(NEWTOY(vi, "<1>1", TOYFLAG_USR|TOYFLAG_BIN))
+USE_VMSTAT(NEWTOY(vmstat, ">2n", TOYFLAG_BIN))
+USE_W(NEWTOY(w, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+USE_WATCH(NEWTOY(watch, "^<1n#<0=2te", TOYFLAG_USR|TOYFLAG_BIN))
+USE_WC(NEWTOY(wc, "mcwl", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
+USE_WGET(NEWTOY(wget, "f:", TOYFLAG_USR|TOYFLAG_BIN))
+USE_WHICH(NEWTOY(which, "<1a", TOYFLAG_USR|TOYFLAG_BIN))
+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=2prs#[!rs]", 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, "cdfk123456789", TOYFLAG_USR|TOYFLAG_BIN))