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