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