OSDN Git Service

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