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   int precision;
    130 };
    131 
    132 // toys/lsb/su.c
    133 
    134 struct su_data {
    135   char *s;
    136   char *c;
    137 };
    138 
    139 // toys/lsb/umount.c
    140 
    141 struct umount_data {
    142   struct arg_list *t;
    143 
    144   char *types;
    145 };
    146 
    147 // toys/net/ftpget.c
    148 
    149 struct ftpget_data {
    150   char *user;
    151   char *port;
    152   char *password;
    153 
    154   int fd;
    155 };
    156 
    157 // toys/net/ifconfig.c
    158 
    159 struct ifconfig_data {
    160   int sockfd;
    161 };
    162 
    163 // toys/net/microcom.c
    164 
    165 struct 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 
    174 struct 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 
    185 struct netstat_data {
    186   struct num_cache *inodes;
    187   int wpad;
    188 };;
    189 
    190 // toys/net/tunctl.c
    191 
    192 struct tunctl_data {
    193   char *user;
    194 };
    195 
    196 // toys/other/acpi.c
    197 
    198 struct acpi_data {
    199   int ac, bat, therm, cool;
    200   char *cpath;
    201 };
    202 
    203 // toys/other/base64.c
    204 
    205 struct base64_data {
    206   long columns;
    207 
    208   unsigned total;
    209 };
    210 
    211 // toys/other/blockdev.c
    212 
    213 struct blockdev_data {
    214   long bsz;
    215 };
    216 
    217 // toys/other/chrt.c
    218 
    219 struct chrt_data {
    220   long pid;
    221 };
    222 
    223 // toys/other/dos2unix.c
    224 
    225 struct dos2unix_data {
    226   char *tempfile;
    227 };
    228 
    229 // toys/other/fallocate.c
    230 
    231 struct fallocate_data {
    232   long offset;
    233   long size;
    234 };
    235 
    236 // toys/other/free.c
    237 
    238 struct free_data {
    239   unsigned bits;
    240   unsigned long long units;
    241   char *buf;
    242 };
    243 
    244 // toys/other/hexedit.c
    245 
    246 struct 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 
    255 struct hwclock_data {
    256   char *fname;
    257 
    258   int utc;
    259 };
    260 
    261 // toys/other/ionice.c
    262 
    263 struct ionice_data {
    264   long pid;
    265   long level;
    266   long class;
    267 };
    268 
    269 // toys/other/login.c
    270 
    271 struct login_data {
    272   char *hostname;
    273   char *username;
    274 
    275   int login_timeout, login_fail_timeout;
    276 };
    277 
    278 // toys/other/losetup.c
    279 
    280 struct 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 
    292 struct lspci_data {
    293   char *ids;
    294   long numeric;
    295 
    296   FILE *db;
    297 };
    298 
    299 // toys/other/makedevs.c
    300 
    301 struct makedevs_data {
    302   char *fname;
    303 };
    304 
    305 // toys/other/mix.c
    306 
    307 struct mix_data {
    308    long right;
    309    long level;
    310    char *dev;
    311    char *chan;
    312 };
    313 
    314 // toys/other/mkpasswd.c
    315 
    316 struct mkpasswd_data {
    317   long pfd;
    318   char *method;
    319   char *salt;
    320 };
    321 
    322 // toys/other/mkswap.c
    323 
    324 struct mkswap_data {
    325   char *L;
    326 };
    327 
    328 // toys/other/modinfo.c
    329 
    330 struct modinfo_data {
    331   char *field;
    332   char *knam;
    333   char *base;
    334 
    335   long mod;
    336 };
    337 
    338 // toys/other/nsenter.c
    339 
    340 struct nsenter_data {
    341   char *nsnames[6];
    342   long targetpid;
    343 };
    344 
    345 // toys/other/oneit.c
    346 
    347 struct oneit_data {
    348   char *console;
    349 };
    350 
    351 // toys/other/setfattr.c
    352 
    353 struct setfattr_data {
    354   char *x, *v, *n;
    355 };
    356 
    357 // toys/other/shred.c
    358 
    359 struct shred_data {
    360   long offset;
    361   long iterations;
    362   long size;
    363 
    364   int ufd;
    365 };
    366 
    367 // toys/other/stat.c
    368 
    369 struct 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 
    382 struct swapon_data {
    383   long priority;
    384 };
    385 
    386 // toys/other/switch_root.c
    387 
    388 struct switch_root_data {
    389   char *console;
    390 
    391   dev_t rootdev;
    392 };
    393 
    394 // toys/other/timeout.c
    395 
    396 struct 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 
    408 struct truncate_data {
    409   char *s;
    410 
    411   long size;
    412   int type;
    413 };
    414 
    415 // toys/other/xxd.c
    416 
    417 struct xxd_data {
    418   long s;
    419   long g;
    420   long l;
    421   long c;
    422 };
    423 
    424 // toys/pending/arp.c
    425 
    426 struct 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 
    438 struct 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 
    452 struct 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 
    463 struct brctl_data {
    464     int sockfd;
    465 };
    466 
    467 // toys/pending/compress.c
    468 
    469 struct 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 
    490 struct 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 
    502 struct crontab_data {
    503   char *user;
    504   char *cdir;
    505 };
    506 
    507 // toys/pending/dd.c
    508 
    509 struct 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 
    524 struct 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 
    541 struct 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 
    553 struct dhcpd_data {
    554     char *iface;
    555     long port;
    556 };;
    557 
    558 // toys/pending/diff.c
    559 
    560 struct 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 
    571 struct dumpleases_data {
    572     char *file;
    573 };
    574 
    575 // toys/pending/expr.c
    576 
    577 struct 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 
    585 struct fdisk_data {
    586   long sect_sz;
    587   long sectors;
    588   long heads;
    589   long cylinders;
    590 };
    591 
    592 // toys/pending/fmt.c
    593 
    594 struct fmt_data {
    595   int width;
    596 };
    597 
    598 // toys/pending/fold.c
    599 
    600 struct fold_data {
    601   int width;
    602 };
    603 
    604 // toys/pending/fsck.c
    605 
    606 struct 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 
    622 struct getfattr_data {
    623   char *n;
    624 };
    625 
    626 // toys/pending/getty.c
    627 
    628 struct 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 
    644 struct groupadd_data {
    645   long gid;
    646 };
    647 
    648 // toys/pending/gzip.c
    649 
    650 struct gzip_data {
    651   int level;
    652 };
    653 
    654 // toys/pending/host.c
    655 
    656 struct host_data {
    657   char *type_str;
    658 };
    659 
    660 // toys/pending/ip.c
    661 
    662 struct 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 
    670 struct 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 
    681 struct ipcs_data {
    682   int id;
    683 };
    684 
    685 // toys/pending/klogd.c
    686 
    687 struct klogd_data {
    688   long level;
    689 
    690   int fd;
    691 };
    692 
    693 // toys/pending/last.c
    694 
    695 struct last_data {
    696   char *file;
    697 
    698   struct arg_list *list;
    699 };
    700 
    701 // toys/pending/lsof.c
    702 
    703 struct 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 
    713 struct 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 
    742 struct 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 
    754 struct more_data {
    755   struct termios inf;
    756   int cin_fd;
    757 };
    758 
    759 // toys/pending/openvt.c
    760 
    761 struct openvt_data {
    762   unsigned long vt_num;
    763 };
    764 
    765 // toys/pending/ping.c
    766 
    767 struct 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 
    782 struct route_data {
    783   char *family;
    784 };
    785 
    786 // toys/pending/sh.c
    787 
    788 struct sh_data {
    789   char *command;
    790 
    791   long lineno;
    792 };
    793 
    794 // toys/pending/stty.c
    795 
    796 struct stty_data {
    797   char *device;
    798 
    799   int fd, col;
    800   unsigned output_cols;
    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 *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 
   1041 struct date_data {
   1042   char *file;
   1043   char *setfmt;
   1044   char *showdate;
   1045 
   1046   unsigned nano;
   1047 };
   1048 
   1049 // toys/posix/df.c
   1050 
   1051 struct 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 
   1061 struct 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 
   1071 struct env_data {
   1072   struct arg_list *u;
   1073 };;
   1074 
   1075 // toys/posix/expand.c
   1076 
   1077 struct expand_data {
   1078   struct arg_list *tabs;
   1079 
   1080   unsigned tabcount, *tab;
   1081 };
   1082 
   1083 // toys/posix/file.c
   1084 
   1085 struct file_data {
   1086   int max_name_len;
   1087 };
   1088 
   1089 // toys/posix/find.c
   1090 
   1091 struct 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 
   1101 struct 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 
   1117 struct head_data {
   1118   long bytes;
   1119   long lines;
   1120   int file_no;
   1121 };
   1122 
   1123 // toys/posix/iconv.c
   1124 
   1125 struct iconv_data {
   1126   char *from;
   1127   char *to;
   1128 
   1129   void *ic;
   1130 };
   1131 
   1132 // toys/posix/id.c
   1133 
   1134 struct id_data {
   1135   int is_groups;
   1136 };
   1137 
   1138 // toys/posix/kill.c
   1139 
   1140 struct kill_data {
   1141   char *signame;
   1142   struct arg_list *olist;
   1143 };
   1144 
   1145 // toys/posix/logger.c
   1146 
   1147 struct logger_data {
   1148   char *priority;
   1149   char *ident;
   1150 };
   1151 
   1152 // toys/posix/ls.c
   1153 
   1154 struct 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 
   1167 struct mkdir_data {
   1168   char *arg_mode;
   1169   char *arg_context;
   1170 };
   1171 
   1172 // toys/posix/mkfifo.c
   1173 
   1174 struct mkfifo_data {
   1175   char *m_string;
   1176   char *Z;
   1177 
   1178   mode_t mode;
   1179 };
   1180 
   1181 // toys/posix/nice.c
   1182 
   1183 struct nice_data {
   1184   long priority;
   1185 };
   1186 
   1187 // toys/posix/nl.c
   1188 
   1189 struct 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 
   1203 struct 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 
   1219 struct paste_data {
   1220   char *d;
   1221 
   1222   int files;
   1223 };
   1224 
   1225 // toys/posix/patch.c
   1226 
   1227 struct 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 
   1241 struct 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 
   1298 struct renice_data {
   1299   long nArgu;
   1300 };
   1301 
   1302 // toys/posix/sed.c
   1303 
   1304 struct 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 
   1320 struct 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 
   1333 struct split_data {
   1334   long lines;
   1335   long bytes;
   1336   long suflen;
   1337 
   1338   char *outfile;
   1339 };
   1340 
   1341 // toys/posix/strings.c
   1342 
   1343 struct strings_data {
   1344   long num;
   1345   char *t;
   1346 };
   1347 
   1348 // toys/posix/tail.c
   1349 
   1350 struct tail_data {
   1351   long lines;
   1352   long bytes;
   1353 
   1354   int file_no, ffd, *files;
   1355 };
   1356 
   1357 // toys/posix/tee.c
   1358 
   1359 struct tee_data {
   1360   void *outputs;
   1361 };
   1362 
   1363 // toys/posix/touch.c
   1364 
   1365 struct touch_data {
   1366   char *time;
   1367   char *file;
   1368   char *date;
   1369 };
   1370 
   1371 // toys/posix/ulimit.c
   1372 
   1373 struct ulimit_data {
   1374   long pid;
   1375 };
   1376 
   1377 // toys/posix/uniq.c
   1378 
   1379 struct uniq_data {
   1380   long maxchars;
   1381   long nchars;
   1382   long nfields;
   1383   long repeats;
   1384 };
   1385 
   1386 // toys/posix/uudecode.c
   1387 
   1388 struct uudecode_data {
   1389   char *o;
   1390 };
   1391 
   1392 // toys/posix/wc.c
   1393 
   1394 struct wc_data {
   1395   unsigned long totals[4];
   1396 };
   1397 
   1398 // toys/posix/xargs.c
   1399 
   1400 struct 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 
   1411 extern 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