OSDN Git Service

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