OSDN Git Service

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