1*cf5a6c84SAndroid Build Coastguard Worker struct log_data { 2*cf5a6c84SAndroid Build Coastguard Worker char *t, *p; 3*cf5a6c84SAndroid Build Coastguard Worker 4*cf5a6c84SAndroid Build Coastguard Worker int pri; 5*cf5a6c84SAndroid Build Coastguard Worker }; 6*cf5a6c84SAndroid Build Coastguard Worker 7*cf5a6c84SAndroid Build Coastguard Worker struct dmesg_data { 8*cf5a6c84SAndroid Build Coastguard Worker long n, s; 9*cf5a6c84SAndroid Build Coastguard Worker 10*cf5a6c84SAndroid Build Coastguard Worker int use_color; 11*cf5a6c84SAndroid Build Coastguard Worker time_t tea; 12*cf5a6c84SAndroid Build Coastguard Worker }; 13*cf5a6c84SAndroid Build Coastguard Worker 14*cf5a6c84SAndroid Build Coastguard Worker struct gzip_data { 15*cf5a6c84SAndroid Build Coastguard Worker int level; 16*cf5a6c84SAndroid Build Coastguard Worker }; 17*cf5a6c84SAndroid Build Coastguard Worker 18*cf5a6c84SAndroid Build Coastguard Worker struct hostname_data { 19*cf5a6c84SAndroid Build Coastguard Worker char *F; 20*cf5a6c84SAndroid Build Coastguard Worker }; 21*cf5a6c84SAndroid Build Coastguard Worker 22*cf5a6c84SAndroid Build Coastguard Worker struct killall_data { 23*cf5a6c84SAndroid Build Coastguard Worker char *s; 24*cf5a6c84SAndroid Build Coastguard Worker 25*cf5a6c84SAndroid Build Coastguard Worker int signum; 26*cf5a6c84SAndroid Build Coastguard Worker pid_t cur_pid; 27*cf5a6c84SAndroid Build Coastguard Worker char **names; 28*cf5a6c84SAndroid Build Coastguard Worker short *err; 29*cf5a6c84SAndroid Build Coastguard Worker struct int_list { struct int_list *next; int val; } *pids; 30*cf5a6c84SAndroid Build Coastguard Worker }; 31*cf5a6c84SAndroid Build Coastguard Worker 32*cf5a6c84SAndroid Build Coastguard Worker struct md5sum_data { 33*cf5a6c84SAndroid Build Coastguard Worker int sawline; 34*cf5a6c84SAndroid Build Coastguard Worker }; 35*cf5a6c84SAndroid Build Coastguard Worker 36*cf5a6c84SAndroid Build Coastguard Worker struct mknod_data { 37*cf5a6c84SAndroid Build Coastguard Worker char *Z, *m; 38*cf5a6c84SAndroid Build Coastguard Worker }; 39*cf5a6c84SAndroid Build Coastguard Worker 40*cf5a6c84SAndroid Build Coastguard Worker struct mktemp_data { 41*cf5a6c84SAndroid Build Coastguard Worker char *p, *tmpdir; 42*cf5a6c84SAndroid Build Coastguard Worker }; 43*cf5a6c84SAndroid Build Coastguard Worker 44*cf5a6c84SAndroid Build Coastguard Worker struct mount_data { 45*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *o; 46*cf5a6c84SAndroid Build Coastguard Worker char *t, *O; 47*cf5a6c84SAndroid Build Coastguard Worker 48*cf5a6c84SAndroid Build Coastguard Worker unsigned long flags; 49*cf5a6c84SAndroid Build Coastguard Worker char *opts; 50*cf5a6c84SAndroid Build Coastguard Worker int okuser; 51*cf5a6c84SAndroid Build Coastguard Worker }; 52*cf5a6c84SAndroid Build Coastguard Worker 53*cf5a6c84SAndroid Build Coastguard Worker struct pidof_data { 54*cf5a6c84SAndroid Build Coastguard Worker char *o; 55*cf5a6c84SAndroid Build Coastguard Worker }; 56*cf5a6c84SAndroid Build Coastguard Worker 57*cf5a6c84SAndroid Build Coastguard Worker struct seq_data { 58*cf5a6c84SAndroid Build Coastguard Worker char *s, *f; 59*cf5a6c84SAndroid Build Coastguard Worker 60*cf5a6c84SAndroid Build Coastguard Worker int precision, buflen; 61*cf5a6c84SAndroid Build Coastguard Worker }; 62*cf5a6c84SAndroid Build Coastguard Worker 63*cf5a6c84SAndroid Build Coastguard Worker struct umount_data { 64*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *t; 65*cf5a6c84SAndroid Build Coastguard Worker 66*cf5a6c84SAndroid Build Coastguard Worker char *types; 67*cf5a6c84SAndroid Build Coastguard Worker }; 68*cf5a6c84SAndroid Build Coastguard Worker 69*cf5a6c84SAndroid Build Coastguard Worker struct ifconfig_data { 70*cf5a6c84SAndroid Build Coastguard Worker int sockfd; 71*cf5a6c84SAndroid Build Coastguard Worker }; 72*cf5a6c84SAndroid Build Coastguard Worker 73*cf5a6c84SAndroid Build Coastguard Worker struct microcom_data { 74*cf5a6c84SAndroid Build Coastguard Worker long s; 75*cf5a6c84SAndroid Build Coastguard Worker 76*cf5a6c84SAndroid Build Coastguard Worker int fd, stok; 77*cf5a6c84SAndroid Build Coastguard Worker struct termios old_stdin, old_fd; 78*cf5a6c84SAndroid Build Coastguard Worker }; 79*cf5a6c84SAndroid Build Coastguard Worker 80*cf5a6c84SAndroid Build Coastguard Worker struct netcat_data { 81*cf5a6c84SAndroid Build Coastguard Worker char *f, *s, *o, *O; 82*cf5a6c84SAndroid Build Coastguard Worker long q, p, W, w; 83*cf5a6c84SAndroid Build Coastguard Worker 84*cf5a6c84SAndroid Build Coastguard Worker unsigned ofd, olast, opos, ocount[2]; 85*cf5a6c84SAndroid Build Coastguard Worker char obuf[16]; 86*cf5a6c84SAndroid Build Coastguard Worker }; 87*cf5a6c84SAndroid Build Coastguard Worker 88*cf5a6c84SAndroid Build Coastguard Worker struct netstat_data { 89*cf5a6c84SAndroid Build Coastguard Worker struct num_cache *inodes; 90*cf5a6c84SAndroid Build Coastguard Worker int wpad; 91*cf5a6c84SAndroid Build Coastguard Worker }; 92*cf5a6c84SAndroid Build Coastguard Worker 93*cf5a6c84SAndroid Build Coastguard Worker struct ping_data { 94*cf5a6c84SAndroid Build Coastguard Worker char *I; 95*cf5a6c84SAndroid Build Coastguard Worker long w, W, i, s, c, t, m; 96*cf5a6c84SAndroid Build Coastguard Worker 97*cf5a6c84SAndroid Build Coastguard Worker struct sockaddr *sa; 98*cf5a6c84SAndroid Build Coastguard Worker int sock; 99*cf5a6c84SAndroid Build Coastguard Worker unsigned long sent, recv, fugit, min, max; 100*cf5a6c84SAndroid Build Coastguard Worker }; 101*cf5a6c84SAndroid Build Coastguard Worker 102*cf5a6c84SAndroid Build Coastguard Worker struct tunctl_data { 103*cf5a6c84SAndroid Build Coastguard Worker char *u; 104*cf5a6c84SAndroid Build Coastguard Worker }; 105*cf5a6c84SAndroid Build Coastguard Worker 106*cf5a6c84SAndroid Build Coastguard Worker struct base64_data { 107*cf5a6c84SAndroid Build Coastguard Worker long w; 108*cf5a6c84SAndroid Build Coastguard Worker 109*cf5a6c84SAndroid Build Coastguard Worker unsigned total; 110*cf5a6c84SAndroid Build Coastguard Worker unsigned n; // number of bits used in encoding. 5 for base32, 6 for base64 111*cf5a6c84SAndroid Build Coastguard Worker unsigned align; // number of bits to align to 112*cf5a6c84SAndroid Build Coastguard Worker }; 113*cf5a6c84SAndroid Build Coastguard Worker 114*cf5a6c84SAndroid Build Coastguard Worker struct blkdiscard_data { 115*cf5a6c84SAndroid Build Coastguard Worker long o, l; 116*cf5a6c84SAndroid Build Coastguard Worker }; 117*cf5a6c84SAndroid Build Coastguard Worker 118*cf5a6c84SAndroid Build Coastguard Worker struct blkid_data { 119*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *s; 120*cf5a6c84SAndroid Build Coastguard Worker char *o; 121*cf5a6c84SAndroid Build Coastguard Worker }; 122*cf5a6c84SAndroid Build Coastguard Worker 123*cf5a6c84SAndroid Build Coastguard Worker struct blockdev_data { 124*cf5a6c84SAndroid Build Coastguard Worker long setra, setbsz; 125*cf5a6c84SAndroid Build Coastguard Worker }; 126*cf5a6c84SAndroid Build Coastguard Worker 127*cf5a6c84SAndroid Build Coastguard Worker struct chrt_data { 128*cf5a6c84SAndroid Build Coastguard Worker long p; 129*cf5a6c84SAndroid Build Coastguard Worker }; 130*cf5a6c84SAndroid Build Coastguard Worker 131*cf5a6c84SAndroid Build Coastguard Worker struct devmem_data { 132*cf5a6c84SAndroid Build Coastguard Worker char *f; 133*cf5a6c84SAndroid Build Coastguard Worker }; 134*cf5a6c84SAndroid Build Coastguard Worker 135*cf5a6c84SAndroid Build Coastguard Worker struct dos2unix_data { 136*cf5a6c84SAndroid Build Coastguard Worker char *tempfile; 137*cf5a6c84SAndroid Build Coastguard Worker }; 138*cf5a6c84SAndroid Build Coastguard Worker 139*cf5a6c84SAndroid Build Coastguard Worker struct fallocate_data { 140*cf5a6c84SAndroid Build Coastguard Worker long o, l; 141*cf5a6c84SAndroid Build Coastguard Worker }; 142*cf5a6c84SAndroid Build Coastguard Worker 143*cf5a6c84SAndroid Build Coastguard Worker struct fmt_data { 144*cf5a6c84SAndroid Build Coastguard Worker long width; 145*cf5a6c84SAndroid Build Coastguard Worker 146*cf5a6c84SAndroid Build Coastguard Worker int level, pos; 147*cf5a6c84SAndroid Build Coastguard Worker }; 148*cf5a6c84SAndroid Build Coastguard Worker 149*cf5a6c84SAndroid Build Coastguard Worker struct free_data { 150*cf5a6c84SAndroid Build Coastguard Worker unsigned bits; 151*cf5a6c84SAndroid Build Coastguard Worker unsigned long long units; 152*cf5a6c84SAndroid Build Coastguard Worker char *buf; 153*cf5a6c84SAndroid Build Coastguard Worker }; 154*cf5a6c84SAndroid Build Coastguard Worker 155*cf5a6c84SAndroid Build Coastguard Worker struct getopt_data { 156*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *l; 157*cf5a6c84SAndroid Build Coastguard Worker char *o, *n; 158*cf5a6c84SAndroid Build Coastguard Worker }; 159*cf5a6c84SAndroid Build Coastguard Worker 160*cf5a6c84SAndroid Build Coastguard Worker struct gpiodetect_data { 161*cf5a6c84SAndroid Build Coastguard Worker struct double_list *chips; 162*cf5a6c84SAndroid Build Coastguard Worker int chip_count; 163*cf5a6c84SAndroid Build Coastguard Worker }; 164*cf5a6c84SAndroid Build Coastguard Worker 165*cf5a6c84SAndroid Build Coastguard Worker struct hwclock_data { 166*cf5a6c84SAndroid Build Coastguard Worker char *f; 167*cf5a6c84SAndroid Build Coastguard Worker }; 168*cf5a6c84SAndroid Build Coastguard Worker 169*cf5a6c84SAndroid Build Coastguard Worker struct i2cdetect_data { 170*cf5a6c84SAndroid Build Coastguard Worker long F; 171*cf5a6c84SAndroid Build Coastguard Worker }; 172*cf5a6c84SAndroid Build Coastguard Worker 173*cf5a6c84SAndroid Build Coastguard Worker struct ionice_data { 174*cf5a6c84SAndroid Build Coastguard Worker long p, n, c; 175*cf5a6c84SAndroid Build Coastguard Worker }; 176*cf5a6c84SAndroid Build Coastguard Worker 177*cf5a6c84SAndroid Build Coastguard Worker struct losetup_data { 178*cf5a6c84SAndroid Build Coastguard Worker char *j; 179*cf5a6c84SAndroid Build Coastguard Worker long o, S; 180*cf5a6c84SAndroid Build Coastguard Worker 181*cf5a6c84SAndroid Build Coastguard Worker int openflags; 182*cf5a6c84SAndroid Build Coastguard Worker dev_t jdev; 183*cf5a6c84SAndroid Build Coastguard Worker ino_t jino; 184*cf5a6c84SAndroid Build Coastguard Worker char *dir; 185*cf5a6c84SAndroid Build Coastguard Worker }; 186*cf5a6c84SAndroid Build Coastguard Worker 187*cf5a6c84SAndroid Build Coastguard Worker struct lsattr_data { 188*cf5a6c84SAndroid Build Coastguard Worker long v, p; 189*cf5a6c84SAndroid Build Coastguard Worker 190*cf5a6c84SAndroid Build Coastguard Worker unsigned add, rm, set; 191*cf5a6c84SAndroid Build Coastguard Worker // !add and !rm tell us whether they were used, but `chattr =` is meaningful. 192*cf5a6c84SAndroid Build Coastguard Worker int have_set; 193*cf5a6c84SAndroid Build Coastguard Worker }; 194*cf5a6c84SAndroid Build Coastguard Worker 195*cf5a6c84SAndroid Build Coastguard Worker struct lsusb_data { 196*cf5a6c84SAndroid Build Coastguard Worker char *i; 197*cf5a6c84SAndroid Build Coastguard Worker long x, n; 198*cf5a6c84SAndroid Build Coastguard Worker 199*cf5a6c84SAndroid Build Coastguard Worker void *ids, *class; 200*cf5a6c84SAndroid Build Coastguard Worker int count; 201*cf5a6c84SAndroid Build Coastguard Worker }; 202*cf5a6c84SAndroid Build Coastguard Worker 203*cf5a6c84SAndroid Build Coastguard Worker struct makedevs_data { 204*cf5a6c84SAndroid Build Coastguard Worker char *d; 205*cf5a6c84SAndroid Build Coastguard Worker }; 206*cf5a6c84SAndroid Build Coastguard Worker 207*cf5a6c84SAndroid Build Coastguard Worker struct mkswap_data { 208*cf5a6c84SAndroid Build Coastguard Worker char *L; 209*cf5a6c84SAndroid Build Coastguard Worker }; 210*cf5a6c84SAndroid Build Coastguard Worker 211*cf5a6c84SAndroid Build Coastguard Worker struct modinfo_data { 212*cf5a6c84SAndroid Build Coastguard Worker char *F, *k, *b; 213*cf5a6c84SAndroid Build Coastguard Worker 214*cf5a6c84SAndroid Build Coastguard Worker long mod; 215*cf5a6c84SAndroid Build Coastguard Worker int count; 216*cf5a6c84SAndroid Build Coastguard Worker }; 217*cf5a6c84SAndroid Build Coastguard Worker 218*cf5a6c84SAndroid Build Coastguard Worker struct nbd_client_data { 219*cf5a6c84SAndroid Build Coastguard Worker long b; 220*cf5a6c84SAndroid Build Coastguard Worker 221*cf5a6c84SAndroid Build Coastguard Worker int nbd; 222*cf5a6c84SAndroid Build Coastguard Worker }; 223*cf5a6c84SAndroid Build Coastguard Worker 224*cf5a6c84SAndroid Build Coastguard Worker struct nsenter_data { 225*cf5a6c84SAndroid Build Coastguard Worker char *UupnmiC[7]; 226*cf5a6c84SAndroid Build Coastguard Worker long t; 227*cf5a6c84SAndroid Build Coastguard Worker }; 228*cf5a6c84SAndroid Build Coastguard Worker 229*cf5a6c84SAndroid Build Coastguard Worker struct readelf_data { 230*cf5a6c84SAndroid Build Coastguard Worker char *x, *p; 231*cf5a6c84SAndroid Build Coastguard Worker 232*cf5a6c84SAndroid Build Coastguard Worker char *elf, *shstrtab, *f; 233*cf5a6c84SAndroid Build Coastguard Worker unsigned long long shoff, phoff, size, shstrtabsz; 234*cf5a6c84SAndroid Build Coastguard Worker int bits, endian, shnum, shentsize, phentsize; 235*cf5a6c84SAndroid Build Coastguard Worker }; 236*cf5a6c84SAndroid Build Coastguard Worker 237*cf5a6c84SAndroid Build Coastguard Worker struct realpath_data { 238*cf5a6c84SAndroid Build Coastguard Worker char *R, *relative_base; 239*cf5a6c84SAndroid Build Coastguard Worker }; 240*cf5a6c84SAndroid Build Coastguard Worker 241*cf5a6c84SAndroid Build Coastguard Worker struct rtcwake_data { 242*cf5a6c84SAndroid Build Coastguard Worker long t, s; 243*cf5a6c84SAndroid Build Coastguard Worker char *m, *d; 244*cf5a6c84SAndroid Build Coastguard Worker }; 245*cf5a6c84SAndroid Build Coastguard Worker 246*cf5a6c84SAndroid Build Coastguard Worker struct setfattr_data { 247*cf5a6c84SAndroid Build Coastguard Worker char *x, *v, *n; 248*cf5a6c84SAndroid Build Coastguard Worker }; 249*cf5a6c84SAndroid Build Coastguard Worker 250*cf5a6c84SAndroid Build Coastguard Worker struct setsid_data { 251*cf5a6c84SAndroid Build Coastguard Worker long c; 252*cf5a6c84SAndroid Build Coastguard Worker }; 253*cf5a6c84SAndroid Build Coastguard Worker 254*cf5a6c84SAndroid Build Coastguard Worker struct stat_data { 255*cf5a6c84SAndroid Build Coastguard Worker char *c; 256*cf5a6c84SAndroid Build Coastguard Worker 257*cf5a6c84SAndroid Build Coastguard Worker union { 258*cf5a6c84SAndroid Build Coastguard Worker struct stat st; 259*cf5a6c84SAndroid Build Coastguard Worker struct statfs sf; 260*cf5a6c84SAndroid Build Coastguard Worker } stat; 261*cf5a6c84SAndroid Build Coastguard Worker char *file, *pattern; 262*cf5a6c84SAndroid Build Coastguard Worker int patlen; 263*cf5a6c84SAndroid Build Coastguard Worker }; 264*cf5a6c84SAndroid Build Coastguard Worker 265*cf5a6c84SAndroid Build Coastguard Worker struct swapon_data { 266*cf5a6c84SAndroid Build Coastguard Worker long p; 267*cf5a6c84SAndroid Build Coastguard Worker }; 268*cf5a6c84SAndroid Build Coastguard Worker 269*cf5a6c84SAndroid Build Coastguard Worker struct tac_data { 270*cf5a6c84SAndroid Build Coastguard Worker struct double_list *dl; 271*cf5a6c84SAndroid Build Coastguard Worker }; 272*cf5a6c84SAndroid Build Coastguard Worker 273*cf5a6c84SAndroid Build Coastguard Worker struct timeout_data { 274*cf5a6c84SAndroid Build Coastguard Worker char *s, *k; 275*cf5a6c84SAndroid Build Coastguard Worker 276*cf5a6c84SAndroid Build Coastguard Worker struct pollfd pfd; 277*cf5a6c84SAndroid Build Coastguard Worker sigjmp_buf sj; 278*cf5a6c84SAndroid Build Coastguard Worker int fds[2], pid, rc; 279*cf5a6c84SAndroid Build Coastguard Worker }; 280*cf5a6c84SAndroid Build Coastguard Worker 281*cf5a6c84SAndroid Build Coastguard Worker struct truncate_data { 282*cf5a6c84SAndroid Build Coastguard Worker char *s; 283*cf5a6c84SAndroid Build Coastguard Worker 284*cf5a6c84SAndroid Build Coastguard Worker long long size; 285*cf5a6c84SAndroid Build Coastguard Worker int type; 286*cf5a6c84SAndroid Build Coastguard Worker }; 287*cf5a6c84SAndroid Build Coastguard Worker 288*cf5a6c84SAndroid Build Coastguard Worker struct uclampset_data { 289*cf5a6c84SAndroid Build Coastguard Worker long M, m, p; 290*cf5a6c84SAndroid Build Coastguard Worker }; 291*cf5a6c84SAndroid Build Coastguard Worker 292*cf5a6c84SAndroid Build Coastguard Worker struct watch_data { 293*cf5a6c84SAndroid Build Coastguard Worker int n; 294*cf5a6c84SAndroid Build Coastguard Worker 295*cf5a6c84SAndroid Build Coastguard Worker pid_t pid, oldpid; 296*cf5a6c84SAndroid Build Coastguard Worker }; 297*cf5a6c84SAndroid Build Coastguard Worker 298*cf5a6c84SAndroid Build Coastguard Worker struct xxd_data { 299*cf5a6c84SAndroid Build Coastguard Worker long s, g, o, l, c; 300*cf5a6c84SAndroid Build Coastguard Worker }; 301*cf5a6c84SAndroid Build Coastguard Worker 302*cf5a6c84SAndroid Build Coastguard Worker struct brctl_data { 303*cf5a6c84SAndroid Build Coastguard Worker int sockfd; 304*cf5a6c84SAndroid Build Coastguard Worker }; 305*cf5a6c84SAndroid Build Coastguard Worker 306*cf5a6c84SAndroid Build Coastguard Worker struct diff_data { 307*cf5a6c84SAndroid Build Coastguard Worker long U; 308*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *L; 309*cf5a6c84SAndroid Build Coastguard Worker char *F, *S, *new_line_format, *old_line_format, *unchanged_line_format; 310*cf5a6c84SAndroid Build Coastguard Worker 311*cf5a6c84SAndroid Build Coastguard Worker int dir_num, size, is_binary, is_symlink, differ, change, len[2], *offset[2]; 312*cf5a6c84SAndroid Build Coastguard Worker struct stat st[2]; 313*cf5a6c84SAndroid Build Coastguard Worker struct { 314*cf5a6c84SAndroid Build Coastguard Worker char **list; 315*cf5a6c84SAndroid Build Coastguard Worker int nr_elm; 316*cf5a6c84SAndroid Build Coastguard Worker } dir[2]; 317*cf5a6c84SAndroid Build Coastguard Worker struct { 318*cf5a6c84SAndroid Build Coastguard Worker FILE *fp; 319*cf5a6c84SAndroid Build Coastguard Worker int len; 320*cf5a6c84SAndroid Build Coastguard Worker } file[2]; 321*cf5a6c84SAndroid Build Coastguard Worker struct { 322*cf5a6c84SAndroid Build Coastguard Worker char *name; 323*cf5a6c84SAndroid Build Coastguard Worker int len; 324*cf5a6c84SAndroid Build Coastguard Worker } link[2]; 325*cf5a6c84SAndroid Build Coastguard Worker }; 326*cf5a6c84SAndroid Build Coastguard Worker 327*cf5a6c84SAndroid Build Coastguard Worker struct expr_data { 328*cf5a6c84SAndroid Build Coastguard Worker char **tok, *delete; 329*cf5a6c84SAndroid Build Coastguard Worker }; 330*cf5a6c84SAndroid Build Coastguard Worker 331*cf5a6c84SAndroid Build Coastguard Worker struct getfattr_data { 332*cf5a6c84SAndroid Build Coastguard Worker char *n; 333*cf5a6c84SAndroid Build Coastguard Worker }; 334*cf5a6c84SAndroid Build Coastguard Worker 335*cf5a6c84SAndroid Build Coastguard Worker struct lsof_data { 336*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *p; 337*cf5a6c84SAndroid Build Coastguard Worker 338*cf5a6c84SAndroid Build Coastguard Worker struct stat *sought_files; 339*cf5a6c84SAndroid Build Coastguard Worker struct double_list *all_sockets, *files; 340*cf5a6c84SAndroid Build Coastguard Worker int last_shown_pid, shown_header; 341*cf5a6c84SAndroid Build Coastguard Worker }; 342*cf5a6c84SAndroid Build Coastguard Worker 343*cf5a6c84SAndroid Build Coastguard Worker struct modprobe_data { 344*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *dirs; 345*cf5a6c84SAndroid Build Coastguard Worker 346*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *probes, *dbase[256]; 347*cf5a6c84SAndroid Build Coastguard Worker char *cmdopts; 348*cf5a6c84SAndroid Build Coastguard Worker int nudeps, symreq; 349*cf5a6c84SAndroid Build Coastguard Worker }; 350*cf5a6c84SAndroid Build Coastguard Worker 351*cf5a6c84SAndroid Build Coastguard Worker struct more_data { 352*cf5a6c84SAndroid Build Coastguard Worker struct termios inf; 353*cf5a6c84SAndroid Build Coastguard Worker int cin_fd; 354*cf5a6c84SAndroid Build Coastguard Worker }; 355*cf5a6c84SAndroid Build Coastguard Worker 356*cf5a6c84SAndroid Build Coastguard Worker struct stty_data { 357*cf5a6c84SAndroid Build Coastguard Worker char *F; 358*cf5a6c84SAndroid Build Coastguard Worker 359*cf5a6c84SAndroid Build Coastguard Worker int fd, col; 360*cf5a6c84SAndroid Build Coastguard Worker unsigned output_cols; 361*cf5a6c84SAndroid Build Coastguard Worker }; 362*cf5a6c84SAndroid Build Coastguard Worker 363*cf5a6c84SAndroid Build Coastguard Worker struct tr_data { 364*cf5a6c84SAndroid Build Coastguard Worker short *map; 365*cf5a6c84SAndroid Build Coastguard Worker int len1, len2; 366*cf5a6c84SAndroid Build Coastguard Worker }; 367*cf5a6c84SAndroid Build Coastguard Worker 368*cf5a6c84SAndroid Build Coastguard Worker struct traceroute_data { 369*cf5a6c84SAndroid Build Coastguard Worker long max_ttl; 370*cf5a6c84SAndroid Build Coastguard Worker long port; 371*cf5a6c84SAndroid Build Coastguard Worker long ttl_probes; 372*cf5a6c84SAndroid Build Coastguard Worker char *src_ip; 373*cf5a6c84SAndroid Build Coastguard Worker long tos; 374*cf5a6c84SAndroid Build Coastguard Worker long wait_time; 375*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *loose_source; 376*cf5a6c84SAndroid Build Coastguard Worker long pause_time; 377*cf5a6c84SAndroid Build Coastguard Worker long first_ttl; 378*cf5a6c84SAndroid Build Coastguard Worker char *iface; 379*cf5a6c84SAndroid Build Coastguard Worker 380*cf5a6c84SAndroid Build Coastguard Worker uint32_t gw_list[9]; 381*cf5a6c84SAndroid Build Coastguard Worker int recv_sock; 382*cf5a6c84SAndroid Build Coastguard Worker int snd_sock; 383*cf5a6c84SAndroid Build Coastguard Worker unsigned msg_len; 384*cf5a6c84SAndroid Build Coastguard Worker char *packet; 385*cf5a6c84SAndroid Build Coastguard Worker uint32_t ident; 386*cf5a6c84SAndroid Build Coastguard Worker int istraceroute6; 387*cf5a6c84SAndroid Build Coastguard Worker }; 388*cf5a6c84SAndroid Build Coastguard Worker 389*cf5a6c84SAndroid Build Coastguard Worker struct vi_data { 390*cf5a6c84SAndroid Build Coastguard Worker char *c, *s; 391*cf5a6c84SAndroid Build Coastguard Worker 392*cf5a6c84SAndroid Build Coastguard Worker char *filename; 393*cf5a6c84SAndroid Build Coastguard Worker int vi_mode, tabstop, list, cur_col, cur_row, scr_row, drawn_row, drawn_col, 394*cf5a6c84SAndroid Build Coastguard Worker count0, count1, vi_mov_flag; 395*cf5a6c84SAndroid Build Coastguard Worker unsigned screen_height, screen_width; 396*cf5a6c84SAndroid Build Coastguard Worker char vi_reg, *last_search; 397*cf5a6c84SAndroid Build Coastguard Worker struct str_line { 398*cf5a6c84SAndroid Build Coastguard Worker int alloc, len; 399*cf5a6c84SAndroid Build Coastguard Worker char *data; 400*cf5a6c84SAndroid Build Coastguard Worker } *il; 401*cf5a6c84SAndroid Build Coastguard Worker size_t screen, cursor; //offsets 402*cf5a6c84SAndroid Build Coastguard Worker //yank buffer 403*cf5a6c84SAndroid Build Coastguard Worker struct yank_buf { 404*cf5a6c84SAndroid Build Coastguard Worker char reg; 405*cf5a6c84SAndroid Build Coastguard Worker int alloc; 406*cf5a6c84SAndroid Build Coastguard Worker char *data; 407*cf5a6c84SAndroid Build Coastguard Worker } yank; 408*cf5a6c84SAndroid Build Coastguard Worker 409*cf5a6c84SAndroid Build Coastguard Worker size_t filesize; 410*cf5a6c84SAndroid Build Coastguard Worker // mem_block contains RO data that is either original file as mmap 411*cf5a6c84SAndroid Build Coastguard Worker // or heap allocated inserted data 412*cf5a6c84SAndroid Build Coastguard Worker struct block_list { 413*cf5a6c84SAndroid Build Coastguard Worker struct block_list *next, *prev; 414*cf5a6c84SAndroid Build Coastguard Worker struct mem_block { 415*cf5a6c84SAndroid Build Coastguard Worker size_t size, len; 416*cf5a6c84SAndroid Build Coastguard Worker enum alloc_flag { 417*cf5a6c84SAndroid Build Coastguard Worker MMAP, //can be munmap() before exit() 418*cf5a6c84SAndroid Build Coastguard Worker HEAP, //can be free() before exit() 419*cf5a6c84SAndroid Build Coastguard Worker STACK, //global or stack perhaps toybuf 420*cf5a6c84SAndroid Build Coastguard Worker } alloc; 421*cf5a6c84SAndroid Build Coastguard Worker const char *data; 422*cf5a6c84SAndroid Build Coastguard Worker } *node; 423*cf5a6c84SAndroid Build Coastguard Worker } *text; 424*cf5a6c84SAndroid Build Coastguard Worker 425*cf5a6c84SAndroid Build Coastguard Worker // slices do not contain actual allocated data but slices of data in mem_block 426*cf5a6c84SAndroid Build Coastguard Worker // when file is first opened it has only one slice. 427*cf5a6c84SAndroid Build Coastguard Worker // after inserting data into middle new mem_block is allocated for insert data 428*cf5a6c84SAndroid Build Coastguard Worker // and 3 slices are created, where first and last slice are pointing to original 429*cf5a6c84SAndroid Build Coastguard Worker // mem_block with offsets, and middle slice is pointing to newly allocated block 430*cf5a6c84SAndroid Build Coastguard Worker // When deleting, data is not freed but mem_blocks are sliced more such way that 431*cf5a6c84SAndroid Build Coastguard Worker // deleted data left between 2 slices 432*cf5a6c84SAndroid Build Coastguard Worker struct slice_list { 433*cf5a6c84SAndroid Build Coastguard Worker struct slice_list *next, *prev; 434*cf5a6c84SAndroid Build Coastguard Worker struct slice { 435*cf5a6c84SAndroid Build Coastguard Worker size_t len; 436*cf5a6c84SAndroid Build Coastguard Worker const char *data; 437*cf5a6c84SAndroid Build Coastguard Worker } *node; 438*cf5a6c84SAndroid Build Coastguard Worker } *slices; 439*cf5a6c84SAndroid Build Coastguard Worker }; 440*cf5a6c84SAndroid Build Coastguard Worker 441*cf5a6c84SAndroid Build Coastguard Worker struct basename_data { 442*cf5a6c84SAndroid Build Coastguard Worker char *s; 443*cf5a6c84SAndroid Build Coastguard Worker }; 444*cf5a6c84SAndroid Build Coastguard Worker 445*cf5a6c84SAndroid Build Coastguard Worker struct cal_data { 446*cf5a6c84SAndroid Build Coastguard Worker struct tm *now; 447*cf5a6c84SAndroid Build Coastguard Worker }; 448*cf5a6c84SAndroid Build Coastguard Worker 449*cf5a6c84SAndroid Build Coastguard Worker struct chgrp_data { 450*cf5a6c84SAndroid Build Coastguard Worker uid_t owner; 451*cf5a6c84SAndroid Build Coastguard Worker gid_t group; 452*cf5a6c84SAndroid Build Coastguard Worker char *owner_name, *group_name; 453*cf5a6c84SAndroid Build Coastguard Worker int symfollow; 454*cf5a6c84SAndroid Build Coastguard Worker }; 455*cf5a6c84SAndroid Build Coastguard Worker 456*cf5a6c84SAndroid Build Coastguard Worker struct chmod_data { 457*cf5a6c84SAndroid Build Coastguard Worker char *mode; 458*cf5a6c84SAndroid Build Coastguard Worker }; 459*cf5a6c84SAndroid Build Coastguard Worker 460*cf5a6c84SAndroid Build Coastguard Worker struct cmp_data { 461*cf5a6c84SAndroid Build Coastguard Worker long n; 462*cf5a6c84SAndroid Build Coastguard Worker 463*cf5a6c84SAndroid Build Coastguard Worker int fd; 464*cf5a6c84SAndroid Build Coastguard Worker char *name; 465*cf5a6c84SAndroid Build Coastguard Worker }; 466*cf5a6c84SAndroid Build Coastguard Worker 467*cf5a6c84SAndroid Build Coastguard Worker struct cp_data { 468*cf5a6c84SAndroid Build Coastguard Worker union { 469*cf5a6c84SAndroid Build Coastguard Worker // install's options 470*cf5a6c84SAndroid Build Coastguard Worker struct { 471*cf5a6c84SAndroid Build Coastguard Worker char *g, *o, *m, *t; 472*cf5a6c84SAndroid Build Coastguard Worker } i; 473*cf5a6c84SAndroid Build Coastguard Worker // cp's options 474*cf5a6c84SAndroid Build Coastguard Worker struct { 475*cf5a6c84SAndroid Build Coastguard Worker char *t, *preserve; 476*cf5a6c84SAndroid Build Coastguard Worker } c; 477*cf5a6c84SAndroid Build Coastguard Worker }; 478*cf5a6c84SAndroid Build Coastguard Worker 479*cf5a6c84SAndroid Build Coastguard Worker char *destname; 480*cf5a6c84SAndroid Build Coastguard Worker struct stat top; 481*cf5a6c84SAndroid Build Coastguard Worker int (*callback)(struct dirtree *try); 482*cf5a6c84SAndroid Build Coastguard Worker uid_t uid; 483*cf5a6c84SAndroid Build Coastguard Worker gid_t gid; 484*cf5a6c84SAndroid Build Coastguard Worker int pflags; 485*cf5a6c84SAndroid Build Coastguard Worker }; 486*cf5a6c84SAndroid Build Coastguard Worker 487*cf5a6c84SAndroid Build Coastguard Worker struct cpio_data { 488*cf5a6c84SAndroid Build Coastguard Worker char *F, *H, *R; 489*cf5a6c84SAndroid Build Coastguard Worker }; 490*cf5a6c84SAndroid Build Coastguard Worker 491*cf5a6c84SAndroid Build Coastguard Worker struct cut_data { 492*cf5a6c84SAndroid Build Coastguard Worker char *d, *O; 493*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *select[5]; // we treat them the same, so loop through 494*cf5a6c84SAndroid Build Coastguard Worker 495*cf5a6c84SAndroid Build Coastguard Worker unsigned line; 496*cf5a6c84SAndroid Build Coastguard Worker int pairs; 497*cf5a6c84SAndroid Build Coastguard Worker regex_t reg; 498*cf5a6c84SAndroid Build Coastguard Worker }; 499*cf5a6c84SAndroid Build Coastguard Worker 500*cf5a6c84SAndroid Build Coastguard Worker struct date_data { 501*cf5a6c84SAndroid Build Coastguard Worker char *s, *r, *I, *D, *d; 502*cf5a6c84SAndroid Build Coastguard Worker 503*cf5a6c84SAndroid Build Coastguard Worker unsigned nano; 504*cf5a6c84SAndroid Build Coastguard Worker }; 505*cf5a6c84SAndroid Build Coastguard Worker 506*cf5a6c84SAndroid Build Coastguard Worker struct dd_data { 507*cf5a6c84SAndroid Build Coastguard Worker // Display fields 508*cf5a6c84SAndroid Build Coastguard Worker int show_xfer, show_records; 509*cf5a6c84SAndroid Build Coastguard Worker unsigned long long bytes, in_full, in_part, out_full, out_part, start; 510*cf5a6c84SAndroid Build Coastguard Worker }; 511*cf5a6c84SAndroid Build Coastguard Worker 512*cf5a6c84SAndroid Build Coastguard Worker struct df_data { 513*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *t; 514*cf5a6c84SAndroid Build Coastguard Worker 515*cf5a6c84SAndroid Build Coastguard Worker int units, width[6]; 516*cf5a6c84SAndroid Build Coastguard Worker }; 517*cf5a6c84SAndroid Build Coastguard Worker 518*cf5a6c84SAndroid Build Coastguard Worker struct du_data { 519*cf5a6c84SAndroid Build Coastguard Worker long d; 520*cf5a6c84SAndroid Build Coastguard Worker 521*cf5a6c84SAndroid Build Coastguard Worker unsigned long depth, total; 522*cf5a6c84SAndroid Build Coastguard Worker dev_t st_dev; 523*cf5a6c84SAndroid Build Coastguard Worker void *inodes; 524*cf5a6c84SAndroid Build Coastguard Worker }; 525*cf5a6c84SAndroid Build Coastguard Worker 526*cf5a6c84SAndroid Build Coastguard Worker struct env_data { 527*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *u; 528*cf5a6c84SAndroid Build Coastguard Worker char *e; 529*cf5a6c84SAndroid Build Coastguard Worker }; 530*cf5a6c84SAndroid Build Coastguard Worker 531*cf5a6c84SAndroid Build Coastguard Worker struct expand_data { 532*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *t; 533*cf5a6c84SAndroid Build Coastguard Worker 534*cf5a6c84SAndroid Build Coastguard Worker unsigned tabcount, *tab; 535*cf5a6c84SAndroid Build Coastguard Worker }; 536*cf5a6c84SAndroid Build Coastguard Worker 537*cf5a6c84SAndroid Build Coastguard Worker struct file_data { 538*cf5a6c84SAndroid Build Coastguard Worker int max_name_len; 539*cf5a6c84SAndroid Build Coastguard Worker off_t len; 540*cf5a6c84SAndroid Build Coastguard Worker }; 541*cf5a6c84SAndroid Build Coastguard Worker 542*cf5a6c84SAndroid Build Coastguard Worker struct find_data { 543*cf5a6c84SAndroid Build Coastguard Worker char **filter; 544*cf5a6c84SAndroid Build Coastguard Worker struct double_list *argdata; 545*cf5a6c84SAndroid Build Coastguard Worker int topdir, xdev, depth; 546*cf5a6c84SAndroid Build Coastguard Worker time_t now; 547*cf5a6c84SAndroid Build Coastguard Worker long max_bytes; 548*cf5a6c84SAndroid Build Coastguard Worker char *start; 549*cf5a6c84SAndroid Build Coastguard Worker }; 550*cf5a6c84SAndroid Build Coastguard Worker 551*cf5a6c84SAndroid Build Coastguard Worker struct grep_data { 552*cf5a6c84SAndroid Build Coastguard Worker long m, A, B, C; 553*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *f, *e, *M, *S, *exclude_dir; 554*cf5a6c84SAndroid Build Coastguard Worker char *color; 555*cf5a6c84SAndroid Build Coastguard Worker 556*cf5a6c84SAndroid Build Coastguard Worker char *purple, *cyan, *red, *green, *grey; 557*cf5a6c84SAndroid Build Coastguard Worker struct double_list *reg; 558*cf5a6c84SAndroid Build Coastguard Worker int found, tried, delim; 559*cf5a6c84SAndroid Build Coastguard Worker struct arg_list **fixed; 560*cf5a6c84SAndroid Build Coastguard Worker }; 561*cf5a6c84SAndroid Build Coastguard Worker 562*cf5a6c84SAndroid Build Coastguard Worker struct head_data { 563*cf5a6c84SAndroid Build Coastguard Worker long c, n; 564*cf5a6c84SAndroid Build Coastguard Worker 565*cf5a6c84SAndroid Build Coastguard Worker int file_no; 566*cf5a6c84SAndroid Build Coastguard Worker }; 567*cf5a6c84SAndroid Build Coastguard Worker 568*cf5a6c84SAndroid Build Coastguard Worker struct iconv_data { 569*cf5a6c84SAndroid Build Coastguard Worker char *f, *t; 570*cf5a6c84SAndroid Build Coastguard Worker 571*cf5a6c84SAndroid Build Coastguard Worker void *ic; 572*cf5a6c84SAndroid Build Coastguard Worker }; 573*cf5a6c84SAndroid Build Coastguard Worker 574*cf5a6c84SAndroid Build Coastguard Worker struct id_data { 575*cf5a6c84SAndroid Build Coastguard Worker int is_groups; 576*cf5a6c84SAndroid Build Coastguard Worker }; 577*cf5a6c84SAndroid Build Coastguard Worker 578*cf5a6c84SAndroid Build Coastguard Worker struct kill_data { 579*cf5a6c84SAndroid Build Coastguard Worker char *s; 580*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *o; 581*cf5a6c84SAndroid Build Coastguard Worker }; 582*cf5a6c84SAndroid Build Coastguard Worker 583*cf5a6c84SAndroid Build Coastguard Worker struct ln_data { 584*cf5a6c84SAndroid Build Coastguard Worker char *t; 585*cf5a6c84SAndroid Build Coastguard Worker }; 586*cf5a6c84SAndroid Build Coastguard Worker 587*cf5a6c84SAndroid Build Coastguard Worker struct logger_data { 588*cf5a6c84SAndroid Build Coastguard Worker char *p, *t; 589*cf5a6c84SAndroid Build Coastguard Worker 590*cf5a6c84SAndroid Build Coastguard Worker int priority; 591*cf5a6c84SAndroid Build Coastguard Worker }; 592*cf5a6c84SAndroid Build Coastguard Worker 593*cf5a6c84SAndroid Build Coastguard Worker struct ls_data { 594*cf5a6c84SAndroid Build Coastguard Worker long w, l, block_size; 595*cf5a6c84SAndroid Build Coastguard Worker char *color, *sort; 596*cf5a6c84SAndroid Build Coastguard Worker 597*cf5a6c84SAndroid Build Coastguard Worker struct dirtree *files, *singledir; 598*cf5a6c84SAndroid Build Coastguard Worker unsigned screen_width; 599*cf5a6c84SAndroid Build Coastguard Worker int nl_title; 600*cf5a6c84SAndroid Build Coastguard Worker char *escmore; 601*cf5a6c84SAndroid Build Coastguard Worker }; 602*cf5a6c84SAndroid Build Coastguard Worker 603*cf5a6c84SAndroid Build Coastguard Worker struct mkdir_data { 604*cf5a6c84SAndroid Build Coastguard Worker char *m, *Z; 605*cf5a6c84SAndroid Build Coastguard Worker }; 606*cf5a6c84SAndroid Build Coastguard Worker 607*cf5a6c84SAndroid Build Coastguard Worker struct mkfifo_data { 608*cf5a6c84SAndroid Build Coastguard Worker char *m, *Z; 609*cf5a6c84SAndroid Build Coastguard Worker 610*cf5a6c84SAndroid Build Coastguard Worker mode_t mode; 611*cf5a6c84SAndroid Build Coastguard Worker }; 612*cf5a6c84SAndroid Build Coastguard Worker 613*cf5a6c84SAndroid Build Coastguard Worker struct nice_data { 614*cf5a6c84SAndroid Build Coastguard Worker long n; 615*cf5a6c84SAndroid Build Coastguard Worker }; 616*cf5a6c84SAndroid Build Coastguard Worker 617*cf5a6c84SAndroid Build Coastguard Worker struct nl_data { 618*cf5a6c84SAndroid Build Coastguard Worker char *s, *n, *b; 619*cf5a6c84SAndroid Build Coastguard Worker long w, l, v; 620*cf5a6c84SAndroid Build Coastguard Worker 621*cf5a6c84SAndroid Build Coastguard Worker // Count of consecutive blank lines for -l has to persist between files 622*cf5a6c84SAndroid Build Coastguard Worker long lcount, slen; 623*cf5a6c84SAndroid Build Coastguard Worker }; 624*cf5a6c84SAndroid Build Coastguard Worker 625*cf5a6c84SAndroid Build Coastguard Worker struct od_data { 626*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *t; 627*cf5a6c84SAndroid Build Coastguard Worker char *A; 628*cf5a6c84SAndroid Build Coastguard Worker long N, w, j; 629*cf5a6c84SAndroid Build Coastguard Worker 630*cf5a6c84SAndroid Build Coastguard Worker int address_idx; 631*cf5a6c84SAndroid Build Coastguard Worker unsigned types, leftover, star; 632*cf5a6c84SAndroid Build Coastguard Worker char *buf; // Points to buffers[0] or buffers[1]. 633*cf5a6c84SAndroid Build Coastguard Worker char *bufs[2]; // Used to detect duplicate lines. 634*cf5a6c84SAndroid Build Coastguard Worker off_t pos; 635*cf5a6c84SAndroid Build Coastguard Worker }; 636*cf5a6c84SAndroid Build Coastguard Worker 637*cf5a6c84SAndroid Build Coastguard Worker struct paste_data { 638*cf5a6c84SAndroid Build Coastguard Worker char *d; 639*cf5a6c84SAndroid Build Coastguard Worker 640*cf5a6c84SAndroid Build Coastguard Worker int files; 641*cf5a6c84SAndroid Build Coastguard Worker }; 642*cf5a6c84SAndroid Build Coastguard Worker 643*cf5a6c84SAndroid Build Coastguard Worker struct patch_data { 644*cf5a6c84SAndroid Build Coastguard Worker char *i, *d; 645*cf5a6c84SAndroid Build Coastguard Worker long v, p, g, F; 646*cf5a6c84SAndroid Build Coastguard Worker 647*cf5a6c84SAndroid Build Coastguard Worker void *current_hunk; 648*cf5a6c84SAndroid Build Coastguard Worker long oldline, oldlen, newline, newlen, linenum, outnum; 649*cf5a6c84SAndroid Build Coastguard Worker int context, state, filein, fileout, filepatch, hunknum; 650*cf5a6c84SAndroid Build Coastguard Worker char *tempname; 651*cf5a6c84SAndroid Build Coastguard Worker }; 652*cf5a6c84SAndroid Build Coastguard Worker 653*cf5a6c84SAndroid Build Coastguard Worker struct ps_data { 654*cf5a6c84SAndroid Build Coastguard Worker union { 655*cf5a6c84SAndroid Build Coastguard Worker struct { 656*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *G, *g, *U, *u, *t, *s, *p, *O, *o, *P, *k; 657*cf5a6c84SAndroid Build Coastguard Worker } ps; 658*cf5a6c84SAndroid Build Coastguard Worker struct { 659*cf5a6c84SAndroid Build Coastguard Worker long n, m, d, s; 660*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *u, *p, *o, *k, *O; 661*cf5a6c84SAndroid Build Coastguard Worker } top; 662*cf5a6c84SAndroid Build Coastguard Worker struct { 663*cf5a6c84SAndroid Build Coastguard Worker char *L; 664*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *G, *g, *P, *s, *t, *U, *u; 665*cf5a6c84SAndroid Build Coastguard Worker char *d; 666*cf5a6c84SAndroid Build Coastguard Worker 667*cf5a6c84SAndroid Build Coastguard Worker void *regexes, *snapshot; 668*cf5a6c84SAndroid Build Coastguard Worker int signal; 669*cf5a6c84SAndroid Build Coastguard Worker pid_t self, match; 670*cf5a6c84SAndroid Build Coastguard Worker } pgrep; 671*cf5a6c84SAndroid Build Coastguard Worker }; 672*cf5a6c84SAndroid Build Coastguard Worker 673*cf5a6c84SAndroid Build Coastguard Worker struct ps_ptr_len { 674*cf5a6c84SAndroid Build Coastguard Worker void *ptr; 675*cf5a6c84SAndroid Build Coastguard Worker long len; 676*cf5a6c84SAndroid Build Coastguard Worker } gg, GG, pp, PP, ss, tt, uu, UU; 677*cf5a6c84SAndroid Build Coastguard Worker struct dirtree *threadparent; 678*cf5a6c84SAndroid Build Coastguard Worker unsigned width, height, scroll; 679*cf5a6c84SAndroid Build Coastguard Worker dev_t tty; 680*cf5a6c84SAndroid Build Coastguard Worker void *fields, *kfields; 681*cf5a6c84SAndroid Build Coastguard Worker long long ticks, bits, time; 682*cf5a6c84SAndroid Build Coastguard Worker int kcount, forcek, sortpos, pidlen; 683*cf5a6c84SAndroid Build Coastguard Worker int (*match_process)(long long *slot); 684*cf5a6c84SAndroid Build Coastguard Worker void (*show_process)(void *tb); 685*cf5a6c84SAndroid Build Coastguard Worker }; 686*cf5a6c84SAndroid Build Coastguard Worker 687*cf5a6c84SAndroid Build Coastguard Worker struct renice_data { 688*cf5a6c84SAndroid Build Coastguard Worker long n; 689*cf5a6c84SAndroid Build Coastguard Worker }; 690*cf5a6c84SAndroid Build Coastguard Worker 691*cf5a6c84SAndroid Build Coastguard Worker struct sed_data { 692*cf5a6c84SAndroid Build Coastguard Worker char *i; 693*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *f, *e; 694*cf5a6c84SAndroid Build Coastguard Worker 695*cf5a6c84SAndroid Build Coastguard Worker // processed pattern list 696*cf5a6c84SAndroid Build Coastguard Worker struct double_list *pattern; 697*cf5a6c84SAndroid Build Coastguard Worker 698*cf5a6c84SAndroid Build Coastguard Worker char *nextline, *remember, *tarxform; 699*cf5a6c84SAndroid Build Coastguard Worker void *restart, *lastregex; 700*cf5a6c84SAndroid Build Coastguard Worker long nextlen, rememberlen, count; 701*cf5a6c84SAndroid Build Coastguard Worker int fdout, noeol; 702*cf5a6c84SAndroid Build Coastguard Worker unsigned xx, tarxlen, xflags; 703*cf5a6c84SAndroid Build Coastguard Worker char delim, xftype; 704*cf5a6c84SAndroid Build Coastguard Worker }; 705*cf5a6c84SAndroid Build Coastguard Worker 706*cf5a6c84SAndroid Build Coastguard Worker struct sort_data { 707*cf5a6c84SAndroid Build Coastguard Worker char *t; 708*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *k; 709*cf5a6c84SAndroid Build Coastguard Worker char *o, *T, S; 710*cf5a6c84SAndroid Build Coastguard Worker 711*cf5a6c84SAndroid Build Coastguard Worker void *key_list; 712*cf5a6c84SAndroid Build Coastguard Worker unsigned linecount; 713*cf5a6c84SAndroid Build Coastguard Worker char **lines, *name; 714*cf5a6c84SAndroid Build Coastguard Worker }; 715*cf5a6c84SAndroid Build Coastguard Worker 716*cf5a6c84SAndroid Build Coastguard Worker struct split_data { 717*cf5a6c84SAndroid Build Coastguard Worker long n, l, b, a; 718*cf5a6c84SAndroid Build Coastguard Worker 719*cf5a6c84SAndroid Build Coastguard Worker char *outfile; 720*cf5a6c84SAndroid Build Coastguard Worker }; 721*cf5a6c84SAndroid Build Coastguard Worker 722*cf5a6c84SAndroid Build Coastguard Worker struct strings_data { 723*cf5a6c84SAndroid Build Coastguard Worker long n; 724*cf5a6c84SAndroid Build Coastguard Worker char *t; 725*cf5a6c84SAndroid Build Coastguard Worker }; 726*cf5a6c84SAndroid Build Coastguard Worker 727*cf5a6c84SAndroid Build Coastguard Worker struct tail_data { 728*cf5a6c84SAndroid Build Coastguard Worker long n, c; 729*cf5a6c84SAndroid Build Coastguard Worker char *s; 730*cf5a6c84SAndroid Build Coastguard Worker 731*cf5a6c84SAndroid Build Coastguard Worker int file_no, last_fd, ss; 732*cf5a6c84SAndroid Build Coastguard Worker struct xnotify *not; 733*cf5a6c84SAndroid Build Coastguard Worker struct { 734*cf5a6c84SAndroid Build Coastguard Worker char *path; 735*cf5a6c84SAndroid Build Coastguard Worker int fd; 736*cf5a6c84SAndroid Build Coastguard Worker struct dev_ino di; 737*cf5a6c84SAndroid Build Coastguard Worker } *F; 738*cf5a6c84SAndroid Build Coastguard Worker }; 739*cf5a6c84SAndroid Build Coastguard Worker 740*cf5a6c84SAndroid Build Coastguard Worker struct tar_data { 741*cf5a6c84SAndroid Build Coastguard Worker char *f, *C, *I; 742*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *T, *X, *xform; 743*cf5a6c84SAndroid Build Coastguard Worker long strip; 744*cf5a6c84SAndroid Build Coastguard Worker char *to_command, *owner, *group, *mtime, *mode, *sort; 745*cf5a6c84SAndroid Build Coastguard Worker struct arg_list *exclude; 746*cf5a6c84SAndroid Build Coastguard Worker 747*cf5a6c84SAndroid Build Coastguard Worker struct double_list *incl, *excl, *seen; 748*cf5a6c84SAndroid Build Coastguard Worker struct string_list *dirs; 749*cf5a6c84SAndroid Build Coastguard Worker char *cwd, **xfsed; 750*cf5a6c84SAndroid Build Coastguard Worker int fd, ouid, ggid, hlc, warn, sparselen, pid, xfpipe[2]; 751*cf5a6c84SAndroid Build Coastguard Worker struct dev_ino archive_di; 752*cf5a6c84SAndroid Build Coastguard Worker long long *sparse; 753*cf5a6c84SAndroid Build Coastguard Worker time_t mtt; 754*cf5a6c84SAndroid Build Coastguard Worker 755*cf5a6c84SAndroid Build Coastguard Worker // hardlinks seen so far (hlc many) 756*cf5a6c84SAndroid Build Coastguard Worker struct { 757*cf5a6c84SAndroid Build Coastguard Worker char *arg; 758*cf5a6c84SAndroid Build Coastguard Worker struct dev_ino di; 759*cf5a6c84SAndroid Build Coastguard Worker } *hlx; 760*cf5a6c84SAndroid Build Coastguard Worker 761*cf5a6c84SAndroid Build Coastguard Worker // Parsed information about a tar header. 762*cf5a6c84SAndroid Build Coastguard Worker struct tar_header { 763*cf5a6c84SAndroid Build Coastguard Worker char *name, *link_target, *uname, *gname; 764*cf5a6c84SAndroid Build Coastguard Worker long long size, ssize, oldsparse; 765*cf5a6c84SAndroid Build Coastguard Worker uid_t uid; 766*cf5a6c84SAndroid Build Coastguard Worker gid_t gid; 767*cf5a6c84SAndroid Build Coastguard Worker mode_t mode; 768*cf5a6c84SAndroid Build Coastguard Worker time_t mtime; 769*cf5a6c84SAndroid Build Coastguard Worker dev_t device; 770*cf5a6c84SAndroid Build Coastguard Worker } hdr; 771*cf5a6c84SAndroid Build Coastguard Worker }; 772*cf5a6c84SAndroid Build Coastguard Worker 773*cf5a6c84SAndroid Build Coastguard Worker struct tee_data { 774*cf5a6c84SAndroid Build Coastguard Worker void *outputs; 775*cf5a6c84SAndroid Build Coastguard Worker int out; 776*cf5a6c84SAndroid Build Coastguard Worker }; 777*cf5a6c84SAndroid Build Coastguard Worker 778*cf5a6c84SAndroid Build Coastguard Worker struct touch_data { 779*cf5a6c84SAndroid Build Coastguard Worker char *t, *r, *d; 780*cf5a6c84SAndroid Build Coastguard Worker }; 781*cf5a6c84SAndroid Build Coastguard Worker 782*cf5a6c84SAndroid Build Coastguard Worker struct ulimit_data { 783*cf5a6c84SAndroid Build Coastguard Worker long P; 784*cf5a6c84SAndroid Build Coastguard Worker }; 785*cf5a6c84SAndroid Build Coastguard Worker 786*cf5a6c84SAndroid Build Coastguard Worker struct uniq_data { 787*cf5a6c84SAndroid Build Coastguard Worker long w, s, f; 788*cf5a6c84SAndroid Build Coastguard Worker 789*cf5a6c84SAndroid Build Coastguard Worker long repeats; 790*cf5a6c84SAndroid Build Coastguard Worker }; 791*cf5a6c84SAndroid Build Coastguard Worker 792*cf5a6c84SAndroid Build Coastguard Worker struct uudecode_data { 793*cf5a6c84SAndroid Build Coastguard Worker char *o; 794*cf5a6c84SAndroid Build Coastguard Worker }; 795*cf5a6c84SAndroid Build Coastguard Worker 796*cf5a6c84SAndroid Build Coastguard Worker struct wc_data { 797*cf5a6c84SAndroid Build Coastguard Worker unsigned long totals[5]; 798*cf5a6c84SAndroid Build Coastguard Worker }; 799*cf5a6c84SAndroid Build Coastguard Worker 800*cf5a6c84SAndroid Build Coastguard Worker struct xargs_data { 801*cf5a6c84SAndroid Build Coastguard Worker long s, n, P; 802*cf5a6c84SAndroid Build Coastguard Worker char *E; 803*cf5a6c84SAndroid Build Coastguard Worker 804*cf5a6c84SAndroid Build Coastguard Worker long entries, bytes, np; 805*cf5a6c84SAndroid Build Coastguard Worker char delim; 806*cf5a6c84SAndroid Build Coastguard Worker FILE *tty; 807*cf5a6c84SAndroid Build Coastguard Worker }; 808*cf5a6c84SAndroid Build Coastguard Worker extern union global_union { 809*cf5a6c84SAndroid Build Coastguard Worker struct log_data log; 810*cf5a6c84SAndroid Build Coastguard Worker struct dmesg_data dmesg; 811*cf5a6c84SAndroid Build Coastguard Worker struct gzip_data gzip; 812*cf5a6c84SAndroid Build Coastguard Worker struct hostname_data hostname; 813*cf5a6c84SAndroid Build Coastguard Worker struct killall_data killall; 814*cf5a6c84SAndroid Build Coastguard Worker struct md5sum_data md5sum; 815*cf5a6c84SAndroid Build Coastguard Worker struct mknod_data mknod; 816*cf5a6c84SAndroid Build Coastguard Worker struct mktemp_data mktemp; 817*cf5a6c84SAndroid Build Coastguard Worker struct mount_data mount; 818*cf5a6c84SAndroid Build Coastguard Worker struct pidof_data pidof; 819*cf5a6c84SAndroid Build Coastguard Worker struct seq_data seq; 820*cf5a6c84SAndroid Build Coastguard Worker struct umount_data umount; 821*cf5a6c84SAndroid Build Coastguard Worker struct ifconfig_data ifconfig; 822*cf5a6c84SAndroid Build Coastguard Worker struct microcom_data microcom; 823*cf5a6c84SAndroid Build Coastguard Worker struct netcat_data netcat; 824*cf5a6c84SAndroid Build Coastguard Worker struct netstat_data netstat; 825*cf5a6c84SAndroid Build Coastguard Worker struct ping_data ping; 826*cf5a6c84SAndroid Build Coastguard Worker struct tunctl_data tunctl; 827*cf5a6c84SAndroid Build Coastguard Worker struct base64_data base64; 828*cf5a6c84SAndroid Build Coastguard Worker struct blkdiscard_data blkdiscard; 829*cf5a6c84SAndroid Build Coastguard Worker struct blkid_data blkid; 830*cf5a6c84SAndroid Build Coastguard Worker struct blockdev_data blockdev; 831*cf5a6c84SAndroid Build Coastguard Worker struct chrt_data chrt; 832*cf5a6c84SAndroid Build Coastguard Worker struct devmem_data devmem; 833*cf5a6c84SAndroid Build Coastguard Worker struct dos2unix_data dos2unix; 834*cf5a6c84SAndroid Build Coastguard Worker struct fallocate_data fallocate; 835*cf5a6c84SAndroid Build Coastguard Worker struct fmt_data fmt; 836*cf5a6c84SAndroid Build Coastguard Worker struct free_data free; 837*cf5a6c84SAndroid Build Coastguard Worker struct getopt_data getopt; 838*cf5a6c84SAndroid Build Coastguard Worker struct gpiodetect_data gpiodetect; 839*cf5a6c84SAndroid Build Coastguard Worker struct hwclock_data hwclock; 840*cf5a6c84SAndroid Build Coastguard Worker struct i2cdetect_data i2cdetect; 841*cf5a6c84SAndroid Build Coastguard Worker struct ionice_data ionice; 842*cf5a6c84SAndroid Build Coastguard Worker struct losetup_data losetup; 843*cf5a6c84SAndroid Build Coastguard Worker struct lsattr_data lsattr; 844*cf5a6c84SAndroid Build Coastguard Worker struct lsusb_data lsusb; 845*cf5a6c84SAndroid Build Coastguard Worker struct makedevs_data makedevs; 846*cf5a6c84SAndroid Build Coastguard Worker struct mkswap_data mkswap; 847*cf5a6c84SAndroid Build Coastguard Worker struct modinfo_data modinfo; 848*cf5a6c84SAndroid Build Coastguard Worker struct nbd_client_data nbd_client; 849*cf5a6c84SAndroid Build Coastguard Worker struct nsenter_data nsenter; 850*cf5a6c84SAndroid Build Coastguard Worker struct readelf_data readelf; 851*cf5a6c84SAndroid Build Coastguard Worker struct realpath_data realpath; 852*cf5a6c84SAndroid Build Coastguard Worker struct rtcwake_data rtcwake; 853*cf5a6c84SAndroid Build Coastguard Worker struct setfattr_data setfattr; 854*cf5a6c84SAndroid Build Coastguard Worker struct setsid_data setsid; 855*cf5a6c84SAndroid Build Coastguard Worker struct stat_data stat; 856*cf5a6c84SAndroid Build Coastguard Worker struct swapon_data swapon; 857*cf5a6c84SAndroid Build Coastguard Worker struct tac_data tac; 858*cf5a6c84SAndroid Build Coastguard Worker struct timeout_data timeout; 859*cf5a6c84SAndroid Build Coastguard Worker struct truncate_data truncate; 860*cf5a6c84SAndroid Build Coastguard Worker struct uclampset_data uclampset; 861*cf5a6c84SAndroid Build Coastguard Worker struct watch_data watch; 862*cf5a6c84SAndroid Build Coastguard Worker struct xxd_data xxd; 863*cf5a6c84SAndroid Build Coastguard Worker struct brctl_data brctl; 864*cf5a6c84SAndroid Build Coastguard Worker struct diff_data diff; 865*cf5a6c84SAndroid Build Coastguard Worker struct expr_data expr; 866*cf5a6c84SAndroid Build Coastguard Worker struct getfattr_data getfattr; 867*cf5a6c84SAndroid Build Coastguard Worker struct lsof_data lsof; 868*cf5a6c84SAndroid Build Coastguard Worker struct modprobe_data modprobe; 869*cf5a6c84SAndroid Build Coastguard Worker struct more_data more; 870*cf5a6c84SAndroid Build Coastguard Worker struct stty_data stty; 871*cf5a6c84SAndroid Build Coastguard Worker struct tr_data tr; 872*cf5a6c84SAndroid Build Coastguard Worker struct traceroute_data traceroute; 873*cf5a6c84SAndroid Build Coastguard Worker struct vi_data vi; 874*cf5a6c84SAndroid Build Coastguard Worker struct basename_data basename; 875*cf5a6c84SAndroid Build Coastguard Worker struct cal_data cal; 876*cf5a6c84SAndroid Build Coastguard Worker struct chgrp_data chgrp; 877*cf5a6c84SAndroid Build Coastguard Worker struct chmod_data chmod; 878*cf5a6c84SAndroid Build Coastguard Worker struct cmp_data cmp; 879*cf5a6c84SAndroid Build Coastguard Worker struct cp_data cp; 880*cf5a6c84SAndroid Build Coastguard Worker struct cpio_data cpio; 881*cf5a6c84SAndroid Build Coastguard Worker struct cut_data cut; 882*cf5a6c84SAndroid Build Coastguard Worker struct date_data date; 883*cf5a6c84SAndroid Build Coastguard Worker struct dd_data dd; 884*cf5a6c84SAndroid Build Coastguard Worker struct df_data df; 885*cf5a6c84SAndroid Build Coastguard Worker struct du_data du; 886*cf5a6c84SAndroid Build Coastguard Worker struct env_data env; 887*cf5a6c84SAndroid Build Coastguard Worker struct expand_data expand; 888*cf5a6c84SAndroid Build Coastguard Worker struct file_data file; 889*cf5a6c84SAndroid Build Coastguard Worker struct find_data find; 890*cf5a6c84SAndroid Build Coastguard Worker struct grep_data grep; 891*cf5a6c84SAndroid Build Coastguard Worker struct head_data head; 892*cf5a6c84SAndroid Build Coastguard Worker struct iconv_data iconv; 893*cf5a6c84SAndroid Build Coastguard Worker struct id_data id; 894*cf5a6c84SAndroid Build Coastguard Worker struct kill_data kill; 895*cf5a6c84SAndroid Build Coastguard Worker struct ln_data ln; 896*cf5a6c84SAndroid Build Coastguard Worker struct logger_data logger; 897*cf5a6c84SAndroid Build Coastguard Worker struct ls_data ls; 898*cf5a6c84SAndroid Build Coastguard Worker struct mkdir_data mkdir; 899*cf5a6c84SAndroid Build Coastguard Worker struct mkfifo_data mkfifo; 900*cf5a6c84SAndroid Build Coastguard Worker struct nice_data nice; 901*cf5a6c84SAndroid Build Coastguard Worker struct nl_data nl; 902*cf5a6c84SAndroid Build Coastguard Worker struct od_data od; 903*cf5a6c84SAndroid Build Coastguard Worker struct paste_data paste; 904*cf5a6c84SAndroid Build Coastguard Worker struct patch_data patch; 905*cf5a6c84SAndroid Build Coastguard Worker struct ps_data ps; 906*cf5a6c84SAndroid Build Coastguard Worker struct renice_data renice; 907*cf5a6c84SAndroid Build Coastguard Worker struct sed_data sed; 908*cf5a6c84SAndroid Build Coastguard Worker struct sort_data sort; 909*cf5a6c84SAndroid Build Coastguard Worker struct split_data split; 910*cf5a6c84SAndroid Build Coastguard Worker struct strings_data strings; 911*cf5a6c84SAndroid Build Coastguard Worker struct tail_data tail; 912*cf5a6c84SAndroid Build Coastguard Worker struct tar_data tar; 913*cf5a6c84SAndroid Build Coastguard Worker struct tee_data tee; 914*cf5a6c84SAndroid Build Coastguard Worker struct touch_data touch; 915*cf5a6c84SAndroid Build Coastguard Worker struct ulimit_data ulimit; 916*cf5a6c84SAndroid Build Coastguard Worker struct uniq_data uniq; 917*cf5a6c84SAndroid Build Coastguard Worker struct uudecode_data uudecode; 918*cf5a6c84SAndroid Build Coastguard Worker struct wc_data wc; 919*cf5a6c84SAndroid Build Coastguard Worker struct xargs_data xargs; 920*cf5a6c84SAndroid Build Coastguard Worker } this; 921