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/hostname.c 43 44 struct hostname_data { 45 char *fname; 46 }; 47 48 // toys/lsb/killall.c 49 50 struct 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 61 struct md5sum_data { 62 struct arg_list *c; 63 64 int sawline; 65 66 // Crypto variables blanked after summing 67 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 76 // toys/lsb/mknod.c 77 78 struct mknod_data { 79 char *arg_context; 80 char *m; 81 }; 82 83 // toys/lsb/mktemp.c 84 85 struct mktemp_data { 86 char *tmpdir; 87 }; 88 89 // toys/lsb/mount.c 90 91 struct 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 103 struct passwd_data { 104 char *algo; 105 }; 106 107 // toys/lsb/pidof.c 108 109 struct pidof_data { 110 char *omit; 111 }; 112 113 // toys/lsb/seq.c 114 115 struct seq_data { 116 char *sep; 117 char *fmt; 118 }; 119 120 // toys/lsb/su.c 121 122 struct su_data { 123 char *s; 124 char *c; 125 }; 126 127 // toys/lsb/umount.c 128 129 struct umount_data { 130 struct arg_list *t; 131 132 char *types; 133 }; 134 135 // toys/net/ftpget.c 136 137 struct ftpget_data { 138 char *user; 139 char *port; 140 char *password; 141 142 int fd; 143 }; 144 145 // toys/net/ifconfig.c 146 147 struct ifconfig_data { 148 int sockfd; 149 }; 150 151 // toys/net/microcom.c 152 153 struct microcom_data { 154 char *s; 155 156 int fd; 157 struct termios original_stdin_state, original_fd_state; 158 }; 159 160 // toys/net/netcat.c 161 162 struct 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. 167 long idle; // -W Wait # seconds for more data 168 long wait; // -w Wait # seconds for a connection. 169 }; 170 171 // toys/net/netstat.c 172 173 struct netstat_data { 174 struct num_cache *inodes; 175 int wpad; 176 };; 177 178 // toys/net/tunctl.c 179 180 struct tunctl_data { 181 char *user; 182 }; 183 184 // toys/other/acpi.c 185 186 struct acpi_data { 187 int ac, bat, therm, cool; 188 char *cpath; 189 }; 190 191 // toys/other/base64.c 192 193 struct base64_data { 194 long columns; 195 196 unsigned total; 197 }; 198 199 // toys/other/blockdev.c 200 201 struct blockdev_data { 202 long bsz; 203 }; 204 205 // toys/other/dos2unix.c 206 207 struct dos2unix_data { 208 char *tempfile; 209 }; 210 211 // toys/other/fallocate.c 212 213 struct fallocate_data { 214 long offset; 215 long size; 216 }; 217 218 // toys/other/free.c 219 220 struct free_data { 221 unsigned bits; 222 unsigned long long units; 223 char *buf; 224 }; 225 226 // toys/other/hexedit.c 227 228 struct hexedit_data { 229 char *data; 230 long long len, base; 231 int numlen, undo, undolen; 232 unsigned height; 233 }; 234 235 // toys/other/hwclock.c 236 237 struct hwclock_data { 238 char *fname; 239 240 int utc; 241 }; 242 243 // toys/other/ionice.c 244 245 struct ionice_data { 246 long pid; 247 long level; 248 long class; 249 }; 250 251 // toys/other/login.c 252 253 struct login_data { 254 char *hostname; 255 char *username; 256 257 int login_timeout, login_fail_timeout; 258 }; 259 260 // toys/other/losetup.c 261 262 struct losetup_data { 263 char *jfile; 264 long offset; 265 long size; 266 267 int openflags; 268 dev_t jdev; 269 ino_t jino; 270 }; 271 272 // toys/other/lspci.c 273 274 struct lspci_data { 275 char *ids; 276 long numeric; 277 278 FILE *db; 279 }; 280 281 // toys/other/makedevs.c 282 283 struct makedevs_data { 284 char *fname; 285 }; 286 287 // toys/other/mix.c 288 289 struct mix_data { 290 long right; 291 long level; 292 char *dev; 293 char *chan; 294 }; 295 296 // toys/other/mkpasswd.c 297 298 struct mkpasswd_data { 299 long pfd; 300 char *method; 301 char *salt; 302 }; 303 304 // toys/other/mkswap.c 305 306 struct mkswap_data { 307 char *L; 308 }; 309 310 // toys/other/modinfo.c 311 312 struct modinfo_data { 313 char *field; 314 char *knam; 315 char *base; 316 317 long mod; 318 }; 319 320 // toys/other/nsenter.c 321 322 struct nsenter_data { 323 char *nsnames[6]; 324 long targetpid; 325 }; 326 327 // toys/other/oneit.c 328 329 struct oneit_data { 330 char *console; 331 }; 332 333 // toys/other/shred.c 334 335 struct shred_data { 336 long offset; 337 long iterations; 338 long size; 339 340 int ufd; 341 }; 342 343 // toys/other/stat.c 344 345 struct stat_data { 346 char *fmt; 347 348 union { 349 struct stat st; 350 struct statfs sf; 351 } stat; 352 char *file, *pattern; 353 int patlen; 354 }; 355 356 // toys/other/swapon.c 357 358 struct swapon_data { 359 long priority; 360 }; 361 362 // toys/other/switch_root.c 363 364 struct switch_root_data { 365 char *console; 366 367 dev_t rootdev; 368 }; 369 370 // toys/other/timeout.c 371 372 struct timeout_data { 373 char *s_signal; 374 char *k_timeout; 375 376 int nextsig; 377 pid_t pid; 378 struct timeval ktv; 379 struct itimerval itv; 380 }; 381 382 // toys/other/truncate.c 383 384 struct truncate_data { 385 char *s; 386 387 long size; 388 int type; 389 }; 390 391 // toys/other/xxd.c 392 393 struct xxd_data { 394 long s; 395 long g; 396 long l; 397 long c; 398 }; 399 400 // toys/pending/arp.c 401 402 struct arp_data { 403 char *hw_type; 404 char *af_type_A; 405 char *af_type_p; 406 char *interface; 407 408 int sockfd; 409 char *device; 410 }; 411 412 // toys/pending/arping.c 413 414 struct arping_data { 415 long count; 416 unsigned long time_out; 417 char *iface; 418 char *src_ip; 419 420 int sockfd; 421 unsigned long start, end; 422 unsigned sent_at, sent_nr, rcvd_nr, brd_sent, rcvd_req, brd_rcv, 423 unicast_flag; 424 }; 425 426 // toys/pending/bootchartd.c 427 428 struct bootchartd_data { 429 char buf[32]; 430 long smpl_period_usec; 431 int proc_accounting; 432 int is_login; 433 434 void *head; 435 }; 436 437 // toys/pending/brctl.c 438 439 struct brctl_data { 440 int sockfd; 441 }; 442 443 // toys/pending/chrt.c 444 445 struct chrt_data { 446 long pid; 447 }; 448 449 // toys/pending/compress.c 450 451 struct compress_data { 452 // Huffman codes: base offset and extra bits tables (length and distance) 453 char lenbits[29], distbits[30]; 454 unsigned short lenbase[29], distbase[30]; 455 void *fixdisthuff, *fixlithuff; 456 457 // CRC 458 void (*crcfunc)(char *data, int len); 459 unsigned crc; 460 461 // Compressed data buffer 462 char *data; 463 unsigned pos, len; 464 int infd, outfd; 465 466 // Tables only used for deflation 467 unsigned short *hashhead, *hashchain; 468 }; 469 470 // toys/pending/crond.c 471 472 struct 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 484 struct crontab_data { 485 char *user; 486 char *cdir; 487 }; 488 489 // toys/pending/dd.c 490 491 struct dd_data { 492 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 };; 504 505 // toys/pending/dhcp.c 506 507 struct 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 522 // toys/pending/dhcp6.c 523 524 struct 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 534 // toys/pending/dhcpd.c 535 536 struct dhcpd_data { 537 char *iface; 538 long port; 539 };; 540 541 // toys/pending/diff.c 542 543 struct 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 552 // toys/pending/dmesg.c 553 554 struct dmesg_data { 555 long level; 556 long size; 557 558 int color; 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 *d; 1196 1197 int files; 1198 }; 1199 1200 // toys/posix/patch.c 1201 1202 struct patch_data { 1203 char *infile; 1204 long prefix; 1205 char *dir; 1206 1207 struct double_list *current_hunk; 1208 long oldline, oldlen, newline, newlen; 1209 long linenum; 1210 int context, state, filein, fileout, filepatch, hunknum; 1211 char *tempname; 1212 }; 1213 1214 // toys/posix/ps.c 1215 1216 struct ps_data { 1217 union { 1218 struct { 1219 struct arg_list *G; 1220 struct arg_list *g; 1221 struct arg_list *U; 1222 struct arg_list *u; 1223 struct arg_list *t; 1224 struct arg_list *s; 1225 struct arg_list *p; 1226 struct arg_list *O; 1227 struct arg_list *o; 1228 struct arg_list *P; 1229 struct arg_list *k; 1230 } ps; 1231 struct { 1232 long n; 1233 long d; 1234 long s; 1235 struct arg_list *u; 1236 struct arg_list *p; 1237 struct arg_list *o; 1238 struct arg_list *k; 1239 struct arg_list *O; 1240 } top; 1241 struct { 1242 char *L; 1243 struct arg_list *G; 1244 struct arg_list *g; 1245 struct arg_list *P; 1246 struct arg_list *s; 1247 struct arg_list *t; 1248 struct arg_list *U; 1249 struct arg_list *u; 1250 char *d; 1251 1252 void *regexes, *snapshot; 1253 int signal; 1254 pid_t self, match; 1255 } pgrep; 1256 }; 1257 1258 struct sysinfo si; 1259 struct ptr_len gg, GG, pp, PP, ss, tt, uu, UU; 1260 struct dirtree *threadparent; 1261 unsigned width, height; 1262 dev_t tty; 1263 void *fields, *kfields; 1264 long long ticks, bits, time; 1265 int kcount, forcek, sortpos; 1266 int (*match_process)(long long *slot); 1267 void (*show_process)(void *tb); 1268 }; 1269 1270 // toys/posix/renice.c 1271 1272 struct renice_data { 1273 long nArgu; 1274 }; 1275 1276 // toys/posix/sed.c 1277 1278 struct sed_data { 1279 struct arg_list *f; 1280 struct arg_list *e; 1281 1282 // processed pattern list 1283 struct double_list *pattern; 1284 1285 char *nextline, *remember; 1286 void *restart, *lastregex; 1287 long nextlen, rememberlen, count; 1288 int fdout, noeol; 1289 unsigned xx; 1290 }; 1291 1292 // toys/posix/sort.c 1293 1294 struct sort_data { 1295 char *key_separator; 1296 struct arg_list *raw_keys; 1297 char *outfile; 1298 char *ignore1, ignore2; // GNU compatability NOPs for -S and -T. 1299 1300 void *key_list; 1301 int linecount; 1302 char **lines; 1303 }; 1304 1305 // toys/posix/split.c 1306 1307 struct split_data { 1308 long lines; 1309 long bytes; 1310 long suflen; 1311 1312 char *outfile; 1313 }; 1314 1315 // toys/posix/strings.c 1316 1317 struct strings_data { 1318 long num; 1319 }; 1320 1321 // toys/posix/tail.c 1322 1323 struct tail_data { 1324 long lines; 1325 long bytes; 1326 1327 int file_no, ffd, *files; 1328 }; 1329 1330 // toys/posix/tee.c 1331 1332 struct tee_data { 1333 void *outputs; 1334 }; 1335 1336 // toys/posix/touch.c 1337 1338 struct touch_data { 1339 char *time; 1340 char *file; 1341 char *date; 1342 }; 1343 1344 // toys/posix/ulimit.c 1345 1346 struct ulimit_data { 1347 long pid; 1348 }; 1349 1350 // toys/posix/uniq.c 1351 1352 struct uniq_data { 1353 long maxchars; 1354 long nchars; 1355 long nfields; 1356 long repeats; 1357 }; 1358 1359 // toys/posix/uudecode.c 1360 1361 struct uudecode_data { 1362 char *o; 1363 }; 1364 1365 // toys/posix/wc.c 1366 1367 struct wc_data { 1368 unsigned long totals[4]; 1369 }; 1370 1371 // toys/posix/xargs.c 1372 1373 struct xargs_data { 1374 long max_bytes; 1375 long max_entries; 1376 long L; 1377 char *eofstr; 1378 char *I; 1379 1380 long entries, bytes; 1381 char delim; 1382 }; 1383 1384 extern union global_union { 1385 struct getprop_data getprop; 1386 struct log_data log; 1387 struct hello_data hello; 1388 struct skeleton_data skeleton; 1389 struct hostname_data hostname; 1390 struct killall_data killall; 1391 struct md5sum_data md5sum; 1392 struct mknod_data mknod; 1393 struct mktemp_data mktemp; 1394 struct mount_data mount; 1395 struct passwd_data passwd; 1396 struct pidof_data pidof; 1397 struct seq_data seq; 1398 struct su_data su; 1399 struct umount_data umount; 1400 struct ftpget_data ftpget; 1401 struct ifconfig_data ifconfig; 1402 struct microcom_data microcom; 1403 struct netcat_data netcat; 1404 struct netstat_data netstat; 1405 struct tunctl_data tunctl; 1406 struct acpi_data acpi; 1407 struct base64_data base64; 1408 struct blockdev_data blockdev; 1409 struct dos2unix_data dos2unix; 1410 struct fallocate_data fallocate; 1411 struct free_data free; 1412 struct hexedit_data hexedit; 1413 struct hwclock_data hwclock; 1414 struct ionice_data ionice; 1415 struct login_data login; 1416 struct losetup_data losetup; 1417 struct lspci_data lspci; 1418 struct makedevs_data makedevs; 1419 struct mix_data mix; 1420 struct mkpasswd_data mkpasswd; 1421 struct mkswap_data mkswap; 1422 struct modinfo_data modinfo; 1423 struct nsenter_data nsenter; 1424 struct oneit_data oneit; 1425 struct shred_data shred; 1426 struct stat_data stat; 1427 struct swapon_data swapon; 1428 struct switch_root_data switch_root; 1429 struct timeout_data timeout; 1430 struct truncate_data truncate; 1431 struct xxd_data xxd; 1432 struct arp_data arp; 1433 struct arping_data arping; 1434 struct bootchartd_data bootchartd; 1435 struct brctl_data brctl; 1436 struct chrt_data chrt; 1437 struct compress_data compress; 1438 struct crond_data crond; 1439 struct crontab_data crontab; 1440 struct dd_data dd; 1441 struct dhcp_data dhcp; 1442 struct dhcp6_data dhcp6; 1443 struct dhcpd_data dhcpd; 1444 struct diff_data diff; 1445 struct dmesg_data dmesg; 1446 struct dumpleases_data dumpleases; 1447 struct expr_data expr; 1448 struct fdisk_data fdisk; 1449 struct fold_data fold; 1450 struct fsck_data fsck; 1451 struct getfattr_data getfattr; 1452 struct getty_data getty; 1453 struct groupadd_data groupadd; 1454 struct host_data host; 1455 struct iconv_data iconv; 1456 struct ip_data ip; 1457 struct ipcrm_data ipcrm; 1458 struct ipcs_data ipcs; 1459 struct klogd_data klogd; 1460 struct last_data last; 1461 struct logger_data logger; 1462 struct lsof_data lsof; 1463 struct mke2fs_data mke2fs; 1464 struct modprobe_data modprobe; 1465 struct more_data more; 1466 struct openvt_data openvt; 1467 struct ping_data ping; 1468 struct route_data route; 1469 struct setfattr_data setfattr; 1470 struct sh_data sh; 1471 struct sulogin_data sulogin; 1472 struct syslogd_data syslogd; 1473 struct tar_data tar; 1474 struct tcpsvd_data tcpsvd; 1475 struct telnet_data telnet; 1476 struct telnetd_data telnetd; 1477 struct tftp_data tftp; 1478 struct tftpd_data tftpd; 1479 struct tr_data tr; 1480 struct traceroute_data traceroute; 1481 struct useradd_data useradd; 1482 struct vi_data vi; 1483 struct watch_data watch; 1484 struct wget_data wget; 1485 struct chgrp_data chgrp; 1486 struct chmod_data chmod; 1487 struct cksum_data cksum; 1488 struct cmp_data cmp; 1489 struct cp_data cp; 1490 struct cpio_data cpio; 1491 struct cut_data cut; 1492 struct date_data date; 1493 struct df_data df; 1494 struct du_data du; 1495 struct env_data env; 1496 struct expand_data expand; 1497 struct file_data file; 1498 struct find_data find; 1499 struct grep_data grep; 1500 struct head_data head; 1501 struct id_data id; 1502 struct kill_data kill; 1503 struct ls_data ls; 1504 struct mkdir_data mkdir; 1505 struct mkfifo_data mkfifo; 1506 struct nice_data nice; 1507 struct nl_data nl; 1508 struct od_data od; 1509 struct paste_data paste; 1510 struct patch_data patch; 1511 struct ps_data ps; 1512 struct renice_data renice; 1513 struct sed_data sed; 1514 struct sort_data sort; 1515 struct split_data split; 1516 struct strings_data strings; 1517 struct tail_data tail; 1518 struct tee_data tee; 1519 struct touch_data touch; 1520 struct ulimit_data ulimit; 1521 struct uniq_data uniq; 1522 struct uudecode_data uudecode; 1523 struct wc_data wc; 1524 struct xargs_data xargs; 1525 } this; 1526