blob: d183b1f9d77ed7cacc2c08c52aa62883fd3a0142 [file] [log] [blame]
Elliott Hughes85cda1a2015-04-08 10:53:59 -07001// toys/android/getprop.c
2
3struct getprop_data {
4 size_t size;
Elliott Hughes10a5d412015-05-03 18:48:57 -07005 char **nv; // name/value pairs: even=name, odd=value
Elliott Hughesbae185a2016-02-19 21:37:17 -08006 struct selabel_handle *handle;
Elliott Hughes85cda1a2015-04-08 10:53:59 -07007};
8
Elliott Hughes0803f532016-06-22 10:26:11 -07009// toys/android/log.c
10
11struct log_data {
12 char *tag;
13 char *pri;
14};
15
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -080016// toys/example/hello.c
17
18struct hello_data {
19 int unused;
20};
21
22// toys/example/skeleton.c
23
24struct 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
Elliott Hughes2737fdf2016-05-04 13:42:18 -070042// toys/lsb/hostname.c
43
44struct hostname_data {
45 char *fname;
46};
47
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -080048// toys/lsb/killall.c
49
50struct killall_data {
51 char *sig;
52
53 int signum;
54 pid_t cur_pid;
55 char **names;
56 short *err;
57};
58
59// toys/lsb/md5sum.c
60
61struct md5sum_data {
Elliott Hughesa126e5f2016-07-15 10:14:33 -070062 struct arg_list *c;
63
64 int sawline;
65
66 // Crypto variables blanked after summing
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -080067 unsigned state[5];
68 unsigned oldstate[5];
69 uint64_t count;
70 union {
71 char c[64];
72 unsigned i[16];
73 } buffer;
74};
75
Elliott Hughes40d36f22015-03-11 13:37:18 -070076// toys/lsb/mknod.c
77
78struct mknod_data {
Elliott Hughese3764cc2015-07-06 18:09:49 -070079 char *arg_context;
Elliott Hughes40d36f22015-03-11 13:37:18 -070080 char *m;
81};
82
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -080083// toys/lsb/mktemp.c
84
85struct mktemp_data {
Elliott Hughesbf65a2e2015-02-09 12:14:46 -080086 char *tmpdir;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -080087};
88
89// toys/lsb/mount.c
90
91struct mount_data {
92 struct arg_list *optlist;
93 char *type;
94 char *bigO;
95
96 unsigned long flags;
97 char *opts;
98 int okuser;
99};
100
101// toys/lsb/passwd.c
102
103struct passwd_data {
104 char *algo;
105};
106
107// toys/lsb/pidof.c
108
109struct pidof_data {
110 char *omit;
111};
112
113// toys/lsb/seq.c
114
115struct seq_data {
116 char *sep;
117 char *fmt;
118};
119
120// toys/lsb/su.c
121
122struct su_data {
123 char *s;
124 char *c;
125};
126
127// toys/lsb/umount.c
128
129struct umount_data {
130 struct arg_list *t;
131
132 char *types;
133};
134
Elliott Hughes7a497532017-01-15 11:24:30 -0800135// toys/net/ftpget.c
136
137struct ftpget_data {
138 char *user;
139 char *port;
140 char *password;
141
142 int fd;
143};
144
Elliott Hughese7b74ae2016-07-07 17:02:37 -0700145// toys/net/ifconfig.c
146
147struct ifconfig_data {
148 int sockfd;
149};
150
Elliott Hughescae44952017-01-25 20:07:12 -0800151// toys/net/microcom.c
152
153struct microcom_data {
154 char *s;
155
156 int fd;
157 struct termios original_stdin_state, original_fd_state;
158};
159
Elliott Hughese7b74ae2016-07-07 17:02:37 -0700160// toys/net/netcat.c
161
162struct netcat_data {
163 char *filename; // -f read from filename instead of network
164 long quit_delay; // -q Exit after EOF from stdin after # seconds.
165 char *source_address; // -s Bind to a specific source address.
166 long port; // -p Bind to a specific source port.
Elliott Hughes5e9108a2016-10-19 17:03:06 -0700167 long idle; // -W Wait # seconds for more data
Elliott Hughese7b74ae2016-07-07 17:02:37 -0700168 long wait; // -w Wait # seconds for a connection.
169};
170
171// toys/net/netstat.c
172
173struct netstat_data {
174 struct num_cache *inodes;
175 int wpad;
176};;
177
Elliott Hughes5d83f7a2016-08-29 08:26:36 -0700178// toys/net/tunctl.c
179
180struct tunctl_data {
181 char *user;
182};
183
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800184// toys/other/acpi.c
185
186struct acpi_data {
Elliott Hughes97809c22015-08-07 13:57:10 -0700187 int ac, bat, therm, cool;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800188 char *cpath;
189};
190
Elliott Hughes14862232014-12-18 17:55:47 -0800191// toys/other/base64.c
192
193struct base64_data {
194 long columns;
Elliott Hughes06108e62016-03-07 14:00:54 -0800195
196 unsigned total;
Elliott Hughes14862232014-12-18 17:55:47 -0800197};
198
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800199// toys/other/blockdev.c
200
201struct blockdev_data {
202 long bsz;
203};
204
Elliott Hughes3233e2f2017-05-25 14:16:21 -0700205// toys/other/chrt.c
206
207struct chrt_data {
208 long pid;
209};
210
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800211// toys/other/dos2unix.c
212
213struct dos2unix_data {
214 char *tempfile;
215};
216
217// toys/other/fallocate.c
218
219struct fallocate_data {
Elliott Hughes991623d2016-10-26 09:51:00 -0700220 long offset;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800221 long size;
222};
223
224// toys/other/free.c
225
226struct free_data {
227 unsigned bits;
228 unsigned long long units;
Elliott Hughesfc9e18a2015-12-11 17:31:26 -0800229 char *buf;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800230};
231
Elliott Hughes584c6542015-05-15 16:26:09 -0700232// toys/other/hexedit.c
233
234struct hexedit_data {
235 char *data;
236 long long len, base;
Elliott Hughese3764cc2015-07-06 18:09:49 -0700237 int numlen, undo, undolen;
Elliott Hughes584c6542015-05-15 16:26:09 -0700238 unsigned height;
239};
240
Elliott Hughes718f34d2015-07-10 18:02:00 -0700241// toys/other/hwclock.c
242
243struct hwclock_data {
244 char *fname;
245
246 int utc;
247};
248
Elliott Hughese3764cc2015-07-06 18:09:49 -0700249// toys/other/ionice.c
250
251struct ionice_data {
252 long pid;
253 long level;
254 long class;
255};
256
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800257// toys/other/login.c
258
259struct login_data {
260 char *hostname;
Elliott Hughes97809c22015-08-07 13:57:10 -0700261 char *username;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800262
263 int login_timeout, login_fail_timeout;
264};
265
266// toys/other/losetup.c
267
268struct losetup_data {
269 char *jfile;
270 long offset;
271 long size;
272
273 int openflags;
274 dev_t jdev;
275 ino_t jino;
276};
277
278// toys/other/lspci.c
279
280struct lspci_data {
281 char *ids;
282 long numeric;
283
284 FILE *db;
285};
286
287// toys/other/makedevs.c
288
289struct makedevs_data {
290 char *fname;
291};
292
Elliott Hughes4ac9dd62015-01-14 17:00:35 -0800293// toys/other/mix.c
294
295struct mix_data {
296 long right;
297 long level;
298 char *dev;
299 char *chan;
300};
301
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800302// toys/other/mkpasswd.c
303
304struct mkpasswd_data {
305 long pfd;
306 char *method;
307 char *salt;
308};
309
Elliott Hughesa729fc82016-01-20 20:41:02 -0800310// toys/other/mkswap.c
311
312struct mkswap_data {
313 char *L;
314};
315
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800316// toys/other/modinfo.c
317
318struct modinfo_data {
319 char *field;
320 char *knam;
321 char *base;
322
323 long mod;
324};
325
Elliott Hughesbf65a2e2015-02-09 12:14:46 -0800326// toys/other/nsenter.c
327
328struct nsenter_data {
329 char *nsnames[6];
330 long targetpid;
331};
332
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800333// toys/other/oneit.c
334
335struct oneit_data {
336 char *console;
337};
338
Elliott Hughes53a43da2014-12-11 17:05:54 -0800339// toys/other/shred.c
340
341struct shred_data {
342 long offset;
343 long iterations;
344 long size;
345
346 int ufd;
347};
348
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800349// toys/other/stat.c
350
351struct stat_data {
352 char *fmt;
353
354 union {
355 struct stat st;
356 struct statfs sf;
357 } stat;
Elliott Hughesa0637ce2016-08-22 13:45:55 -0700358 char *file, *pattern;
359 int patlen;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800360};
361
362// toys/other/swapon.c
363
364struct swapon_data {
365 long priority;
366};
367
368// toys/other/switch_root.c
369
370struct switch_root_data {
371 char *console;
372
373 dev_t rootdev;
374};
375
376// toys/other/timeout.c
377
378struct timeout_data {
379 char *s_signal;
380 char *k_timeout;
381
382 int nextsig;
383 pid_t pid;
384 struct timeval ktv;
385 struct itimerval itv;
386};
387
388// toys/other/truncate.c
389
390struct truncate_data {
Elliott Hughes10a5d412015-05-03 18:48:57 -0700391 char *s;
392
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800393 long size;
Elliott Hughes10a5d412015-05-03 18:48:57 -0700394 int type;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800395};
396
Elliott Hughese3764cc2015-07-06 18:09:49 -0700397// toys/other/xxd.c
398
399struct xxd_data {
Elliott Hughese7b74ae2016-07-07 17:02:37 -0700400 long s;
Elliott Hughese3764cc2015-07-06 18:09:49 -0700401 long g;
402 long l;
403 long c;
404};
405
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800406// toys/pending/arp.c
407
408struct arp_data {
409 char *hw_type;
410 char *af_type_A;
411 char *af_type_p;
412 char *interface;
413
414 int sockfd;
415 char *device;
416};
417
418// toys/pending/arping.c
419
420struct arping_data {
421 long count;
422 unsigned long time_out;
423 char *iface;
424 char *src_ip;
425
426 int sockfd;
Elliott Hughes0cad3b12015-10-06 14:31:35 -0700427 unsigned long start, end;
428 unsigned sent_at, sent_nr, rcvd_nr, brd_sent, rcvd_req, brd_rcv,
429 unicast_flag;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800430};
431
432// toys/pending/bootchartd.c
433
434struct bootchartd_data {
435 char buf[32];
436 long smpl_period_usec;
437 int proc_accounting;
438 int is_login;
439
440 void *head;
441};
442
443// toys/pending/brctl.c
444
445struct brctl_data {
446 int sockfd;
447};
448
449// toys/pending/compress.c
450
451struct compress_data {
Elliott Hughes7fcfbe72014-12-02 19:07:14 -0800452 // Huffman codes: base offset and extra bits tables (length and distance)
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800453 char lenbits[29], distbits[30];
454 unsigned short lenbase[29], distbase[30];
455 void *fixdisthuff, *fixlithuff;
456
Elliott Hughes7fcfbe72014-12-02 19:07:14 -0800457 // CRC
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800458 void (*crcfunc)(char *data, int len);
Elliott Hughes7fcfbe72014-12-02 19:07:14 -0800459 unsigned crc;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800460
Elliott Hughes7fcfbe72014-12-02 19:07:14 -0800461 // Compressed data buffer
462 char *data;
463 unsigned pos, len;
Elliott Hughes53a43da2014-12-11 17:05:54 -0800464 int infd, outfd;
Elliott Hughes7fcfbe72014-12-02 19:07:14 -0800465
466 // Tables only used for deflation
Elliott Hughes53a43da2014-12-11 17:05:54 -0800467 unsigned short *hashhead, *hashchain;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800468};
469
470// toys/pending/crond.c
471
472struct crond_data {
473 char *crontabs_dir;
474 char *logfile;
475 int loglevel_d;
476 int loglevel;
477
478 time_t crontabs_dir_mtime;
479 uint8_t flagd;
480};
481
482// toys/pending/crontab.c
483
484struct crontab_data {
485 char *user;
486 char *cdir;
487};
488
489// toys/pending/dd.c
490
491struct dd_data {
Elliott Hughes5bb7e252016-07-11 11:44:51 -0700492 int show_xfer;
493 int show_records;
494 unsigned long long bytes, c_count, in_full, in_part, out_full, out_part;
495 struct timeval start;
496 struct {
497 char *name;
498 int fd;
499 unsigned char *buff, *bp;
500 long sz, count;
501 unsigned long long offset;
502 } in, out;
503};;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800504
505// toys/pending/dhcp.c
506
507struct dhcp_data {
508 char *iface;
509 char *pidfile;
510 char *script;
511 long retries;
512 long timeout;
513 long tryagain;
514 struct arg_list *req_opt;
515 char *req_ip;
516 struct arg_list *pkt_opt;
517 char *fdn_name;
518 char *hostname;
519 char *vendor_cls;
520};
521
Elliott Hughese39ad552015-11-12 20:22:57 -0800522// toys/pending/dhcp6.c
523
524struct dhcp6_data {
525 char *interface_name, *pidfile, *script;
526 long retry, timeout, errortimeout;
527 char *req_ip;
528 int length, state, request_length, sock, sock1, status, retval, retries;
529 struct timeval tv;
530 uint8_t transction_id[3];
531 struct sockaddr_in6 input_socket6;
532};
533
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800534// toys/pending/dhcpd.c
535
536struct dhcpd_data {
Elliott Hughese3764cc2015-07-06 18:09:49 -0700537 char *iface;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800538 long port;
539};;
540
541// toys/pending/diff.c
542
543struct diff_data {
544 long ct;
545 char *start;
546 struct arg_list *L_list;
547
548 int dir_num, size, is_binary, status, change, len[2];
549 int *offset[2];
550};
551
Elliott Hughes7c3d7b12017-02-20 20:29:13 -0800552// toys/pending/dmesg.c
553
554struct dmesg_data {
555 long level;
556 long size;
557
Elliott Hughesbd30a7b2017-04-04 10:47:54 -0700558 int use_color;
559 struct sysinfo info;
Elliott Hughes7c3d7b12017-02-20 20:29:13 -0800560};
561
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800562// toys/pending/dumpleases.c
563
564struct dumpleases_data {
565 char *file;
566};
567
568// toys/pending/expr.c
569
570struct expr_data {
Elliott Hughesfafe4272016-03-30 10:20:45 -0700571 char **tok; // current token, not on the stack since recursive calls mutate it
572
573 char *refree;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800574};
575
576// toys/pending/fdisk.c
577
578struct fdisk_data {
579 long sect_sz;
580 long sectors;
581 long heads;
582 long cylinders;
583};
584
585// toys/pending/fold.c
586
587struct fold_data {
588 int width;
589};
590
591// toys/pending/fsck.c
592
593struct fsck_data {
594 int fd_num;
595 char *t_list;
596
597 struct double_list *devices;
598 char *arr_flag;
599 char **arr_type;
600 int negate;
601 int sum_status;
602 int nr_run;
603 int sig_num;
604 long max_nr_run;
605};
606
Elliott Hughesa1ce46b2016-08-02 09:08:31 -0700607// toys/pending/getfattr.c
608
609struct getfattr_data {
610 char *n;
611};
612
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800613// toys/pending/getty.c
614
615struct getty_data {
616 char *issue_str;
617 char *login_str;
618 char *init_str;
619 char *host_str;
620 long timeout;
621
622 char *tty_name;
623 int speeds[20];
624 int sc;
625 struct termios termios;
626 char buff[128];
627};
628
629// toys/pending/groupadd.c
630
631struct groupadd_data {
632 long gid;
633};
634
Elliott Hughesc5a1dd42017-05-02 11:34:07 -0700635// toys/pending/gzip.c
636
637struct gzip_data {
638 int level;
639};
640
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800641// toys/pending/host.c
642
643struct host_data {
644 char *type_str;
645};
646
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800647// toys/pending/iconv.c
648
649struct iconv_data {
650 char *from;
651 char *to;
652
653 void *ic;
654};
655
656// toys/pending/ip.c
657
658struct ip_data {
659 char stats, singleline, flush, *filter_dev, gbuf[8192];
660 int sockfd, connected, from_ok, route_cmd;
661 int8_t addressfamily, is_addr;
662};
663
664// toys/pending/ipcrm.c
665
666struct ipcrm_data {
667 struct arg_list *qkey;
668 struct arg_list *qid;
669 struct arg_list *skey;
670 struct arg_list *sid;
671 struct arg_list *mkey;
672 struct arg_list *mid;
673};
674
675// toys/pending/ipcs.c
676
677struct ipcs_data {
678 int id;
679};
680
681// toys/pending/klogd.c
682
683struct klogd_data {
684 long level;
685
686 int fd;
687};
688
689// toys/pending/last.c
690
691struct last_data {
692 char *file;
693
694 struct arg_list *list;
695};
696
697// toys/pending/logger.c
698
699struct logger_data {
700 char *priority_arg;
701 char *ident;
702};
703
Elliott Hughesecd3df92015-09-11 10:50:35 -0700704// toys/pending/lsof.c
705
706struct lsof_data {
Elliott Hughes77e56de2016-02-29 16:14:51 -0800707 struct arg_list *p;
Elliott Hughesecd3df92015-09-11 10:50:35 -0700708
709 struct stat *sought_files;
710
Elliott Hughesfafe4272016-03-30 10:20:45 -0700711 struct double_list *all_sockets;
Elliott Hughesecd3df92015-09-11 10:50:35 -0700712 struct double_list *files;
713 int last_shown_pid;
714 int shown_header;
715};
716
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800717// toys/pending/mke2fs.c
718
719struct mke2fs_data {
720 // Command line arguments.
721 long blocksize;
722 long bytes_per_inode;
723 long inodes; // Total inodes in filesystem.
724 long reserved_percent; // Integer precent of space to reserve for root.
725 char *gendir; // Where to read dirtree from.
726
727 // Internal data.
728 struct dirtree *dt; // Tree of files to copy into the new filesystem.
729 unsigned treeblocks; // Blocks used by dt
730 unsigned treeinodes; // Inodes used by dt
731
732 unsigned blocks; // Total blocks in the filesystem.
733 unsigned freeblocks; // Free blocks in the filesystem.
734 unsigned inodespg; // Inodes per group
735 unsigned groups; // Total number of block groups.
736 unsigned blockbits; // Bits per block. (Also blocks per group.)
737
738 // For gene2fs
739 unsigned nextblock; // Next data block to allocate
740 unsigned nextgroup; // Next group we'll be allocating from
741 int fsfd; // File descriptor of filesystem (to output to).
742
743 struct ext2_superblock sb;
744};
745
746// toys/pending/modprobe.c
747
748struct modprobe_data {
Elliott Hughes7cfb1c62017-01-29 12:50:42 -0800749 struct arg_list *dirs;
750
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800751 struct arg_list *probes;
752 struct arg_list *dbase[256];
753 char *cmdopts;
754 int nudeps;
755 uint8_t symreq;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800756};
757
758// toys/pending/more.c
759
760struct more_data {
761 struct termios inf;
762 int cin_fd;
763};
764
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800765// toys/pending/openvt.c
766
767struct openvt_data {
768 unsigned long vt_num;
769};
770
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800771// toys/pending/ping.c
772
773struct ping_data {
774 long wait_exit;
775 long wait_resp;
776 char *iface;
777 long size;
778 long count;
779 long ttl;
780
781 int sock;
782};
783
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800784// toys/pending/route.c
785
786struct route_data {
787 char *family;
788};
789
Elliott Hughesfb3ebf82016-10-22 09:12:59 -0700790// toys/pending/setfattr.c
791
792struct setfattr_data {
793 char *x, *v, *n;
794};
795
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800796// toys/pending/sh.c
797
798struct sh_data {
799 char *command;
Elliott Hughesbba047d2016-04-22 08:34:27 -0700800
801 long lineno;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800802};
803
804// toys/pending/sulogin.c
805
806struct sulogin_data {
807 long timeout;
808 struct termios crntio;
809};
810
811// toys/pending/syslogd.c
812
813struct syslogd_data {
814 char *socket;
815 char *config_file;
816 char *unix_socket;
817 char *logfile;
818 long interval;
819 long rot_size;
820 long rot_count;
821 char *remote_log;
822 long log_prio;
823
824 struct unsocks *lsocks; // list of listen sockets
825 struct logfile *lfiles; // list of write logfiles
826 int sigfd[2];
827};
828
829// toys/pending/tar.c
830
831struct tar_data {
832 char *fname;
833 char *dir;
834 struct arg_list *inc_file;
835 struct arg_list *exc_file;
836 char *tocmd;
837 struct arg_list *exc;
838
839 struct arg_list *inc, *pass;
840 void *inodes, *handle;
841};
842
843// toys/pending/tcpsvd.c
844
845struct tcpsvd_data {
846 char *name;
847 char *user;
848 long bn;
849 char *nmsg;
850 long cn;
851
852 int maxc;
853 int count_all;
854 int udp;
855};
856
857// toys/pending/telnet.c
858
859struct telnet_data {
860 int port;
861 int sfd;
862 char buff[128];
863 int pbuff;
864 char iac[256];
865 int piac;
866 char *ttype;
867 struct termios def_term;
868 struct termios raw_term;
869 uint8_t term_ok;
870 uint8_t term_mode;
871 uint8_t flags;
872 unsigned win_width;
873 unsigned win_height;
874};
875
876// toys/pending/telnetd.c
877
878struct telnetd_data {
879 char *login_path;
880 char *issue_path;
881 int port;
882 char *host_addr;
883 long w_sec;
884
885 int gmax_fd;
886 pid_t fork_pid;
887};
888
Elliott Hughes97809c22015-08-07 13:57:10 -0700889// toys/pending/tftp.c
890
891struct tftp_data {
892 char *local_file;
893 char *remote_file;
894 long block_size;
895
896 struct sockaddr_storage inaddr;
897 int af;
898};
899
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800900// toys/pending/tftpd.c
901
902struct tftpd_data {
903 char *user;
904
905 long sfd;
906 struct passwd *pw;
907};
908
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800909// toys/pending/tr.c
910
911struct tr_data {
912 short map[256]; //map of chars
913 int len1, len2;
914};
915
916// toys/pending/traceroute.c
917
918struct traceroute_data {
919 long max_ttl;
920 long port;
921 long ttl_probes;
922 char *src_ip;
923 long tos;
924 long wait_time;
925 struct arg_list *loose_source;
926 long pause_time;
927 long first_ttl;
928 char *iface;
929
930 uint32_t gw_list[9];
931 int recv_sock;
932 int snd_sock;
933 unsigned msg_len;
934 char *packet;
935 uint32_t ident;
936 int istraceroute6;
937};
938
939// toys/pending/useradd.c
940
941struct useradd_data {
942 char *dir;
943 char *gecos;
944 char *shell;
945 char *u_grp;
946 long uid;
947
948 long gid;
949};
950
Elliott Hughes3fac1bd2016-01-04 12:28:44 -0800951// toys/pending/vi.c
952
953struct vi_data {
954 struct linestack *ls;
955 char *statline;
956};
957
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800958// toys/pending/watch.c
959
960struct watch_data {
961 int interval;
962};
963
Elliott Hughes77e56de2016-02-29 16:14:51 -0800964// toys/pending/wget.c
965
966struct wget_data {
967 char *filename;
968};
969
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -0800970// toys/posix/chgrp.c
971
972struct chgrp_data {
973 uid_t owner;
974 gid_t group;
975 char *owner_name, *group_name;
976 int symfollow;
977};
978
979// toys/posix/chmod.c
980
981struct chmod_data {
982 char *mode;
983};
984
985// toys/posix/cksum.c
986
987struct cksum_data {
988 unsigned crc_table[256];
989};
990
991// toys/posix/cmp.c
992
993struct cmp_data {
994 int fd;
995 char *name;
996};
997
998// toys/posix/cp.c
999
1000struct cp_data {
Elliott Hughese3764cc2015-07-06 18:09:49 -07001001 union {
1002 struct {
1003 // install's options
1004 char *group;
1005 char *user;
1006 char *mode;
1007 } i;
1008 struct {
1009 char *preserve;
1010 } c;
1011 };
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001012
1013 char *destname;
1014 struct stat top;
1015 int (*callback)(struct dirtree *try);
1016 uid_t uid;
1017 gid_t gid;
Elliott Hughese3764cc2015-07-06 18:09:49 -07001018 int pflags;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001019};
1020
1021// toys/posix/cpio.c
1022
1023struct cpio_data {
1024 char *archive;
1025 char *pass;
1026 char *fmt;
1027};
1028
1029// toys/posix/cut.c
1030
1031struct cut_data {
1032 char *delim;
1033 char *flist;
1034 char *clist;
1035 char *blist;
1036
1037 void *slist_head;
1038 unsigned nelem;
1039 void (*do_cut)(int fd);
1040};
1041
1042// toys/posix/date.c
1043
1044struct date_data {
1045 char *file;
1046 char *setfmt;
1047 char *showdate;
Elliott Hughesede3a452015-08-12 16:57:42 -07001048
Elliott Hughesede3a452015-08-12 16:57:42 -07001049 unsigned nano;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001050};
1051
1052// toys/posix/df.c
1053
1054struct df_data {
1055 struct arg_list *fstype;
1056
1057 long units;
Elliott Hughes064520b2015-10-23 10:44:33 -07001058 int column_widths[5];
1059 int header_shown;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001060};
1061
1062// toys/posix/du.c
1063
1064struct du_data {
1065 long maxdepth;
1066
Elliott Hughes591e5472016-10-03 19:28:43 -07001067 unsigned long depth, total;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001068 dev_t st_dev;
1069 void *inodes;
1070};
1071
Elliott Hughes59a36102016-02-11 19:18:13 -08001072// toys/posix/env.c
1073
1074struct env_data {
1075 struct arg_list *u;
1076};;
1077
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001078// toys/posix/expand.c
1079
1080struct expand_data {
1081 struct arg_list *tabs;
1082
1083 unsigned tabcount, *tab;
1084};
1085
Elliott Hughese7b74ae2016-07-07 17:02:37 -07001086// toys/posix/file.c
1087
1088struct file_data {
1089 int max_name_len;
1090};
1091
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001092// toys/posix/find.c
1093
1094struct find_data {
1095 char **filter;
1096 struct double_list *argdata;
Elliott Hughes2ff26de2016-01-09 11:23:51 -08001097 int topdir, xdev, depth;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001098 time_t now;
1099};
1100
1101// toys/posix/grep.c
1102
1103struct grep_data {
1104 long m;
1105 struct arg_list *f;
1106 struct arg_list *e;
Elliott Hughes236e7452016-02-02 08:08:46 -08001107 long a;
1108 long b;
1109 long c;
Elliott Hughesafc66712016-02-05 22:03:49 -08001110
1111 char indelim, outdelim;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001112};
1113
1114// toys/posix/head.c
1115
1116struct head_data {
1117 long lines;
1118 int file_no;
1119};
1120
1121// toys/posix/id.c
1122
1123struct id_data {
Elliott Hughesa0da26d2015-05-31 09:51:58 -07001124 int is_groups;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001125};
1126
1127// toys/posix/kill.c
1128
1129struct kill_data {
1130 char *signame;
1131 struct arg_list *olist;
1132};
1133
1134// toys/posix/ls.c
1135
1136struct ls_data {
Elliott Hughes52a55442017-04-24 10:37:49 -07001137 long ll;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001138 char *color;
1139
Elliott Hughesa0da26d2015-05-31 09:51:58 -07001140 struct dirtree *files, *singledir;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001141
1142 unsigned screen_width;
1143 int nl_title;
Elliott Hughesa0637ce2016-08-22 13:45:55 -07001144 char *escmore;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001145};
1146
1147// toys/posix/mkdir.c
1148
1149struct mkdir_data {
1150 char *arg_mode;
Elliott Hughesa0da26d2015-05-31 09:51:58 -07001151 char *arg_context;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001152};
1153
1154// toys/posix/mkfifo.c
1155
1156struct mkfifo_data {
1157 char *m_string;
Elliott Hughese3764cc2015-07-06 18:09:49 -07001158 char *Z;
1159
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001160 mode_t mode;
1161};
1162
1163// toys/posix/nice.c
1164
1165struct nice_data {
1166 long priority;
1167};
1168
1169// toys/posix/nl.c
1170
1171struct nl_data {
1172 long w;
1173 char *s;
1174 char *n;
1175 char *b;
1176 long l;
1177 long v;
1178
1179 // Count of consecutive blank lines for -l has to persist between files
1180 long lcount;
1181};
1182
1183// toys/posix/od.c
1184
1185struct od_data {
1186 struct arg_list *output_base;
1187 char *address_base;
1188 long max_count;
Elliott Hughesfafe4272016-03-30 10:20:45 -07001189 long width;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001190 long jump_bytes;
1191
1192 int address_idx;
1193 unsigned types, leftover, star;
Elliott Hughesfafe4272016-03-30 10:20:45 -07001194 char *buf; // Points to buffers[0] or buffers[1].
1195 char *bufs[2]; // Used to detect duplicate lines.
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001196 off_t pos;
1197};
1198
1199// toys/posix/paste.c
1200
1201struct paste_data {
Elliott Hughes10d4b072017-03-22 10:07:35 -07001202 char *d;
1203
1204 int files;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001205};
1206
1207// toys/posix/patch.c
1208
1209struct patch_data {
1210 char *infile;
1211 long prefix;
Elliott Hughese7b74ae2016-07-07 17:02:37 -07001212 char *dir;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001213
1214 struct double_list *current_hunk;
1215 long oldline, oldlen, newline, newlen;
1216 long linenum;
1217 int context, state, filein, fileout, filepatch, hunknum;
1218 char *tempname;
1219};
1220
Elliott Hughes941d74d2015-10-30 13:18:37 -07001221// toys/posix/ps.c
1222
1223struct ps_data {
Elliott Hughesfc9e18a2015-12-11 17:31:26 -08001224 union {
1225 struct {
1226 struct arg_list *G;
1227 struct arg_list *g;
1228 struct arg_list *U;
1229 struct arg_list *u;
1230 struct arg_list *t;
1231 struct arg_list *s;
1232 struct arg_list *p;
Elliott Hughes236e7452016-02-02 08:08:46 -08001233 struct arg_list *O;
Elliott Hughesfc9e18a2015-12-11 17:31:26 -08001234 struct arg_list *o;
1235 struct arg_list *P;
1236 struct arg_list *k;
1237 } ps;
1238 struct {
1239 long n;
1240 long d;
Elliott Hughesfb4a3e42016-01-26 10:49:48 -08001241 long s;
Elliott Hughes3fac1bd2016-01-04 12:28:44 -08001242 struct arg_list *u;
1243 struct arg_list *p;
Elliott Hughesfb4a3e42016-01-26 10:49:48 -08001244 struct arg_list *o;
1245 struct arg_list *k;
Elliott Hughesa2ba2472016-05-24 09:12:04 -07001246 struct arg_list *O;
Elliott Hughesa729fc82016-01-20 20:41:02 -08001247 } top;
Elliott Hughesa2ba2472016-05-24 09:12:04 -07001248 struct {
Elliott Hughese56796d2016-01-15 19:48:59 -08001249 char *L;
1250 struct arg_list *G;
1251 struct arg_list *g;
1252 struct arg_list *P;
1253 struct arg_list *s;
1254 struct arg_list *t;
1255 struct arg_list *U;
1256 struct arg_list *u;
1257 char *d;
1258
Elliott Hughes236e7452016-02-02 08:08:46 -08001259 void *regexes, *snapshot;
Elliott Hughese56796d2016-01-15 19:48:59 -08001260 int signal;
Elliott Hughes236e7452016-02-02 08:08:46 -08001261 pid_t self, match;
Elliott Hughese56796d2016-01-15 19:48:59 -08001262 } pgrep;
Elliott Hughesfc9e18a2015-12-11 17:31:26 -08001263 };
Elliott Hughes941d74d2015-10-30 13:18:37 -07001264
Elliott Hughesfc9e18a2015-12-11 17:31:26 -08001265 struct sysinfo si;
1266 struct ptr_len gg, GG, pp, PP, ss, tt, uu, UU;
Elliott Hughesa2ba2472016-05-24 09:12:04 -07001267 struct dirtree *threadparent;
Elliott Hughes3fac1bd2016-01-04 12:28:44 -08001268 unsigned width, height;
Elliott Hughes941d74d2015-10-30 13:18:37 -07001269 dev_t tty;
Elliott Hughesfc9e18a2015-12-11 17:31:26 -08001270 void *fields, *kfields;
Elliott Hughes236e7452016-02-02 08:08:46 -08001271 long long ticks, bits, time;
Elliott Hughese56796d2016-01-15 19:48:59 -08001272 int kcount, forcek, sortpos;
Elliott Hughes3fac1bd2016-01-04 12:28:44 -08001273 int (*match_process)(long long *slot);
Elliott Hughese56796d2016-01-15 19:48:59 -08001274 void (*show_process)(void *tb);
Elliott Hughes941d74d2015-10-30 13:18:37 -07001275};
1276
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001277// toys/posix/renice.c
1278
1279struct renice_data {
1280 long nArgu;
1281};
1282
Elliott Hughesf9551b32014-12-24 10:59:08 -08001283// toys/posix/sed.c
1284
1285struct sed_data {
1286 struct arg_list *f;
1287 struct arg_list *e;
1288
1289 // processed pattern list
1290 struct double_list *pattern;
1291
1292 char *nextline, *remember;
1293 void *restart, *lastregex;
1294 long nextlen, rememberlen, count;
1295 int fdout, noeol;
1296 unsigned xx;
1297};
1298
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001299// toys/posix/sort.c
1300
1301struct sort_data {
1302 char *key_separator;
1303 struct arg_list *raw_keys;
1304 char *outfile;
1305 char *ignore1, ignore2; // GNU compatability NOPs for -S and -T.
1306
1307 void *key_list;
1308 int linecount;
1309 char **lines;
1310};
1311
1312// toys/posix/split.c
1313
1314struct split_data {
1315 long lines;
1316 long bytes;
1317 long suflen;
1318
1319 char *outfile;
1320};
1321
1322// toys/posix/strings.c
1323
1324struct strings_data {
1325 long num;
1326};
1327
1328// toys/posix/tail.c
1329
1330struct tail_data {
1331 long lines;
1332 long bytes;
1333
Elliott Hughes3fac1bd2016-01-04 12:28:44 -08001334 int file_no, ffd, *files;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001335};
1336
1337// toys/posix/tee.c
1338
1339struct tee_data {
1340 void *outputs;
1341};
1342
1343// toys/posix/touch.c
1344
1345struct touch_data {
1346 char *time;
1347 char *file;
1348 char *date;
1349};
1350
Elliott Hughes59a36102016-02-11 19:18:13 -08001351// toys/posix/ulimit.c
1352
1353struct ulimit_data {
1354 long pid;
1355};
1356
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001357// toys/posix/uniq.c
1358
1359struct uniq_data {
1360 long maxchars;
1361 long nchars;
1362 long nfields;
1363 long repeats;
1364};
1365
1366// toys/posix/uudecode.c
1367
1368struct uudecode_data {
1369 char *o;
1370};
1371
1372// toys/posix/wc.c
1373
1374struct wc_data {
Elliott Hughese7b74ae2016-07-07 17:02:37 -07001375 unsigned long totals[4];
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001376};
1377
1378// toys/posix/xargs.c
1379
1380struct xargs_data {
1381 long max_bytes;
1382 long max_entries;
1383 long L;
1384 char *eofstr;
1385 char *I;
1386
1387 long entries, bytes;
1388 char delim;
1389};
1390
1391extern union global_union {
Elliott Hughes85cda1a2015-04-08 10:53:59 -07001392 struct getprop_data getprop;
Elliott Hughes0803f532016-06-22 10:26:11 -07001393 struct log_data log;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001394 struct hello_data hello;
1395 struct skeleton_data skeleton;
Elliott Hughes2737fdf2016-05-04 13:42:18 -07001396 struct hostname_data hostname;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001397 struct killall_data killall;
1398 struct md5sum_data md5sum;
Elliott Hughes40d36f22015-03-11 13:37:18 -07001399 struct mknod_data mknod;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001400 struct mktemp_data mktemp;
1401 struct mount_data mount;
1402 struct passwd_data passwd;
1403 struct pidof_data pidof;
1404 struct seq_data seq;
1405 struct su_data su;
1406 struct umount_data umount;
Elliott Hughes7a497532017-01-15 11:24:30 -08001407 struct ftpget_data ftpget;
Elliott Hughese7b74ae2016-07-07 17:02:37 -07001408 struct ifconfig_data ifconfig;
Elliott Hughescae44952017-01-25 20:07:12 -08001409 struct microcom_data microcom;
Elliott Hughese7b74ae2016-07-07 17:02:37 -07001410 struct netcat_data netcat;
1411 struct netstat_data netstat;
Elliott Hughes5d83f7a2016-08-29 08:26:36 -07001412 struct tunctl_data tunctl;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001413 struct acpi_data acpi;
Elliott Hughes14862232014-12-18 17:55:47 -08001414 struct base64_data base64;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001415 struct blockdev_data blockdev;
Elliott Hughes3233e2f2017-05-25 14:16:21 -07001416 struct chrt_data chrt;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001417 struct dos2unix_data dos2unix;
1418 struct fallocate_data fallocate;
1419 struct free_data free;
Elliott Hughes584c6542015-05-15 16:26:09 -07001420 struct hexedit_data hexedit;
Elliott Hughes718f34d2015-07-10 18:02:00 -07001421 struct hwclock_data hwclock;
Elliott Hughese3764cc2015-07-06 18:09:49 -07001422 struct ionice_data ionice;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001423 struct login_data login;
1424 struct losetup_data losetup;
1425 struct lspci_data lspci;
1426 struct makedevs_data makedevs;
Elliott Hughes4ac9dd62015-01-14 17:00:35 -08001427 struct mix_data mix;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001428 struct mkpasswd_data mkpasswd;
Elliott Hughesa729fc82016-01-20 20:41:02 -08001429 struct mkswap_data mkswap;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001430 struct modinfo_data modinfo;
Elliott Hughesbf65a2e2015-02-09 12:14:46 -08001431 struct nsenter_data nsenter;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001432 struct oneit_data oneit;
Elliott Hughes53a43da2014-12-11 17:05:54 -08001433 struct shred_data shred;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001434 struct stat_data stat;
1435 struct swapon_data swapon;
1436 struct switch_root_data switch_root;
1437 struct timeout_data timeout;
1438 struct truncate_data truncate;
Elliott Hughese3764cc2015-07-06 18:09:49 -07001439 struct xxd_data xxd;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001440 struct arp_data arp;
1441 struct arping_data arping;
1442 struct bootchartd_data bootchartd;
1443 struct brctl_data brctl;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001444 struct compress_data compress;
1445 struct crond_data crond;
1446 struct crontab_data crontab;
1447 struct dd_data dd;
1448 struct dhcp_data dhcp;
Elliott Hughese39ad552015-11-12 20:22:57 -08001449 struct dhcp6_data dhcp6;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001450 struct dhcpd_data dhcpd;
1451 struct diff_data diff;
Elliott Hughes7c3d7b12017-02-20 20:29:13 -08001452 struct dmesg_data dmesg;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001453 struct dumpleases_data dumpleases;
1454 struct expr_data expr;
1455 struct fdisk_data fdisk;
1456 struct fold_data fold;
1457 struct fsck_data fsck;
Elliott Hughesa1ce46b2016-08-02 09:08:31 -07001458 struct getfattr_data getfattr;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001459 struct getty_data getty;
1460 struct groupadd_data groupadd;
Elliott Hughesc5a1dd42017-05-02 11:34:07 -07001461 struct gzip_data gzip;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001462 struct host_data host;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001463 struct iconv_data iconv;
1464 struct ip_data ip;
1465 struct ipcrm_data ipcrm;
1466 struct ipcs_data ipcs;
1467 struct klogd_data klogd;
1468 struct last_data last;
1469 struct logger_data logger;
Elliott Hughesecd3df92015-09-11 10:50:35 -07001470 struct lsof_data lsof;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001471 struct mke2fs_data mke2fs;
1472 struct modprobe_data modprobe;
1473 struct more_data more;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001474 struct openvt_data openvt;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001475 struct ping_data ping;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001476 struct route_data route;
Elliott Hughesfb3ebf82016-10-22 09:12:59 -07001477 struct setfattr_data setfattr;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001478 struct sh_data sh;
1479 struct sulogin_data sulogin;
1480 struct syslogd_data syslogd;
1481 struct tar_data tar;
1482 struct tcpsvd_data tcpsvd;
1483 struct telnet_data telnet;
1484 struct telnetd_data telnetd;
Elliott Hughes97809c22015-08-07 13:57:10 -07001485 struct tftp_data tftp;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001486 struct tftpd_data tftpd;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001487 struct tr_data tr;
1488 struct traceroute_data traceroute;
1489 struct useradd_data useradd;
Elliott Hughes3fac1bd2016-01-04 12:28:44 -08001490 struct vi_data vi;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001491 struct watch_data watch;
Elliott Hughes77e56de2016-02-29 16:14:51 -08001492 struct wget_data wget;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001493 struct chgrp_data chgrp;
1494 struct chmod_data chmod;
1495 struct cksum_data cksum;
1496 struct cmp_data cmp;
1497 struct cp_data cp;
1498 struct cpio_data cpio;
1499 struct cut_data cut;
1500 struct date_data date;
1501 struct df_data df;
1502 struct du_data du;
Elliott Hughes59a36102016-02-11 19:18:13 -08001503 struct env_data env;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001504 struct expand_data expand;
Elliott Hughese7b74ae2016-07-07 17:02:37 -07001505 struct file_data file;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001506 struct find_data find;
1507 struct grep_data grep;
1508 struct head_data head;
1509 struct id_data id;
1510 struct kill_data kill;
1511 struct ls_data ls;
1512 struct mkdir_data mkdir;
1513 struct mkfifo_data mkfifo;
1514 struct nice_data nice;
1515 struct nl_data nl;
1516 struct od_data od;
1517 struct paste_data paste;
1518 struct patch_data patch;
Elliott Hughes941d74d2015-10-30 13:18:37 -07001519 struct ps_data ps;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001520 struct renice_data renice;
Elliott Hughesf9551b32014-12-24 10:59:08 -08001521 struct sed_data sed;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001522 struct sort_data sort;
1523 struct split_data split;
1524 struct strings_data strings;
1525 struct tail_data tail;
1526 struct tee_data tee;
1527 struct touch_data touch;
Elliott Hughes59a36102016-02-11 19:18:13 -08001528 struct ulimit_data ulimit;
Elliott Hughesd8d2d3c2014-11-20 10:39:27 -08001529 struct uniq_data uniq;
1530 struct uudecode_data uudecode;
1531 struct wc_data wc;
1532 struct xargs_data xargs;
1533} this;