OSDN Git Service

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