1 // toys/android/getprop.c
2 
3 struct getprop_data {
4   size_t size;
5   char **nv; // name/value pairs: even=name, odd=value
6   struct selabel_handle *handle;
7 };
8 
9 // toys/example/hello.c
10 
11 struct hello_data {
12   int unused;
13 };
14 
15 // toys/example/skeleton.c
16 
17 struct skeleton_data {
18   union {
19     struct {
20       char *b_string;
21       long c_number;
22       struct arg_list *d_list;
23       long e_count;
24       char *also_string;
25       char *blubber_string;
26     } s;
27     struct {
28       long b_number;
29     } a;
30   };
31 
32   int more_globals;
33 };
34 
35 // toys/lsb/dmesg.c
36 
37 struct dmesg_data {
38   long level;
39   long size;
40 };
41 
42 // toys/lsb/killall.c
43 
44 struct killall_data {
45   char *sig;
46 
47   int signum;
48   pid_t cur_pid;
49   char **names;
50   short *err;
51 };
52 
53 // toys/lsb/md5sum.c
54 
55 struct md5sum_data {
56   unsigned state[5];
57   unsigned oldstate[5];
58   uint64_t count;
59   union {
60     char c[64];
61     unsigned i[16];
62   } buffer;
63 };
64 
65 // toys/lsb/mknod.c
66 
67 struct mknod_data {
68   char *arg_context;
69   char *m;
70 };
71 
72 // toys/lsb/mktemp.c
73 
74 struct mktemp_data {
75   char *tmpdir;
76 };
77 
78 // toys/lsb/mount.c
79 
80 struct mount_data {
81   struct arg_list *optlist;
82   char *type;
83   char *bigO;
84 
85   unsigned long flags;
86   char *opts;
87   int okuser;
88 };
89 
90 // toys/lsb/passwd.c
91 
92 struct passwd_data {
93   char *algo;
94 };
95 
96 // toys/lsb/pidof.c
97 
98 struct pidof_data {
99   char *omit;
100 };
101 
102 // toys/lsb/seq.c
103 
104 struct seq_data {
105   char *sep;
106   char *fmt;
107 };
108 
109 // toys/lsb/su.c
110 
111 struct su_data {
112   char *s;
113   char *c;
114 };
115 
116 // toys/lsb/umount.c
117 
118 struct umount_data {
119   struct arg_list *t;
120 
121   char *types;
122 };
123 
124 // toys/other/acpi.c
125 
126 struct acpi_data {
127   int ac, bat, therm, cool;
128   char *cpath;
129 };
130 
131 // toys/other/base64.c
132 
133 struct base64_data {
134   long columns;
135 };
136 
137 // toys/other/blockdev.c
138 
139 struct blockdev_data {
140   long bsz;
141 };
142 
143 // toys/other/dos2unix.c
144 
145 struct dos2unix_data {
146   char *tempfile;
147 };
148 
149 // toys/other/fallocate.c
150 
151 struct fallocate_data {
152   long size;
153 };
154 
155 // toys/other/free.c
156 
157 struct free_data {
158   unsigned bits;
159   unsigned long long units;
160   char *buf;
161 };
162 
163 // toys/other/hexedit.c
164 
165 struct hexedit_data {
166   char *data;
167   long long len, base;
168   int numlen, undo, undolen;
169   unsigned height;
170 };
171 
172 // toys/other/hwclock.c
173 
174 struct hwclock_data {
175   char *fname;
176 
177   int utc;
178 };
179 
180 // toys/other/ifconfig.c
181 
182 struct ifconfig_data {
183   int sockfd;
184 };
185 
186 // toys/other/ionice.c
187 
188 struct ionice_data {
189   long pid;
190   long level;
191   long class;
192 };
193 
194 // toys/other/login.c
195 
196 struct login_data {
197   char *hostname;
198   char *username;
199 
200   int login_timeout, login_fail_timeout;
201 };
202 
203 // toys/other/losetup.c
204 
205 struct losetup_data {
206   char *jfile;
207   long offset;
208   long size;
209 
210   int openflags;
211   dev_t jdev;
212   ino_t jino;
213 };
214 
215 // toys/other/lspci.c
216 
217 struct lspci_data {
218   char *ids;
219   long numeric;
220 
221   FILE *db;
222 };
223 
224 // toys/other/makedevs.c
225 
226 struct makedevs_data {
227   char *fname;
228 };
229 
230 // toys/other/mix.c
231 
232 struct mix_data {
233    long right;
234    long level;
235    char *dev;
236    char *chan;
237 };
238 
239 // toys/other/mkpasswd.c
240 
241 struct mkpasswd_data {
242   long pfd;
243   char *method;
244   char *salt;
245 };
246 
247 // toys/other/mkswap.c
248 
249 struct mkswap_data {
250   char *L;
251 };
252 
253 // toys/other/modinfo.c
254 
255 struct modinfo_data {
256   char *field;
257   char *knam;
258   char *base;
259 
260   long mod;
261 };
262 
263 // toys/other/netcat.c
264 
265 struct netcat_data {
266   char *filename;        // -f read from filename instead of network
267   long quit_delay;       // -q Exit after EOF from stdin after # seconds.
268   char *source_address;  // -s Bind to a specific source address.
269   long port;             // -p Bind to a specific source port.
270   long wait;             // -w Wait # seconds for a connection.
271 };
272 
273 // toys/other/nsenter.c
274 
275 struct nsenter_data {
276   char *nsnames[6];
277   long targetpid;
278 };
279 
280 // toys/other/oneit.c
281 
282 struct oneit_data {
283   char *console;
284 };
285 
286 // toys/other/shred.c
287 
288 struct shred_data {
289   long offset;
290   long iterations;
291   long size;
292 
293   int ufd;
294 };
295 
296 // toys/other/stat.c
297 
298 struct stat_data {
299   char *fmt;
300 
301   union {
302     struct stat st;
303     struct statfs sf;
304   } stat;
305   struct passwd *user_name;
306   struct group *group_name;
307 };
308 
309 // toys/other/swapon.c
310 
311 struct swapon_data {
312   long priority;
313 };
314 
315 // toys/other/switch_root.c
316 
317 struct switch_root_data {
318   char *console;
319 
320   dev_t rootdev;
321 };
322 
323 // toys/other/timeout.c
324 
325 struct timeout_data {
326   char *s_signal;
327   char *k_timeout;
328 
329   int nextsig;
330   pid_t pid;
331   struct timeval ktv;
332   struct itimerval itv;
333 };
334 
335 // toys/other/truncate.c
336 
337 struct truncate_data {
338   char *s;
339 
340   long size;
341   int type;
342 };
343 
344 // toys/other/xxd.c
345 
346 struct xxd_data {
347   long g;
348   long l;
349   long c;
350 };
351 
352 // toys/pending/arp.c
353 
354 struct arp_data {
355     char *hw_type;
356     char *af_type_A;
357     char *af_type_p;
358     char *interface;
359 
360     int sockfd;
361     char *device;
362 };
363 
364 // toys/pending/arping.c
365 
366 struct arping_data {
367     long count;
368     unsigned long time_out;
369     char *iface;
370     char *src_ip;
371 
372     int sockfd;
373     unsigned long start, end;
374     unsigned sent_at, sent_nr, rcvd_nr, brd_sent, rcvd_req, brd_rcv,
375              unicast_flag;
376 };
377 
378 // toys/pending/bootchartd.c
379 
380 struct bootchartd_data {
381   char buf[32];
382   long smpl_period_usec;
383   int proc_accounting;
384   int is_login;
385 
386   void *head;
387 };
388 
389 // toys/pending/brctl.c
390 
391 struct brctl_data {
392     int sockfd;
393 };
394 
395 // toys/pending/compress.c
396 
397 struct compress_data {
398   // Huffman codes: base offset and extra bits tables (length and distance)
399   char lenbits[29], distbits[30];
400   unsigned short lenbase[29], distbase[30];
401   void *fixdisthuff, *fixlithuff;
402 
403   // CRC
404   void (*crcfunc)(char *data, int len);
405   unsigned crc;
406 
407   // Compressed data buffer
408   char *data;
409   unsigned pos, len;
410   int infd, outfd;
411 
412   // Tables only used for deflation
413   unsigned short *hashhead, *hashchain;
414 };
415 
416 // toys/pending/crond.c
417 
418 struct crond_data {
419   char *crontabs_dir;
420   char *logfile;
421   int loglevel_d;
422   int loglevel;
423 
424   time_t crontabs_dir_mtime;
425   uint8_t flagd;
426 };
427 
428 // toys/pending/crontab.c
429 
430 struct crontab_data {
431   char *user;
432   char *cdir;
433 };
434 
435 // toys/pending/dd.c
436 
437 struct dd_data {
438   int sig;
439 };
440 
441 // toys/pending/dhcp.c
442 
443 struct dhcp_data {
444     char *iface;
445     char *pidfile;
446     char *script;
447     long retries;
448     long timeout;
449     long tryagain;
450     struct arg_list *req_opt;
451     char *req_ip;
452     struct arg_list *pkt_opt;
453     char *fdn_name;
454     char *hostname;
455     char *vendor_cls;
456 };
457 
458 // toys/pending/dhcp6.c
459 
460 struct dhcp6_data {
461   char *interface_name, *pidfile, *script;
462   long retry, timeout, errortimeout;
463   char *req_ip;
464   int length, state, request_length, sock, sock1, status, retval, retries;
465   struct timeval tv;
466   uint8_t transction_id[3];
467   struct sockaddr_in6 input_socket6;
468 };
469 
470 // toys/pending/dhcpd.c
471 
472 struct dhcpd_data {
473     char *iface;
474     long port;
475 };;
476 
477 // toys/pending/diff.c
478 
479 struct diff_data {
480   long ct;
481   char *start;
482   struct arg_list *L_list;
483 
484   int dir_num, size, is_binary, status, change, len[2];
485   int *offset[2];
486 };
487 
488 // toys/pending/dumpleases.c
489 
490 struct dumpleases_data {
491     char *file;
492 };
493 
494 // toys/pending/expr.c
495 
496 struct expr_data {
497   int argidx;
498 };
499 
500 // toys/pending/fdisk.c
501 
502 struct fdisk_data {
503   long sect_sz;
504   long sectors;
505   long heads;
506   long cylinders;
507 };
508 
509 // toys/pending/file.c
510 
511 struct file_data {
512   int max_name_len;
513 };
514 
515 // toys/pending/fold.c
516 
517 struct fold_data {
518   int width;
519 };
520 
521 // toys/pending/fsck.c
522 
523 struct fsck_data {
524   int fd_num;
525   char *t_list;
526 
527   struct double_list *devices;
528   char *arr_flag;
529   char **arr_type;
530   int negate;
531   int sum_status;
532   int nr_run;
533   int sig_num;
534   long max_nr_run;
535 };
536 
537 // toys/pending/ftpget.c
538 
539 struct ftpget_data {
540   long port; //  char *port;
541   char *password;
542   char *username;
543 
544   FILE *sockfp;
545   int c;
546   int isget;
547   char buf[sizeof(struct sockaddr_storage)];
548 };
549 
550 // toys/pending/getty.c
551 
552 struct getty_data {
553   char *issue_str;
554   char *login_str;
555   char *init_str;
556   char *host_str;
557   long timeout;
558 
559   char *tty_name;
560   int  speeds[20];
561   int  sc;
562   struct termios termios;
563   char buff[128];
564 };
565 
566 // toys/pending/groupadd.c
567 
568 struct groupadd_data {
569   long gid;
570 };
571 
572 // toys/pending/host.c
573 
574 struct host_data {
575   char *type_str;
576 };
577 
578 // toys/pending/iconv.c
579 
580 struct iconv_data {
581   char *from;
582   char *to;
583 
584   void *ic;
585 };
586 
587 // toys/pending/ip.c
588 
589 struct ip_data {
590   char stats, singleline, flush, *filter_dev, gbuf[8192];
591   int sockfd, connected, from_ok, route_cmd;
592   int8_t addressfamily, is_addr;
593 };
594 
595 // toys/pending/ipcrm.c
596 
597 struct ipcrm_data {
598   struct arg_list *qkey;
599   struct arg_list *qid;
600   struct arg_list *skey;
601   struct arg_list *sid;
602   struct arg_list *mkey;
603   struct arg_list *mid;
604 };
605 
606 // toys/pending/ipcs.c
607 
608 struct ipcs_data {
609   int id;
610 };
611 
612 // toys/pending/klogd.c
613 
614 struct klogd_data {
615   long level;
616 
617   int fd;
618 };
619 
620 // toys/pending/last.c
621 
622 struct last_data {
623   char *file;
624 
625   struct arg_list *list;
626 };
627 
628 // toys/pending/logger.c
629 
630 struct logger_data {
631   char *priority_arg;
632   char *ident;
633 };
634 
635 // toys/pending/lsof.c
636 
637 struct lsof_data {
638   char *pids;
639 
640   struct stat *sought_files;
641 
642   struct double_list *files;
643   int last_shown_pid;
644   int shown_header;
645 };
646 
647 // toys/pending/mke2fs.c
648 
649 struct mke2fs_data {
650   // Command line arguments.
651   long blocksize;
652   long bytes_per_inode;
653   long inodes;           // Total inodes in filesystem.
654   long reserved_percent; // Integer precent of space to reserve for root.
655   char *gendir;          // Where to read dirtree from.
656 
657   // Internal data.
658   struct dirtree *dt;    // Tree of files to copy into the new filesystem.
659   unsigned treeblocks;   // Blocks used by dt
660   unsigned treeinodes;   // Inodes used by dt
661 
662   unsigned blocks;       // Total blocks in the filesystem.
663   unsigned freeblocks;   // Free blocks in the filesystem.
664   unsigned inodespg;     // Inodes per group
665   unsigned groups;       // Total number of block groups.
666   unsigned blockbits;    // Bits per block.  (Also blocks per group.)
667 
668   // For gene2fs
669   unsigned nextblock;    // Next data block to allocate
670   unsigned nextgroup;    // Next group we'll be allocating from
671   int fsfd;              // File descriptor of filesystem (to output to).
672 
673   struct ext2_superblock sb;
674 };
675 
676 // toys/pending/modprobe.c
677 
678 struct modprobe_data {
679   struct arg_list *probes;
680   struct arg_list *dbase[256];
681   char *cmdopts;
682   int nudeps;
683   uint8_t symreq;
684   void (*dbg)(char *format, ...);
685 };
686 
687 // toys/pending/more.c
688 
689 struct more_data {
690   struct termios inf;
691   int cin_fd;
692 };
693 
694 // toys/pending/netstat.c
695 
696 struct netstat_data {
697   char current_name[21];
698   int some_process_unidentified;
699 };;
700 
701 // toys/pending/openvt.c
702 
703 struct openvt_data {
704   unsigned long vt_num;
705 };
706 
707 // toys/pending/ping.c
708 
709 struct ping_data {
710   long wait_exit;
711   long wait_resp;
712   char *iface;
713   long size;
714   long count;
715   long ttl;
716 
717   int sock;
718 };
719 
720 // toys/pending/route.c
721 
722 struct route_data {
723   char *family;
724 };
725 
726 // toys/pending/sh.c
727 
728 struct sh_data {
729   char *command;
730 };
731 
732 // toys/pending/sulogin.c
733 
734 struct sulogin_data {
735   long timeout;
736   struct termios crntio;
737 };
738 
739 // toys/pending/syslogd.c
740 
741 struct syslogd_data {
742   char *socket;
743   char *config_file;
744   char *unix_socket;
745   char *logfile;
746   long interval;
747   long rot_size;
748   long rot_count;
749   char *remote_log;
750   long log_prio;
751 
752   struct unsocks *lsocks;  // list of listen sockets
753   struct logfile *lfiles;  // list of write logfiles
754   int sigfd[2];
755 };
756 
757 // toys/pending/tar.c
758 
759 struct tar_data {
760   char *fname;
761   char *dir;
762   struct arg_list *inc_file;
763   struct arg_list *exc_file;
764   char *tocmd;
765   struct arg_list *exc;
766 
767   struct arg_list *inc, *pass;
768   void *inodes, *handle;
769 };
770 
771 // toys/pending/tcpsvd.c
772 
773 struct tcpsvd_data {
774   char *name;
775   char *user;
776   long bn;
777   char *nmsg;
778   long cn;
779 
780   int maxc;
781   int count_all;
782   int udp;
783 };
784 
785 // toys/pending/telnet.c
786 
787 struct telnet_data {
788   int port;
789   int sfd;
790   char buff[128];
791   int pbuff;
792   char iac[256];
793   int piac;
794   char *ttype;
795   struct termios def_term;
796   struct termios raw_term;
797   uint8_t term_ok;
798   uint8_t term_mode;
799   uint8_t flags;
800   unsigned win_width;
801   unsigned win_height;
802 };
803 
804 // toys/pending/telnetd.c
805 
806 struct telnetd_data {
807     char *login_path;
808     char *issue_path;
809     int port;
810     char *host_addr;
811     long w_sec;
812 
813     int gmax_fd;
814     pid_t fork_pid;
815 };
816 
817 // toys/pending/tftp.c
818 
819 struct tftp_data {
820   char *local_file;
821   char *remote_file;
822   long block_size;
823 
824   struct sockaddr_storage inaddr;
825   int af;
826 };
827 
828 // toys/pending/tftpd.c
829 
830 struct tftpd_data {
831   char *user;
832 
833   long sfd;
834   struct passwd *pw;
835 };
836 
837 // toys/pending/tr.c
838 
839 struct tr_data {
840   short map[256]; //map of chars
841   int len1, len2;
842 };
843 
844 // toys/pending/traceroute.c
845 
846 struct traceroute_data {
847   long max_ttl;
848   long port;
849   long ttl_probes;
850   char *src_ip;
851   long tos;
852   long wait_time;
853   struct arg_list *loose_source;
854   long pause_time;
855   long first_ttl;
856   char *iface;
857 
858   uint32_t gw_list[9];
859   int recv_sock;
860   int snd_sock;
861   unsigned msg_len;
862   char *packet;
863   uint32_t ident;
864   int istraceroute6;
865 };
866 
867 // toys/pending/useradd.c
868 
869 struct useradd_data {
870   char *dir;
871   char *gecos;
872   char *shell;
873   char *u_grp;
874   long uid;
875 
876   long gid;
877 };
878 
879 // toys/pending/vi.c
880 
881 struct vi_data {
882   struct linestack *ls;
883   char *statline;
884 };
885 
886 // toys/pending/watch.c
887 
888 struct watch_data {
889   int interval;
890 };
891 
892 // toys/posix/chgrp.c
893 
894 struct chgrp_data {
895   uid_t owner;
896   gid_t group;
897   char *owner_name, *group_name;
898   int symfollow;
899 };
900 
901 // toys/posix/chmod.c
902 
903 struct chmod_data {
904   char *mode;
905 };
906 
907 // toys/posix/cksum.c
908 
909 struct cksum_data {
910   unsigned crc_table[256];
911 };
912 
913 // toys/posix/cmp.c
914 
915 struct cmp_data {
916   int fd;
917   char *name;
918 };
919 
920 // toys/posix/cp.c
921 
922 struct cp_data {
923   union {
924     struct {
925       // install's options
926       char *group;
927       char *user;
928       char *mode;
929     } i;
930     struct {
931       char *preserve;
932     } c;
933   };
934 
935   char *destname;
936   struct stat top;
937   int (*callback)(struct dirtree *try);
938   uid_t uid;
939   gid_t gid;
940   int pflags;
941 };
942 
943 // toys/posix/cpio.c
944 
945 struct cpio_data {
946   char *archive;
947   char *pass;
948   char *fmt;
949 };
950 
951 // toys/posix/cut.c
952 
953 struct cut_data {
954   char *delim;
955   char *flist;
956   char *clist;
957   char *blist;
958 
959   void *slist_head;
960   unsigned nelem;
961   void (*do_cut)(int fd);
962 };
963 
964 // toys/posix/date.c
965 
966 struct date_data {
967   char *file;
968   char *setfmt;
969   char *showdate;
970 
971   char *tz;
972   unsigned nano;
973 };
974 
975 // toys/posix/df.c
976 
977 struct df_data {
978   struct arg_list *fstype;
979 
980   long units;
981   int column_widths[5];
982   int header_shown;
983 };
984 
985 // toys/posix/du.c
986 
987 struct du_data {
988   long maxdepth;
989 
990   long depth, total;
991   dev_t st_dev;
992   void *inodes;
993 };
994 
995 // toys/posix/env.c
996 
997 struct env_data {
998   struct arg_list *u;
999 };;
1000 
1001 // toys/posix/expand.c
1002 
1003 struct expand_data {
1004   struct arg_list *tabs;
1005 
1006   unsigned tabcount, *tab;
1007 };
1008 
1009 // toys/posix/find.c
1010 
1011 struct find_data {
1012   char **filter;
1013   struct double_list *argdata;
1014   int topdir, xdev, depth;
1015   time_t now;
1016 };
1017 
1018 // toys/posix/grep.c
1019 
1020 struct grep_data {
1021   long m;
1022   struct arg_list *f;
1023   struct arg_list *e;
1024   long a;
1025   long b;
1026   long c;
1027 
1028   char indelim, outdelim;
1029 };
1030 
1031 // toys/posix/head.c
1032 
1033 struct head_data {
1034   long lines;
1035   int file_no;
1036 };
1037 
1038 // toys/posix/id.c
1039 
1040 struct id_data {
1041   int is_groups;
1042 };
1043 
1044 // toys/posix/kill.c
1045 
1046 struct kill_data {
1047   char *signame;
1048   struct arg_list *olist;
1049 };
1050 
1051 // toys/posix/ls.c
1052 
1053 struct ls_data {
1054   char *color;
1055 
1056   struct dirtree *files, *singledir;
1057 
1058   unsigned screen_width;
1059   int nl_title;
1060   char uid_buf[12], gid_buf[12];
1061 };
1062 
1063 // toys/posix/mkdir.c
1064 
1065 struct mkdir_data {
1066   char *arg_mode;
1067   char *arg_context;
1068 };
1069 
1070 // toys/posix/mkfifo.c
1071 
1072 struct mkfifo_data {
1073   char *m_string;
1074   char *Z;
1075 
1076   mode_t mode;
1077 };
1078 
1079 // toys/posix/nice.c
1080 
1081 struct nice_data {
1082   long priority;
1083 };
1084 
1085 // toys/posix/nl.c
1086 
1087 struct nl_data {
1088   long w;
1089   char *s;
1090   char *n;
1091   char *b;
1092   long l;
1093   long v;
1094 
1095   // Count of consecutive blank lines for -l has to persist between files
1096   long lcount;
1097 };
1098 
1099 // toys/posix/od.c
1100 
1101 struct od_data {
1102   struct arg_list *output_base;
1103   char *address_base;
1104   long max_count;
1105   long jump_bytes;
1106 
1107   int address_idx;
1108   unsigned types, leftover, star;
1109   char *buf;
1110   uint64_t bufs[4]; // force 64-bit alignment
1111   off_t pos;
1112 };
1113 
1114 // toys/posix/paste.c
1115 
1116 struct paste_data {
1117   char *delim;
1118 };
1119 
1120 // toys/posix/patch.c
1121 
1122 struct patch_data {
1123   char *infile;
1124   long prefix;
1125 
1126   struct double_list *current_hunk;
1127   long oldline, oldlen, newline, newlen;
1128   long linenum;
1129   int context, state, filein, fileout, filepatch, hunknum;
1130   char *tempname;
1131 };
1132 
1133 // toys/posix/ps.c
1134 
1135 struct ps_data {
1136   union {
1137     struct {
1138       struct arg_list *G;
1139       struct arg_list *g;
1140       struct arg_list *U;
1141       struct arg_list *u;
1142       struct arg_list *t;
1143       struct arg_list *s;
1144       struct arg_list *p;
1145       struct arg_list *O;
1146       struct arg_list *o;
1147       struct arg_list *P;
1148       struct arg_list *k;
1149     } ps;
1150     struct {
1151       long n;
1152       long d;
1153       long s;
1154       struct arg_list *u;
1155       struct arg_list *p;
1156       struct arg_list *o;
1157       struct arg_list *k;
1158     } top;
1159     struct{
1160       char *L;
1161       struct arg_list *G;
1162       struct arg_list *g;
1163       struct arg_list *P;
1164       struct arg_list *s;
1165       struct arg_list *t;
1166       struct arg_list *U;
1167       struct arg_list *u;
1168       char *d;
1169 
1170       void *regexes, *snapshot;
1171       int signal;
1172       pid_t self, match;
1173     } pgrep;
1174   };
1175 
1176   struct sysinfo si;
1177   struct ptr_len gg, GG, pp, PP, ss, tt, uu, UU;
1178   unsigned width, height;
1179   dev_t tty;
1180   void *fields, *kfields;
1181   long long ticks, bits, time;
1182   int kcount, forcek, sortpos;
1183   int (*match_process)(long long *slot);
1184   void (*show_process)(void *tb);
1185 };
1186 
1187 // toys/posix/renice.c
1188 
1189 struct renice_data {
1190   long nArgu;
1191 };
1192 
1193 // toys/posix/sed.c
1194 
1195 struct sed_data {
1196   struct arg_list *f;
1197   struct arg_list *e;
1198 
1199   // processed pattern list
1200   struct double_list *pattern;
1201 
1202   char *nextline, *remember;
1203   void *restart, *lastregex;
1204   long nextlen, rememberlen, count;
1205   int fdout, noeol;
1206   unsigned xx;
1207 };
1208 
1209 // toys/posix/sort.c
1210 
1211 struct sort_data {
1212   char *key_separator;
1213   struct arg_list *raw_keys;
1214   char *outfile;
1215   char *ignore1, ignore2;   // GNU compatability NOPs for -S and -T.
1216 
1217   void *key_list;
1218   int linecount;
1219   char **lines;
1220 };
1221 
1222 // toys/posix/split.c
1223 
1224 struct split_data {
1225   long lines;
1226   long bytes;
1227   long suflen;
1228 
1229   char *outfile;
1230 };
1231 
1232 // toys/posix/strings.c
1233 
1234 struct strings_data {
1235   long num;
1236 };
1237 
1238 // toys/posix/tail.c
1239 
1240 struct tail_data {
1241   long lines;
1242   long bytes;
1243 
1244   int file_no, ffd, *files;
1245 };
1246 
1247 // toys/posix/tee.c
1248 
1249 struct tee_data {
1250   void *outputs;
1251 };
1252 
1253 // toys/posix/touch.c
1254 
1255 struct touch_data {
1256   char *time;
1257   char *file;
1258   char *date;
1259 };
1260 
1261 // toys/posix/ulimit.c
1262 
1263 struct ulimit_data {
1264   long pid;
1265 };
1266 
1267 // toys/posix/uniq.c
1268 
1269 struct uniq_data {
1270   long maxchars;
1271   long nchars;
1272   long nfields;
1273   long repeats;
1274 };
1275 
1276 // toys/posix/uudecode.c
1277 
1278 struct uudecode_data {
1279   char *o;
1280 };
1281 
1282 // toys/posix/wc.c
1283 
1284 struct wc_data {
1285   unsigned long totals[3];
1286 };
1287 
1288 // toys/posix/xargs.c
1289 
1290 struct xargs_data {
1291   long max_bytes;
1292   long max_entries;
1293   long L;
1294   char *eofstr;
1295   char *I;
1296 
1297   long entries, bytes;
1298   char delim;
1299 };
1300 
1301 extern union global_union {
1302 	struct getprop_data getprop;
1303 	struct hello_data hello;
1304 	struct skeleton_data skeleton;
1305 	struct dmesg_data dmesg;
1306 	struct killall_data killall;
1307 	struct md5sum_data md5sum;
1308 	struct mknod_data mknod;
1309 	struct mktemp_data mktemp;
1310 	struct mount_data mount;
1311 	struct passwd_data passwd;
1312 	struct pidof_data pidof;
1313 	struct seq_data seq;
1314 	struct su_data su;
1315 	struct umount_data umount;
1316 	struct acpi_data acpi;
1317 	struct base64_data base64;
1318 	struct blockdev_data blockdev;
1319 	struct dos2unix_data dos2unix;
1320 	struct fallocate_data fallocate;
1321 	struct free_data free;
1322 	struct hexedit_data hexedit;
1323 	struct hwclock_data hwclock;
1324 	struct ifconfig_data ifconfig;
1325 	struct ionice_data ionice;
1326 	struct login_data login;
1327 	struct losetup_data losetup;
1328 	struct lspci_data lspci;
1329 	struct makedevs_data makedevs;
1330 	struct mix_data mix;
1331 	struct mkpasswd_data mkpasswd;
1332 	struct mkswap_data mkswap;
1333 	struct modinfo_data modinfo;
1334 	struct netcat_data netcat;
1335 	struct nsenter_data nsenter;
1336 	struct oneit_data oneit;
1337 	struct shred_data shred;
1338 	struct stat_data stat;
1339 	struct swapon_data swapon;
1340 	struct switch_root_data switch_root;
1341 	struct timeout_data timeout;
1342 	struct truncate_data truncate;
1343 	struct xxd_data xxd;
1344 	struct arp_data arp;
1345 	struct arping_data arping;
1346 	struct bootchartd_data bootchartd;
1347 	struct brctl_data brctl;
1348 	struct compress_data compress;
1349 	struct crond_data crond;
1350 	struct crontab_data crontab;
1351 	struct dd_data dd;
1352 	struct dhcp_data dhcp;
1353 	struct dhcp6_data dhcp6;
1354 	struct dhcpd_data dhcpd;
1355 	struct diff_data diff;
1356 	struct dumpleases_data dumpleases;
1357 	struct expr_data expr;
1358 	struct fdisk_data fdisk;
1359 	struct file_data file;
1360 	struct fold_data fold;
1361 	struct fsck_data fsck;
1362 	struct ftpget_data ftpget;
1363 	struct getty_data getty;
1364 	struct groupadd_data groupadd;
1365 	struct host_data host;
1366 	struct iconv_data iconv;
1367 	struct ip_data ip;
1368 	struct ipcrm_data ipcrm;
1369 	struct ipcs_data ipcs;
1370 	struct klogd_data klogd;
1371 	struct last_data last;
1372 	struct logger_data logger;
1373 	struct lsof_data lsof;
1374 	struct mke2fs_data mke2fs;
1375 	struct modprobe_data modprobe;
1376 	struct more_data more;
1377 	struct netstat_data netstat;
1378 	struct openvt_data openvt;
1379 	struct ping_data ping;
1380 	struct route_data route;
1381 	struct sh_data sh;
1382 	struct sulogin_data sulogin;
1383 	struct syslogd_data syslogd;
1384 	struct tar_data tar;
1385 	struct tcpsvd_data tcpsvd;
1386 	struct telnet_data telnet;
1387 	struct telnetd_data telnetd;
1388 	struct tftp_data tftp;
1389 	struct tftpd_data tftpd;
1390 	struct tr_data tr;
1391 	struct traceroute_data traceroute;
1392 	struct useradd_data useradd;
1393 	struct vi_data vi;
1394 	struct watch_data watch;
1395 	struct chgrp_data chgrp;
1396 	struct chmod_data chmod;
1397 	struct cksum_data cksum;
1398 	struct cmp_data cmp;
1399 	struct cp_data cp;
1400 	struct cpio_data cpio;
1401 	struct cut_data cut;
1402 	struct date_data date;
1403 	struct df_data df;
1404 	struct du_data du;
1405 	struct env_data env;
1406 	struct expand_data expand;
1407 	struct find_data find;
1408 	struct grep_data grep;
1409 	struct head_data head;
1410 	struct id_data id;
1411 	struct kill_data kill;
1412 	struct ls_data ls;
1413 	struct mkdir_data mkdir;
1414 	struct mkfifo_data mkfifo;
1415 	struct nice_data nice;
1416 	struct nl_data nl;
1417 	struct od_data od;
1418 	struct paste_data paste;
1419 	struct patch_data patch;
1420 	struct ps_data ps;
1421 	struct renice_data renice;
1422 	struct sed_data sed;
1423 	struct sort_data sort;
1424 	struct split_data split;
1425 	struct strings_data strings;
1426 	struct tail_data tail;
1427 	struct tee_data tee;
1428 	struct touch_data touch;
1429 	struct ulimit_data ulimit;
1430 	struct uniq_data uniq;
1431 	struct uudecode_data uudecode;
1432 	struct wc_data wc;
1433 	struct xargs_data xargs;
1434 } this;
1435