1*cf5a6c84SAndroid Build Coastguard Worker struct gzip_data { 2*cf5a6c84SAndroid Build Coastguard Worker int level; 3*cf5a6c84SAndroid Build Coastguard Worker }; 4*cf5a6c84SAndroid Build Coastguard Worker 5*cf5a6c84SAndroid Build Coastguard Worker struct hostname_data { 6*cf5a6c84SAndroid Build Coastguard Worker char *F; 7*cf5a6c84SAndroid Build Coastguard Worker }; 8*cf5a6c84SAndroid Build Coastguard Worker 9*cf5a6c84SAndroid Build Coastguard Worker struct md5sum_data { 10*cf5a6c84SAndroid Build Coastguard Worker int sawline; 11*cf5a6c84SAndroid Build Coastguard Worker }; 12*cf5a6c84SAndroid Build Coastguard Worker 13*cf5a6c84SAndroid Build Coastguard Worker struct mktemp_data { 14*cf5a6c84SAndroid Build Coastguard Worker char *p, *tmpdir; 15*cf5a6c84SAndroid Build Coastguard Worker }; 16*cf5a6c84SAndroid Build Coastguard Worker 17*cf5a6c84SAndroid Build Coastguard Worker struct mount_data { 18*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *o; 19*cf5a6c84SAndroid Build Coastguard Worker char *t, *O; 20*cf5a6c84SAndroid Build Coastguard Worker 21*cf5a6c84SAndroid Build Coastguard Worker unsigned long flags; 22*cf5a6c84SAndroid Build Coastguard Worker char *opts; 23*cf5a6c84SAndroid Build Coastguard Worker int okuser; 24*cf5a6c84SAndroid Build Coastguard Worker }; 25*cf5a6c84SAndroid Build Coastguard Worker 26*cf5a6c84SAndroid Build Coastguard Worker struct seq_data { 27*cf5a6c84SAndroid Build Coastguard Worker char *s, *f; 28*cf5a6c84SAndroid Build Coastguard Worker 29*cf5a6c84SAndroid Build Coastguard Worker int precision, buflen; 30*cf5a6c84SAndroid Build Coastguard Worker }; 31*cf5a6c84SAndroid Build Coastguard Worker 32*cf5a6c84SAndroid Build Coastguard Worker struct umount_data { 33*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *t; 34*cf5a6c84SAndroid Build Coastguard Worker 35*cf5a6c84SAndroid Build Coastguard Worker char *types; 36*cf5a6c84SAndroid Build Coastguard Worker }; 37*cf5a6c84SAndroid Build Coastguard Worker 38*cf5a6c84SAndroid Build Coastguard Worker struct microcom_data { 39*cf5a6c84SAndroid Build Coastguard Worker long s; 40*cf5a6c84SAndroid Build Coastguard Worker 41*cf5a6c84SAndroid Build Coastguard Worker int fd, stok; 42*cf5a6c84SAndroid Build Coastguard Worker struct termios old_stdin, old_fd; 43*cf5a6c84SAndroid Build Coastguard Worker }; 44*cf5a6c84SAndroid Build Coastguard Worker 45*cf5a6c84SAndroid Build Coastguard Worker struct dos2unix_data { 46*cf5a6c84SAndroid Build Coastguard Worker char *tempfile; 47*cf5a6c84SAndroid Build Coastguard Worker }; 48*cf5a6c84SAndroid Build Coastguard Worker 49*cf5a6c84SAndroid Build Coastguard Worker struct getopt_data { 50*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *l; 51*cf5a6c84SAndroid Build Coastguard Worker char *o, *n; 52*cf5a6c84SAndroid Build Coastguard Worker }; 53*cf5a6c84SAndroid Build Coastguard Worker 54*cf5a6c84SAndroid Build Coastguard Worker struct nsenter_data { 55*cf5a6c84SAndroid Build Coastguard Worker char *UupnmiC[7]; 56*cf5a6c84SAndroid Build Coastguard Worker long t; 57*cf5a6c84SAndroid Build Coastguard Worker }; 58*cf5a6c84SAndroid Build Coastguard Worker 59*cf5a6c84SAndroid Build Coastguard Worker struct realpath_data { 60*cf5a6c84SAndroid Build Coastguard Worker char *R, *relative_base; 61*cf5a6c84SAndroid Build Coastguard Worker }; 62*cf5a6c84SAndroid Build Coastguard Worker 63*cf5a6c84SAndroid Build Coastguard Worker struct setsid_data { 64*cf5a6c84SAndroid Build Coastguard Worker long c; 65*cf5a6c84SAndroid Build Coastguard Worker }; 66*cf5a6c84SAndroid Build Coastguard Worker 67*cf5a6c84SAndroid Build Coastguard Worker struct stat_data { 68*cf5a6c84SAndroid Build Coastguard Worker char *c; 69*cf5a6c84SAndroid Build Coastguard Worker 70*cf5a6c84SAndroid Build Coastguard Worker union { 71*cf5a6c84SAndroid Build Coastguard Worker struct stat st; 72*cf5a6c84SAndroid Build Coastguard Worker struct statfs sf; 73*cf5a6c84SAndroid Build Coastguard Worker } stat; 74*cf5a6c84SAndroid Build Coastguard Worker char *file, *pattern; 75*cf5a6c84SAndroid Build Coastguard Worker int patlen; 76*cf5a6c84SAndroid Build Coastguard Worker }; 77*cf5a6c84SAndroid Build Coastguard Worker 78*cf5a6c84SAndroid Build Coastguard Worker struct timeout_data { 79*cf5a6c84SAndroid Build Coastguard Worker char *s, *k; 80*cf5a6c84SAndroid Build Coastguard Worker 81*cf5a6c84SAndroid Build Coastguard Worker struct pollfd pfd; 82*cf5a6c84SAndroid Build Coastguard Worker sigjmp_buf sj; 83*cf5a6c84SAndroid Build Coastguard Worker int fds[2], pid, rc; 84*cf5a6c84SAndroid Build Coastguard Worker }; 85*cf5a6c84SAndroid Build Coastguard Worker 86*cf5a6c84SAndroid Build Coastguard Worker struct truncate_data { 87*cf5a6c84SAndroid Build Coastguard Worker char *s; 88*cf5a6c84SAndroid Build Coastguard Worker 89*cf5a6c84SAndroid Build Coastguard Worker long long size; 90*cf5a6c84SAndroid Build Coastguard Worker int type; 91*cf5a6c84SAndroid Build Coastguard Worker }; 92*cf5a6c84SAndroid Build Coastguard Worker 93*cf5a6c84SAndroid Build Coastguard Worker struct xxd_data { 94*cf5a6c84SAndroid Build Coastguard Worker long s, g, o, l, c; 95*cf5a6c84SAndroid Build Coastguard Worker }; 96*cf5a6c84SAndroid Build Coastguard Worker 97*cf5a6c84SAndroid Build Coastguard Worker struct diff_data { 98*cf5a6c84SAndroid Build Coastguard Worker long U; 99*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *L; 100*cf5a6c84SAndroid Build Coastguard Worker char *F, *S, *new_line_format, *old_line_format, *unchanged_line_format; 101*cf5a6c84SAndroid Build Coastguard Worker 102*cf5a6c84SAndroid Build Coastguard Worker int dir_num, size, is_binary, is_symlink, differ, change, len[2], *offset[2]; 103*cf5a6c84SAndroid Build Coastguard Worker struct stat st[2]; 104*cf5a6c84SAndroid Build Coastguard Worker struct { 105*cf5a6c84SAndroid Build Coastguard Worker char **list; 106*cf5a6c84SAndroid Build Coastguard Worker int nr_elm; 107*cf5a6c84SAndroid Build Coastguard Worker } dir[2]; 108*cf5a6c84SAndroid Build Coastguard Worker struct { 109*cf5a6c84SAndroid Build Coastguard Worker FILE *fp; 110*cf5a6c84SAndroid Build Coastguard Worker int len; 111*cf5a6c84SAndroid Build Coastguard Worker } file[2]; 112*cf5a6c84SAndroid Build Coastguard Worker struct { 113*cf5a6c84SAndroid Build Coastguard Worker char *name; 114*cf5a6c84SAndroid Build Coastguard Worker int len; 115*cf5a6c84SAndroid Build Coastguard Worker } link[2]; 116*cf5a6c84SAndroid Build Coastguard Worker }; 117*cf5a6c84SAndroid Build Coastguard Worker 118*cf5a6c84SAndroid Build Coastguard Worker struct expr_data { 119*cf5a6c84SAndroid Build Coastguard Worker char **tok, *delete; 120*cf5a6c84SAndroid Build Coastguard Worker }; 121*cf5a6c84SAndroid Build Coastguard Worker 122*cf5a6c84SAndroid Build Coastguard Worker struct tr_data { 123*cf5a6c84SAndroid Build Coastguard Worker short *map; 124*cf5a6c84SAndroid Build Coastguard Worker int len1, len2; 125*cf5a6c84SAndroid Build Coastguard Worker }; 126*cf5a6c84SAndroid Build Coastguard Worker 127*cf5a6c84SAndroid Build Coastguard Worker struct basename_data { 128*cf5a6c84SAndroid Build Coastguard Worker char *s; 129*cf5a6c84SAndroid Build Coastguard Worker }; 130*cf5a6c84SAndroid Build Coastguard Worker 131*cf5a6c84SAndroid Build Coastguard Worker struct chmod_data { 132*cf5a6c84SAndroid Build Coastguard Worker char *mode; 133*cf5a6c84SAndroid Build Coastguard Worker }; 134*cf5a6c84SAndroid Build Coastguard Worker 135*cf5a6c84SAndroid Build Coastguard Worker struct cmp_data { 136*cf5a6c84SAndroid Build Coastguard Worker long n; 137*cf5a6c84SAndroid Build Coastguard Worker 138*cf5a6c84SAndroid Build Coastguard Worker int fd; 139*cf5a6c84SAndroid Build Coastguard Worker char *name; 140*cf5a6c84SAndroid Build Coastguard Worker }; 141*cf5a6c84SAndroid Build Coastguard Worker 142*cf5a6c84SAndroid Build Coastguard Worker struct cp_data { 143*cf5a6c84SAndroid Build Coastguard Worker union { 144*cf5a6c84SAndroid Build Coastguard Worker // install's options 145*cf5a6c84SAndroid Build Coastguard Worker struct { 146*cf5a6c84SAndroid Build Coastguard Worker char *g, *o, *m, *t; 147*cf5a6c84SAndroid Build Coastguard Worker } i; 148*cf5a6c84SAndroid Build Coastguard Worker // cp's options 149*cf5a6c84SAndroid Build Coastguard Worker struct { 150*cf5a6c84SAndroid Build Coastguard Worker char *t, *preserve; 151*cf5a6c84SAndroid Build Coastguard Worker } c; 152*cf5a6c84SAndroid Build Coastguard Worker }; 153*cf5a6c84SAndroid Build Coastguard Worker 154*cf5a6c84SAndroid Build Coastguard Worker char *destname; 155*cf5a6c84SAndroid Build Coastguard Worker struct stat top; 156*cf5a6c84SAndroid Build Coastguard Worker int (*callback)(struct dirtree *try); 157*cf5a6c84SAndroid Build Coastguard Worker uid_t uid; 158*cf5a6c84SAndroid Build Coastguard Worker gid_t gid; 159*cf5a6c84SAndroid Build Coastguard Worker int pflags; 160*cf5a6c84SAndroid Build Coastguard Worker }; 161*cf5a6c84SAndroid Build Coastguard Worker 162*cf5a6c84SAndroid Build Coastguard Worker struct cpio_data { 163*cf5a6c84SAndroid Build Coastguard Worker char *F, *H, *R; 164*cf5a6c84SAndroid Build Coastguard Worker }; 165*cf5a6c84SAndroid Build Coastguard Worker 166*cf5a6c84SAndroid Build Coastguard Worker struct cut_data { 167*cf5a6c84SAndroid Build Coastguard Worker char *d, *O; 168*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *select[5]; // we treat them the same, so loop through 169*cf5a6c84SAndroid Build Coastguard Worker 170*cf5a6c84SAndroid Build Coastguard Worker unsigned line; 171*cf5a6c84SAndroid Build Coastguard Worker int pairs; 172*cf5a6c84SAndroid Build Coastguard Worker regex_t reg; 173*cf5a6c84SAndroid Build Coastguard Worker }; 174*cf5a6c84SAndroid Build Coastguard Worker 175*cf5a6c84SAndroid Build Coastguard Worker struct date_data { 176*cf5a6c84SAndroid Build Coastguard Worker char *s, *r, *I, *D, *d; 177*cf5a6c84SAndroid Build Coastguard Worker 178*cf5a6c84SAndroid Build Coastguard Worker unsigned nano; 179*cf5a6c84SAndroid Build Coastguard Worker }; 180*cf5a6c84SAndroid Build Coastguard Worker 181*cf5a6c84SAndroid Build Coastguard Worker struct dd_data { 182*cf5a6c84SAndroid Build Coastguard Worker // Display fields 183*cf5a6c84SAndroid Build Coastguard Worker int show_xfer, show_records; 184*cf5a6c84SAndroid Build Coastguard Worker unsigned long long bytes, in_full, in_part, out_full, out_part, start; 185*cf5a6c84SAndroid Build Coastguard Worker }; 186*cf5a6c84SAndroid Build Coastguard Worker 187*cf5a6c84SAndroid Build Coastguard Worker struct du_data { 188*cf5a6c84SAndroid Build Coastguard Worker long d; 189*cf5a6c84SAndroid Build Coastguard Worker 190*cf5a6c84SAndroid Build Coastguard Worker unsigned long depth, total; 191*cf5a6c84SAndroid Build Coastguard Worker dev_t st_dev; 192*cf5a6c84SAndroid Build Coastguard Worker void *inodes; 193*cf5a6c84SAndroid Build Coastguard Worker }; 194*cf5a6c84SAndroid Build Coastguard Worker 195*cf5a6c84SAndroid Build Coastguard Worker struct env_data { 196*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *u; 197*cf5a6c84SAndroid Build Coastguard Worker char *e; 198*cf5a6c84SAndroid Build Coastguard Worker }; 199*cf5a6c84SAndroid Build Coastguard Worker 200*cf5a6c84SAndroid Build Coastguard Worker struct file_data { 201*cf5a6c84SAndroid Build Coastguard Worker int max_name_len; 202*cf5a6c84SAndroid Build Coastguard Worker off_t len; 203*cf5a6c84SAndroid Build Coastguard Worker }; 204*cf5a6c84SAndroid Build Coastguard Worker 205*cf5a6c84SAndroid Build Coastguard Worker struct find_data { 206*cf5a6c84SAndroid Build Coastguard Worker char **filter; 207*cf5a6c84SAndroid Build Coastguard Worker struct double_list *argdata; 208*cf5a6c84SAndroid Build Coastguard Worker int topdir, xdev, depth; 209*cf5a6c84SAndroid Build Coastguard Worker time_t now; 210*cf5a6c84SAndroid Build Coastguard Worker long max_bytes; 211*cf5a6c84SAndroid Build Coastguard Worker char *start; 212*cf5a6c84SAndroid Build Coastguard Worker }; 213*cf5a6c84SAndroid Build Coastguard Worker 214*cf5a6c84SAndroid Build Coastguard Worker struct grep_data { 215*cf5a6c84SAndroid Build Coastguard Worker long m, A, B, C; 216*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *f, *e, *M, *S, *exclude_dir; 217*cf5a6c84SAndroid Build Coastguard Worker char *color; 218*cf5a6c84SAndroid Build Coastguard Worker 219*cf5a6c84SAndroid Build Coastguard Worker char *purple, *cyan, *red, *green, *grey; 220*cf5a6c84SAndroid Build Coastguard Worker struct double_list *reg; 221*cf5a6c84SAndroid Build Coastguard Worker int found, tried, delim; 222*cf5a6c84SAndroid Build Coastguard Worker struct arg_list **fixed; 223*cf5a6c84SAndroid Build Coastguard Worker }; 224*cf5a6c84SAndroid Build Coastguard Worker 225*cf5a6c84SAndroid Build Coastguard Worker struct head_data { 226*cf5a6c84SAndroid Build Coastguard Worker long c, n; 227*cf5a6c84SAndroid Build Coastguard Worker 228*cf5a6c84SAndroid Build Coastguard Worker int file_no; 229*cf5a6c84SAndroid Build Coastguard Worker }; 230*cf5a6c84SAndroid Build Coastguard Worker 231*cf5a6c84SAndroid Build Coastguard Worker struct id_data { 232*cf5a6c84SAndroid Build Coastguard Worker int is_groups; 233*cf5a6c84SAndroid Build Coastguard Worker }; 234*cf5a6c84SAndroid Build Coastguard Worker 235*cf5a6c84SAndroid Build Coastguard Worker struct ln_data { 236*cf5a6c84SAndroid Build Coastguard Worker char *t; 237*cf5a6c84SAndroid Build Coastguard Worker }; 238*cf5a6c84SAndroid Build Coastguard Worker 239*cf5a6c84SAndroid Build Coastguard Worker struct ls_data { 240*cf5a6c84SAndroid Build Coastguard Worker long w, l, block_size; 241*cf5a6c84SAndroid Build Coastguard Worker char *color, *sort; 242*cf5a6c84SAndroid Build Coastguard Worker 243*cf5a6c84SAndroid Build Coastguard Worker struct dirtree *files, *singledir; 244*cf5a6c84SAndroid Build Coastguard Worker unsigned screen_width; 245*cf5a6c84SAndroid Build Coastguard Worker int nl_title; 246*cf5a6c84SAndroid Build Coastguard Worker char *escmore; 247*cf5a6c84SAndroid Build Coastguard Worker }; 248*cf5a6c84SAndroid Build Coastguard Worker 249*cf5a6c84SAndroid Build Coastguard Worker struct mkdir_data { 250*cf5a6c84SAndroid Build Coastguard Worker char *m, *Z; 251*cf5a6c84SAndroid Build Coastguard Worker }; 252*cf5a6c84SAndroid Build Coastguard Worker 253*cf5a6c84SAndroid Build Coastguard Worker struct nl_data { 254*cf5a6c84SAndroid Build Coastguard Worker char *s, *n, *b; 255*cf5a6c84SAndroid Build Coastguard Worker long w, l, v; 256*cf5a6c84SAndroid Build Coastguard Worker 257*cf5a6c84SAndroid Build Coastguard Worker // Count of consecutive blank lines for -l has to persist between files 258*cf5a6c84SAndroid Build Coastguard Worker long lcount, slen; 259*cf5a6c84SAndroid Build Coastguard Worker }; 260*cf5a6c84SAndroid Build Coastguard Worker 261*cf5a6c84SAndroid Build Coastguard Worker struct od_data { 262*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *t; 263*cf5a6c84SAndroid Build Coastguard Worker char *A; 264*cf5a6c84SAndroid Build Coastguard Worker long N, w, j; 265*cf5a6c84SAndroid Build Coastguard Worker 266*cf5a6c84SAndroid Build Coastguard Worker int address_idx; 267*cf5a6c84SAndroid Build Coastguard Worker unsigned types, leftover, star; 268*cf5a6c84SAndroid Build Coastguard Worker char *buf; // Points to buffers[0] or buffers[1]. 269*cf5a6c84SAndroid Build Coastguard Worker char *bufs[2]; // Used to detect duplicate lines. 270*cf5a6c84SAndroid Build Coastguard Worker off_t pos; 271*cf5a6c84SAndroid Build Coastguard Worker }; 272*cf5a6c84SAndroid Build Coastguard Worker 273*cf5a6c84SAndroid Build Coastguard Worker struct paste_data { 274*cf5a6c84SAndroid Build Coastguard Worker char *d; 275*cf5a6c84SAndroid Build Coastguard Worker 276*cf5a6c84SAndroid Build Coastguard Worker int files; 277*cf5a6c84SAndroid Build Coastguard Worker }; 278*cf5a6c84SAndroid Build Coastguard Worker 279*cf5a6c84SAndroid Build Coastguard Worker struct patch_data { 280*cf5a6c84SAndroid Build Coastguard Worker char *i, *d; 281*cf5a6c84SAndroid Build Coastguard Worker long v, p, g, F; 282*cf5a6c84SAndroid Build Coastguard Worker 283*cf5a6c84SAndroid Build Coastguard Worker void *current_hunk; 284*cf5a6c84SAndroid Build Coastguard Worker long oldline, oldlen, newline, newlen, linenum, outnum; 285*cf5a6c84SAndroid Build Coastguard Worker int context, state, filein, fileout, filepatch, hunknum; 286*cf5a6c84SAndroid Build Coastguard Worker char *tempname; 287*cf5a6c84SAndroid Build Coastguard Worker }; 288*cf5a6c84SAndroid Build Coastguard Worker 289*cf5a6c84SAndroid Build Coastguard Worker struct ps_data { 290*cf5a6c84SAndroid Build Coastguard Worker union { 291*cf5a6c84SAndroid Build Coastguard Worker struct { 292*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *G, *g, *U, *u, *t, *s, *p, *O, *o, *P, *k; 293*cf5a6c84SAndroid Build Coastguard Worker } ps; 294*cf5a6c84SAndroid Build Coastguard Worker struct { 295*cf5a6c84SAndroid Build Coastguard Worker long n, m, d, s; 296*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *u, *p, *o, *k, *O; 297*cf5a6c84SAndroid Build Coastguard Worker } top; 298*cf5a6c84SAndroid Build Coastguard Worker struct { 299*cf5a6c84SAndroid Build Coastguard Worker char *L; 300*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *G, *g, *P, *s, *t, *U, *u; 301*cf5a6c84SAndroid Build Coastguard Worker char *d; 302*cf5a6c84SAndroid Build Coastguard Worker 303*cf5a6c84SAndroid Build Coastguard Worker void *regexes, *snapshot; 304*cf5a6c84SAndroid Build Coastguard Worker int signal; 305*cf5a6c84SAndroid Build Coastguard Worker pid_t self, match; 306*cf5a6c84SAndroid Build Coastguard Worker } pgrep; 307*cf5a6c84SAndroid Build Coastguard Worker }; 308*cf5a6c84SAndroid Build Coastguard Worker 309*cf5a6c84SAndroid Build Coastguard Worker struct ps_ptr_len { 310*cf5a6c84SAndroid Build Coastguard Worker void *ptr; 311*cf5a6c84SAndroid Build Coastguard Worker long len; 312*cf5a6c84SAndroid Build Coastguard Worker } gg, GG, pp, PP, ss, tt, uu, UU; 313*cf5a6c84SAndroid Build Coastguard Worker struct dirtree *threadparent; 314*cf5a6c84SAndroid Build Coastguard Worker unsigned width, height, scroll; 315*cf5a6c84SAndroid Build Coastguard Worker dev_t tty; 316*cf5a6c84SAndroid Build Coastguard Worker void *fields, *kfields; 317*cf5a6c84SAndroid Build Coastguard Worker long long ticks, bits, time; 318*cf5a6c84SAndroid Build Coastguard Worker int kcount, forcek, sortpos, pidlen; 319*cf5a6c84SAndroid Build Coastguard Worker int (*match_process)(long long *slot); 320*cf5a6c84SAndroid Build Coastguard Worker void (*show_process)(void *tb); 321*cf5a6c84SAndroid Build Coastguard Worker }; 322*cf5a6c84SAndroid Build Coastguard Worker 323*cf5a6c84SAndroid Build Coastguard Worker struct sed_data { 324*cf5a6c84SAndroid Build Coastguard Worker char *i; 325*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *f, *e; 326*cf5a6c84SAndroid Build Coastguard Worker 327*cf5a6c84SAndroid Build Coastguard Worker // processed pattern list 328*cf5a6c84SAndroid Build Coastguard Worker struct double_list *pattern; 329*cf5a6c84SAndroid Build Coastguard Worker 330*cf5a6c84SAndroid Build Coastguard Worker char *nextline, *remember, *tarxform; 331*cf5a6c84SAndroid Build Coastguard Worker void *restart, *lastregex; 332*cf5a6c84SAndroid Build Coastguard Worker long nextlen, rememberlen, count; 333*cf5a6c84SAndroid Build Coastguard Worker int fdout, noeol; 334*cf5a6c84SAndroid Build Coastguard Worker unsigned xx, tarxlen, xflags; 335*cf5a6c84SAndroid Build Coastguard Worker char delim, xftype; 336*cf5a6c84SAndroid Build Coastguard Worker }; 337*cf5a6c84SAndroid Build Coastguard Worker 338*cf5a6c84SAndroid Build Coastguard Worker struct sort_data { 339*cf5a6c84SAndroid Build Coastguard Worker char *t; 340*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *k; 341*cf5a6c84SAndroid Build Coastguard Worker char *o, *T, S; 342*cf5a6c84SAndroid Build Coastguard Worker 343*cf5a6c84SAndroid Build Coastguard Worker void *key_list; 344*cf5a6c84SAndroid Build Coastguard Worker unsigned linecount; 345*cf5a6c84SAndroid Build Coastguard Worker char **lines, *name; 346*cf5a6c84SAndroid Build Coastguard Worker }; 347*cf5a6c84SAndroid Build Coastguard Worker 348*cf5a6c84SAndroid Build Coastguard Worker struct tail_data { 349*cf5a6c84SAndroid Build Coastguard Worker long n, c; 350*cf5a6c84SAndroid Build Coastguard Worker char *s; 351*cf5a6c84SAndroid Build Coastguard Worker 352*cf5a6c84SAndroid Build Coastguard Worker int file_no, last_fd, ss; 353*cf5a6c84SAndroid Build Coastguard Worker struct xnotify *not; 354*cf5a6c84SAndroid Build Coastguard Worker struct { 355*cf5a6c84SAndroid Build Coastguard Worker char *path; 356*cf5a6c84SAndroid Build Coastguard Worker int fd; 357*cf5a6c84SAndroid Build Coastguard Worker struct dev_ino di; 358*cf5a6c84SAndroid Build Coastguard Worker } *F; 359*cf5a6c84SAndroid Build Coastguard Worker }; 360*cf5a6c84SAndroid Build Coastguard Worker 361*cf5a6c84SAndroid Build Coastguard Worker struct tar_data { 362*cf5a6c84SAndroid Build Coastguard Worker char *f, *C, *I; 363*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *T, *X, *xform; 364*cf5a6c84SAndroid Build Coastguard Worker long strip; 365*cf5a6c84SAndroid Build Coastguard Worker char *to_command, *owner, *group, *mtime, *mode, *sort; 366*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *exclude; 367*cf5a6c84SAndroid Build Coastguard Worker 368*cf5a6c84SAndroid Build Coastguard Worker struct double_list *incl, *excl, *seen; 369*cf5a6c84SAndroid Build Coastguard Worker struct string_list *dirs; 370*cf5a6c84SAndroid Build Coastguard Worker char *cwd, **xfsed; 371*cf5a6c84SAndroid Build Coastguard Worker int fd, ouid, ggid, hlc, warn, sparselen, pid, xfpipe[2]; 372*cf5a6c84SAndroid Build Coastguard Worker struct dev_ino archive_di; 373*cf5a6c84SAndroid Build Coastguard Worker long long *sparse; 374*cf5a6c84SAndroid Build Coastguard Worker time_t mtt; 375*cf5a6c84SAndroid Build Coastguard Worker 376*cf5a6c84SAndroid Build Coastguard Worker // hardlinks seen so far (hlc many) 377*cf5a6c84SAndroid Build Coastguard Worker struct { 378*cf5a6c84SAndroid Build Coastguard Worker char *arg; 379*cf5a6c84SAndroid Build Coastguard Worker struct dev_ino di; 380*cf5a6c84SAndroid Build Coastguard Worker } *hlx; 381*cf5a6c84SAndroid Build Coastguard Worker 382*cf5a6c84SAndroid Build Coastguard Worker // Parsed information about a tar header. 383*cf5a6c84SAndroid Build Coastguard Worker struct tar_header { 384*cf5a6c84SAndroid Build Coastguard Worker char *name, *link_target, *uname, *gname; 385*cf5a6c84SAndroid Build Coastguard Worker long long size, ssize, oldsparse; 386*cf5a6c84SAndroid Build Coastguard Worker uid_t uid; 387*cf5a6c84SAndroid Build Coastguard Worker gid_t gid; 388*cf5a6c84SAndroid Build Coastguard Worker mode_t mode; 389*cf5a6c84SAndroid Build Coastguard Worker time_t mtime; 390*cf5a6c84SAndroid Build Coastguard Worker dev_t device; 391*cf5a6c84SAndroid Build Coastguard Worker } hdr; 392*cf5a6c84SAndroid Build Coastguard Worker }; 393*cf5a6c84SAndroid Build Coastguard Worker 394*cf5a6c84SAndroid Build Coastguard Worker struct tee_data { 395*cf5a6c84SAndroid Build Coastguard Worker void *outputs; 396*cf5a6c84SAndroid Build Coastguard Worker int out; 397*cf5a6c84SAndroid Build Coastguard Worker }; 398*cf5a6c84SAndroid Build Coastguard Worker 399*cf5a6c84SAndroid Build Coastguard Worker struct touch_data { 400*cf5a6c84SAndroid Build Coastguard Worker char *t, *r, *d; 401*cf5a6c84SAndroid Build Coastguard Worker }; 402*cf5a6c84SAndroid Build Coastguard Worker 403*cf5a6c84SAndroid Build Coastguard Worker struct uniq_data { 404*cf5a6c84SAndroid Build Coastguard Worker long w, s, f; 405*cf5a6c84SAndroid Build Coastguard Worker 406*cf5a6c84SAndroid Build Coastguard Worker long repeats; 407*cf5a6c84SAndroid Build Coastguard Worker }; 408*cf5a6c84SAndroid Build Coastguard Worker 409*cf5a6c84SAndroid Build Coastguard Worker struct wc_data { 410*cf5a6c84SAndroid Build Coastguard Worker unsigned long totals[5]; 411*cf5a6c84SAndroid Build Coastguard Worker }; 412*cf5a6c84SAndroid Build Coastguard Worker 413*cf5a6c84SAndroid Build Coastguard Worker struct xargs_data { 414*cf5a6c84SAndroid Build Coastguard Worker long s, n, P; 415*cf5a6c84SAndroid Build Coastguard Worker char *E; 416*cf5a6c84SAndroid Build Coastguard Worker 417*cf5a6c84SAndroid Build Coastguard Worker long entries, bytes, np; 418*cf5a6c84SAndroid Build Coastguard Worker char delim; 419*cf5a6c84SAndroid Build Coastguard Worker FILE *tty; 420*cf5a6c84SAndroid Build Coastguard Worker }; 421*cf5a6c84SAndroid Build Coastguard Worker extern union global_union { 422*cf5a6c84SAndroid Build Coastguard Worker struct gzip_data gzip; 423*cf5a6c84SAndroid Build Coastguard Worker struct hostname_data hostname; 424*cf5a6c84SAndroid Build Coastguard Worker struct md5sum_data md5sum; 425*cf5a6c84SAndroid Build Coastguard Worker struct mktemp_data mktemp; 426*cf5a6c84SAndroid Build Coastguard Worker struct mount_data mount; 427*cf5a6c84SAndroid Build Coastguard Worker struct seq_data seq; 428*cf5a6c84SAndroid Build Coastguard Worker struct umount_data umount; 429*cf5a6c84SAndroid Build Coastguard Worker struct microcom_data microcom; 430*cf5a6c84SAndroid Build Coastguard Worker struct dos2unix_data dos2unix; 431*cf5a6c84SAndroid Build Coastguard Worker struct getopt_data getopt; 432*cf5a6c84SAndroid Build Coastguard Worker struct nsenter_data nsenter; 433*cf5a6c84SAndroid Build Coastguard Worker struct realpath_data realpath; 434*cf5a6c84SAndroid Build Coastguard Worker struct setsid_data setsid; 435*cf5a6c84SAndroid Build Coastguard Worker struct stat_data stat; 436*cf5a6c84SAndroid Build Coastguard Worker struct timeout_data timeout; 437*cf5a6c84SAndroid Build Coastguard Worker struct truncate_data truncate; 438*cf5a6c84SAndroid Build Coastguard Worker struct xxd_data xxd; 439*cf5a6c84SAndroid Build Coastguard Worker struct diff_data diff; 440*cf5a6c84SAndroid Build Coastguard Worker struct expr_data expr; 441*cf5a6c84SAndroid Build Coastguard Worker struct tr_data tr; 442*cf5a6c84SAndroid Build Coastguard Worker struct basename_data basename; 443*cf5a6c84SAndroid Build Coastguard Worker struct chmod_data chmod; 444*cf5a6c84SAndroid Build Coastguard Worker struct cmp_data cmp; 445*cf5a6c84SAndroid Build Coastguard Worker struct cp_data cp; 446*cf5a6c84SAndroid Build Coastguard Worker struct cpio_data cpio; 447*cf5a6c84SAndroid Build Coastguard Worker struct cut_data cut; 448*cf5a6c84SAndroid Build Coastguard Worker struct date_data date; 449*cf5a6c84SAndroid Build Coastguard Worker struct dd_data dd; 450*cf5a6c84SAndroid Build Coastguard Worker struct du_data du; 451*cf5a6c84SAndroid Build Coastguard Worker struct env_data env; 452*cf5a6c84SAndroid Build Coastguard Worker struct file_data file; 453*cf5a6c84SAndroid Build Coastguard Worker struct find_data find; 454*cf5a6c84SAndroid Build Coastguard Worker struct grep_data grep; 455*cf5a6c84SAndroid Build Coastguard Worker struct head_data head; 456*cf5a6c84SAndroid Build Coastguard Worker struct id_data id; 457*cf5a6c84SAndroid Build Coastguard Worker struct ln_data ln; 458*cf5a6c84SAndroid Build Coastguard Worker struct ls_data ls; 459*cf5a6c84SAndroid Build Coastguard Worker struct mkdir_data mkdir; 460*cf5a6c84SAndroid Build Coastguard Worker struct nl_data nl; 461*cf5a6c84SAndroid Build Coastguard Worker struct od_data od; 462*cf5a6c84SAndroid Build Coastguard Worker struct paste_data paste; 463*cf5a6c84SAndroid Build Coastguard Worker struct patch_data patch; 464*cf5a6c84SAndroid Build Coastguard Worker struct ps_data ps; 465*cf5a6c84SAndroid Build Coastguard Worker struct sed_data sed; 466*cf5a6c84SAndroid Build Coastguard Worker struct sort_data sort; 467*cf5a6c84SAndroid Build Coastguard Worker struct tail_data tail; 468*cf5a6c84SAndroid Build Coastguard Worker struct tar_data tar; 469*cf5a6c84SAndroid Build Coastguard Worker struct tee_data tee; 470*cf5a6c84SAndroid Build Coastguard Worker struct touch_data touch; 471*cf5a6c84SAndroid Build Coastguard Worker struct uniq_data uniq; 472*cf5a6c84SAndroid Build Coastguard Worker struct wc_data wc; 473*cf5a6c84SAndroid Build Coastguard Worker struct xargs_data xargs; 474*cf5a6c84SAndroid Build Coastguard Worker } this; 475