xref: /aosp_15_r20/external/toybox/android/linux/generated/globals.h (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
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