185cda1a44a0b00f13a49fd7c606e43cfd1328057Elliott Hughes// toys/android/getprop.c
285cda1a44a0b00f13a49fd7c606e43cfd1328057Elliott Hughes
385cda1a44a0b00f13a49fd7c606e43cfd1328057Elliott Hughesstruct getprop_data {
485cda1a44a0b00f13a49fd7c606e43cfd1328057Elliott Hughes  size_t size;
510a5d416c13890a04ea475738a4d6d8138ba82ceElliott Hughes  char **nv; // name/value pairs: even=name, odd=value
6bae185a8e0bcc981a170f338edf44900ba7888faElliott Hughes  struct selabel_handle *handle;
785cda1a44a0b00f13a49fd7c606e43cfd1328057Elliott Hughes};
885cda1a44a0b00f13a49fd7c606e43cfd1328057Elliott Hughes
9d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/example/hello.c
10d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
11d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct hello_data {
12d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int unused;
13d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
14d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
15d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/example/skeleton.c
16d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
17d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct skeleton_data {
18d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  union {
19d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    struct {
20d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes      char *b_string;
21d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes      long c_number;
22d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes      struct arg_list *d_list;
23d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes      long e_count;
24d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes      char *also_string;
25d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes      char *blubber_string;
26d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    } s;
27d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    struct {
28d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes      long b_number;
29d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    } a;
30d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  };
31d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
32d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int more_globals;
33d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
34d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
35d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/lsb/dmesg.c
36d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
37d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct dmesg_data {
38d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long level;
39d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long size;
40d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
41d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
42d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/lsb/killall.c
43d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
44d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct killall_data {
45d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *sig;
46d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
47d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int signum;
48d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  pid_t cur_pid;
49d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char **names;
50d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  short *err;
51d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
52d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
53d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/lsb/md5sum.c
54d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
55d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct md5sum_data {
56d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned state[5];
57d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned oldstate[5];
58d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  uint64_t count;
59d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  union {
60d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char c[64];
61d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    unsigned i[16];
62d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  } buffer;
63d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
64d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
6540d36f2bcc386eff740ac03bda24d1516e35820aElliott Hughes// toys/lsb/mknod.c
6640d36f2bcc386eff740ac03bda24d1516e35820aElliott Hughes
6740d36f2bcc386eff740ac03bda24d1516e35820aElliott Hughesstruct mknod_data {
68e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  char *arg_context;
6940d36f2bcc386eff740ac03bda24d1516e35820aElliott Hughes  char *m;
7040d36f2bcc386eff740ac03bda24d1516e35820aElliott Hughes};
7140d36f2bcc386eff740ac03bda24d1516e35820aElliott Hughes
72d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/lsb/mktemp.c
73d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
74d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct mktemp_data {
75bf65a2e0c8cf53f35ba0ecb7cedc470d51315d94Elliott Hughes  char *tmpdir;
76d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
77d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
78d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/lsb/mount.c
79d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
80d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct mount_data {
81d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *optlist;
82d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *type;
83d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *bigO;
84d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
85d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned long flags;
86d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *opts;
87d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int okuser;
88d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
89d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
90d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/lsb/passwd.c
91d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
92d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct passwd_data {
93d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *algo;
94d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
95d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
96d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/lsb/pidof.c
97d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
98d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct pidof_data {
99d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *omit;
100d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
101d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
102d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/lsb/seq.c
103d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
104d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct seq_data {
105d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *sep;
106d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *fmt;
107d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
108d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
109d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/lsb/su.c
110d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
111d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct su_data {
112d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *s;
113d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *c;
114d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
115d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
116d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/lsb/umount.c
117d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
118d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct umount_data {
119d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *t;
120d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
121d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *types;
122d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
123d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
124d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/acpi.c
125d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
126d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct acpi_data {
12797809c213e144e9c06c96da444fbd16c023162dcElliott Hughes  int ac, bat, therm, cool;
128d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *cpath;
129d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
130d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
131148622383ae45985d4b44de5a5dd3674a354e0ccElliott Hughes// toys/other/base64.c
132148622383ae45985d4b44de5a5dd3674a354e0ccElliott Hughes
133148622383ae45985d4b44de5a5dd3674a354e0ccElliott Hughesstruct base64_data {
134148622383ae45985d4b44de5a5dd3674a354e0ccElliott Hughes  long columns;
135148622383ae45985d4b44de5a5dd3674a354e0ccElliott Hughes};
136148622383ae45985d4b44de5a5dd3674a354e0ccElliott Hughes
137d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/blockdev.c
138d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
139d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct blockdev_data {
140d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long bsz;
141d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
142d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
143d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/dos2unix.c
144d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
145d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct dos2unix_data {
146d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *tempfile;
147d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
148d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
149d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/fallocate.c
150d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
151d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct fallocate_data {
152d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long size;
153d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
154d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
155d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/free.c
156d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
157d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct free_data {
158d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned bits;
159d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned long long units;
160fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes  char *buf;
161d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
162d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
163584c654efead9619e5a08b387f715882709c3a54Elliott Hughes// toys/other/hexedit.c
164584c654efead9619e5a08b387f715882709c3a54Elliott Hughes
165584c654efead9619e5a08b387f715882709c3a54Elliott Hughesstruct hexedit_data {
166584c654efead9619e5a08b387f715882709c3a54Elliott Hughes  char *data;
167584c654efead9619e5a08b387f715882709c3a54Elliott Hughes  long long len, base;
168e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  int numlen, undo, undolen;
169584c654efead9619e5a08b387f715882709c3a54Elliott Hughes  unsigned height;
170584c654efead9619e5a08b387f715882709c3a54Elliott Hughes};
171584c654efead9619e5a08b387f715882709c3a54Elliott Hughes
172718f34dd95df3d20f2bd955f7fb30d65590e3dddElliott Hughes// toys/other/hwclock.c
173718f34dd95df3d20f2bd955f7fb30d65590e3dddElliott Hughes
174718f34dd95df3d20f2bd955f7fb30d65590e3dddElliott Hughesstruct hwclock_data {
175718f34dd95df3d20f2bd955f7fb30d65590e3dddElliott Hughes  char *fname;
176718f34dd95df3d20f2bd955f7fb30d65590e3dddElliott Hughes
177718f34dd95df3d20f2bd955f7fb30d65590e3dddElliott Hughes  int utc;
178718f34dd95df3d20f2bd955f7fb30d65590e3dddElliott Hughes};
179718f34dd95df3d20f2bd955f7fb30d65590e3dddElliott Hughes
180d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/ifconfig.c
181d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
182d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct ifconfig_data {
183d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int sockfd;
184d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
185d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
186e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes// toys/other/ionice.c
187e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes
188e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughesstruct ionice_data {
189e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  long pid;
190e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  long level;
191e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  long class;
192e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes};
193e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes
194d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/login.c
195d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
196d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct login_data {
197d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *hostname;
19897809c213e144e9c06c96da444fbd16c023162dcElliott Hughes  char *username;
199d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
200d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int login_timeout, login_fail_timeout;
201d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
202d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
203d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/losetup.c
204d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
205d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct losetup_data {
206d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *jfile;
207d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long offset;
208d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long size;
209d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
210d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int openflags;
211d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  dev_t jdev;
212d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  ino_t jino;
213d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
214d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
215d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/lspci.c
216d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
217d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct lspci_data {
218d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *ids;
219d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long numeric;
220d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
221d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  FILE *db;
222d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
223d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
224d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/makedevs.c
225d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
226d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct makedevs_data {
227d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *fname;
228d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
229d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
2304ac9dd68f1aa1b97c421cde2300cd250a7a2ab11Elliott Hughes// toys/other/mix.c
2314ac9dd68f1aa1b97c421cde2300cd250a7a2ab11Elliott Hughes
2324ac9dd68f1aa1b97c421cde2300cd250a7a2ab11Elliott Hughesstruct mix_data {
2334ac9dd68f1aa1b97c421cde2300cd250a7a2ab11Elliott Hughes   long right;
2344ac9dd68f1aa1b97c421cde2300cd250a7a2ab11Elliott Hughes   long level;
2354ac9dd68f1aa1b97c421cde2300cd250a7a2ab11Elliott Hughes   char *dev;
2364ac9dd68f1aa1b97c421cde2300cd250a7a2ab11Elliott Hughes   char *chan;
2374ac9dd68f1aa1b97c421cde2300cd250a7a2ab11Elliott Hughes};
2384ac9dd68f1aa1b97c421cde2300cd250a7a2ab11Elliott Hughes
239d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/mkpasswd.c
240d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
241d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct mkpasswd_data {
242d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long pfd;
243d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *method;
244d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *salt;
245d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
246d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
247a729fc8373ade0ced1cd0dd5ad43ef6a61a5cd24Elliott Hughes// toys/other/mkswap.c
248a729fc8373ade0ced1cd0dd5ad43ef6a61a5cd24Elliott Hughes
249a729fc8373ade0ced1cd0dd5ad43ef6a61a5cd24Elliott Hughesstruct mkswap_data {
250a729fc8373ade0ced1cd0dd5ad43ef6a61a5cd24Elliott Hughes  char *L;
251a729fc8373ade0ced1cd0dd5ad43ef6a61a5cd24Elliott Hughes};
252a729fc8373ade0ced1cd0dd5ad43ef6a61a5cd24Elliott Hughes
253d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/modinfo.c
254d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
255d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct modinfo_data {
256d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *field;
257d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *knam;
258d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *base;
259d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
260d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long mod;
261d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
262d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
263d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/netcat.c
264d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
265d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct netcat_data {
266d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *filename;        // -f read from filename instead of network
267d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long quit_delay;       // -q Exit after EOF from stdin after # seconds.
268d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *source_address;  // -s Bind to a specific source address.
269d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long port;             // -p Bind to a specific source port.
270d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long wait;             // -w Wait # seconds for a connection.
271d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
272d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
273bf65a2e0c8cf53f35ba0ecb7cedc470d51315d94Elliott Hughes// toys/other/nsenter.c
274bf65a2e0c8cf53f35ba0ecb7cedc470d51315d94Elliott Hughes
275bf65a2e0c8cf53f35ba0ecb7cedc470d51315d94Elliott Hughesstruct nsenter_data {
276bf65a2e0c8cf53f35ba0ecb7cedc470d51315d94Elliott Hughes  char *nsnames[6];
277bf65a2e0c8cf53f35ba0ecb7cedc470d51315d94Elliott Hughes  long targetpid;
278bf65a2e0c8cf53f35ba0ecb7cedc470d51315d94Elliott Hughes};
279bf65a2e0c8cf53f35ba0ecb7cedc470d51315d94Elliott Hughes
280d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/oneit.c
281d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
282d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct oneit_data {
283d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *console;
284d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
285d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
28653a43da9b450261eba4490781c734cda29a75b09Elliott Hughes// toys/other/shred.c
28753a43da9b450261eba4490781c734cda29a75b09Elliott Hughes
28853a43da9b450261eba4490781c734cda29a75b09Elliott Hughesstruct shred_data {
28953a43da9b450261eba4490781c734cda29a75b09Elliott Hughes  long offset;
29053a43da9b450261eba4490781c734cda29a75b09Elliott Hughes  long iterations;
29153a43da9b450261eba4490781c734cda29a75b09Elliott Hughes  long size;
29253a43da9b450261eba4490781c734cda29a75b09Elliott Hughes
29353a43da9b450261eba4490781c734cda29a75b09Elliott Hughes  int ufd;
29453a43da9b450261eba4490781c734cda29a75b09Elliott Hughes};
29553a43da9b450261eba4490781c734cda29a75b09Elliott Hughes
296d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/stat.c
297d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
298d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct stat_data {
299d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *fmt;
300d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
301d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  union {
302d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    struct stat st;
303d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    struct statfs sf;
304d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  } stat;
305d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct passwd *user_name;
306d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct group *group_name;
307d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
308d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
309d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/swapon.c
310d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
311d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct swapon_data {
312d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long priority;
313d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
314d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
315d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/switch_root.c
316d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
317d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct switch_root_data {
318d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *console;
319d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
320d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  dev_t rootdev;
321d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
322d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
323d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/timeout.c
324d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
325d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct timeout_data {
326d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *s_signal;
327d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *k_timeout;
328d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
329d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int nextsig;
330d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  pid_t pid;
331d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct timeval ktv;
332d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct itimerval itv;
333d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
334d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
335d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/other/truncate.c
336d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
337d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct truncate_data {
33810a5d416c13890a04ea475738a4d6d8138ba82ceElliott Hughes  char *s;
33910a5d416c13890a04ea475738a4d6d8138ba82ceElliott Hughes
340d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long size;
34110a5d416c13890a04ea475738a4d6d8138ba82ceElliott Hughes  int type;
342d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
343d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
344e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes// toys/other/xxd.c
345e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes
346e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughesstruct xxd_data {
347e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  long g;
348e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  long l;
349e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  long c;
350e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes};
351e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes
352d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/arp.c
353d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
354d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct arp_data {
355d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *hw_type;
356d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *af_type_A;
357d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *af_type_p;
358d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *interface;
359d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
360d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    int sockfd;
361d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *device;
362d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
363d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
364d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/arping.c
365d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
366d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct arping_data {
367d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    long count;
368d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    unsigned long time_out;
369d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *iface;
370d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *src_ip;
371d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
372d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    int sockfd;
3730cad3b1b0742168cc6d6c342b566e660d009e5b8Elliott Hughes    unsigned long start, end;
3740cad3b1b0742168cc6d6c342b566e660d009e5b8Elliott Hughes    unsigned sent_at, sent_nr, rcvd_nr, brd_sent, rcvd_req, brd_rcv,
3750cad3b1b0742168cc6d6c342b566e660d009e5b8Elliott Hughes             unicast_flag;
376d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
377d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
378d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/bootchartd.c
379d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
380d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct bootchartd_data {
381d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char buf[32];
382d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long smpl_period_usec;
383d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int proc_accounting;
384d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int is_login;
385d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
386d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  void *head;
387d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
388d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
389d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/brctl.c
390d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
391d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct brctl_data {
392d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    int sockfd;
393d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
394d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
395d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/compress.c
396d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
397d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct compress_data {
3987fcfbe7a2e99fe96e68ffe8d87370b86097d3999Elliott Hughes  // Huffman codes: base offset and extra bits tables (length and distance)
399d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char lenbits[29], distbits[30];
400d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned short lenbase[29], distbase[30];
401d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  void *fixdisthuff, *fixlithuff;
402d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
4037fcfbe7a2e99fe96e68ffe8d87370b86097d3999Elliott Hughes  // CRC
404d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  void (*crcfunc)(char *data, int len);
4057fcfbe7a2e99fe96e68ffe8d87370b86097d3999Elliott Hughes  unsigned crc;
406d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
4077fcfbe7a2e99fe96e68ffe8d87370b86097d3999Elliott Hughes  // Compressed data buffer
4087fcfbe7a2e99fe96e68ffe8d87370b86097d3999Elliott Hughes  char *data;
4097fcfbe7a2e99fe96e68ffe8d87370b86097d3999Elliott Hughes  unsigned pos, len;
41053a43da9b450261eba4490781c734cda29a75b09Elliott Hughes  int infd, outfd;
4117fcfbe7a2e99fe96e68ffe8d87370b86097d3999Elliott Hughes
4127fcfbe7a2e99fe96e68ffe8d87370b86097d3999Elliott Hughes  // Tables only used for deflation
41353a43da9b450261eba4490781c734cda29a75b09Elliott Hughes  unsigned short *hashhead, *hashchain;
414d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
415d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
416d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/crond.c
417d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
418d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct crond_data {
419d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *crontabs_dir;
420d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *logfile;
421d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int loglevel_d;
422d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int loglevel;
423d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
424d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  time_t crontabs_dir_mtime;
425d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  uint8_t flagd;
426d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
427d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
428d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/crontab.c
429d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
430d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct crontab_data {
431d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *user;
432d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *cdir;
433d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
434d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
435d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/dd.c
436d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
437d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct dd_data {
438d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int sig;
439d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
440d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
441d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/dhcp.c
442d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
443d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct dhcp_data {
444d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *iface;
445d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *pidfile;
446d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *script;
447d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    long retries;
448d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    long timeout;
449d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    long tryagain;
450d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    struct arg_list *req_opt;
451d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *req_ip;
452d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    struct arg_list *pkt_opt;
453d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *fdn_name;
454d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *hostname;
455d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *vendor_cls;
456d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
457d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
458e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes// toys/pending/dhcp6.c
459e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes
460e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughesstruct dhcp6_data {
461e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes  char *interface_name, *pidfile, *script;
462e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes  long retry, timeout, errortimeout;
463e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes  char *req_ip;
464e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes  int length, state, request_length, sock, sock1, status, retval, retries;
465e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes  struct timeval tv;
466e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes  uint8_t transction_id[3];
467e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes  struct sockaddr_in6 input_socket6;
468e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes};
469e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes
470d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/dhcpd.c
471d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
472d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct dhcpd_data {
473e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes    char *iface;
474d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    long port;
475d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};;
476d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
477d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/diff.c
478d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
479d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct diff_data {
480d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long ct;
481d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *start;
482d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *L_list;
483d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
484d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int dir_num, size, is_binary, status, change, len[2];
485d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int *offset[2];
486d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
487d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
488d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/dumpleases.c
489d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
490d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct dumpleases_data {
491d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *file;
492d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
493d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
494d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/expr.c
495d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
496d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct expr_data {
497d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int argidx;
498d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
499d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
500d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/fdisk.c
501d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
502d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct fdisk_data {
503d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long sect_sz;
504d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long sectors;
505d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long heads;
506d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long cylinders;
507d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
508d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
509bae185a8e0bcc981a170f338edf44900ba7888faElliott Hughes// toys/pending/file.c
510bae185a8e0bcc981a170f338edf44900ba7888faElliott Hughes
511bae185a8e0bcc981a170f338edf44900ba7888faElliott Hughesstruct file_data {
512bae185a8e0bcc981a170f338edf44900ba7888faElliott Hughes  int max_name_len;
513bae185a8e0bcc981a170f338edf44900ba7888faElliott Hughes};
514bae185a8e0bcc981a170f338edf44900ba7888faElliott Hughes
515d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/fold.c
516d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
517d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct fold_data {
518d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int width;
519d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
520d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
521d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/fsck.c
522d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
523d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct fsck_data {
524d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int fd_num;
525d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *t_list;
526d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
527d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct double_list *devices;
528d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *arr_flag;
529d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char **arr_type;
530d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int negate;
531d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int sum_status;
532d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int nr_run;
533d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int sig_num;
534d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long max_nr_run;
535d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
536d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
537d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/ftpget.c
538d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
539d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct ftpget_data {
540d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long port; //  char *port;
541d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *password;
542d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *username;
543d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
544d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  FILE *sockfp;
545d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int c;
546d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int isget;
547d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char buf[sizeof(struct sockaddr_storage)];
548d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
549d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
550d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/getty.c
551d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
552d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct getty_data {
553d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *issue_str;
554d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *login_str;
555d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *init_str;
556d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *host_str;
557d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long timeout;
558d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
559d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *tty_name;
560d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int  speeds[20];
561d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int  sc;
562d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct termios termios;
563d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char buff[128];
564d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
565d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
566d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/groupadd.c
567d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
568d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct groupadd_data {
569d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long gid;
570d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
571d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
572d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/host.c
573d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
574d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct host_data {
575d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *type_str;
576d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
577d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
578d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/iconv.c
579d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
580d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct iconv_data {
581d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *from;
582d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *to;
583d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
584d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  void *ic;
585d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
586d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
587d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/ip.c
588d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
589d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct ip_data {
590d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char stats, singleline, flush, *filter_dev, gbuf[8192];
591d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int sockfd, connected, from_ok, route_cmd;
592d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int8_t addressfamily, is_addr;
593d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
594d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
595d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/ipcrm.c
596d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
597d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct ipcrm_data {
598d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *qkey;
599d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *qid;
600d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *skey;
601d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *sid;
602d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *mkey;
603d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *mid;
604d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
605d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
606d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/ipcs.c
607d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
608d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct ipcs_data {
609d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int id;
610d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
611d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
612d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/klogd.c
613d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
614d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct klogd_data {
615d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long level;
616d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
617d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int fd;
618d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
619d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
620d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/last.c
621d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
622d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct last_data {
623d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *file;
624d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
625d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *list;
626d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
627d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
628d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/logger.c
629d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
630d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct logger_data {
631d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *priority_arg;
632d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *ident;
633d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
634d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
635ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes// toys/pending/lsof.c
636ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes
637ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughesstruct lsof_data {
638ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes  char *pids;
639ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes
640ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes  struct stat *sought_files;
641ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes
642ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes  struct double_list *files;
643ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes  int last_shown_pid;
644ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes  int shown_header;
645ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes};
646ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes
647d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/mke2fs.c
648d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
649d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct mke2fs_data {
650d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  // Command line arguments.
651d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long blocksize;
652d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long bytes_per_inode;
653d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long inodes;           // Total inodes in filesystem.
654d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long reserved_percent; // Integer precent of space to reserve for root.
655d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *gendir;          // Where to read dirtree from.
656d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
657d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  // Internal data.
658d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct dirtree *dt;    // Tree of files to copy into the new filesystem.
659d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned treeblocks;   // Blocks used by dt
660d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned treeinodes;   // Inodes used by dt
661d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
662d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned blocks;       // Total blocks in the filesystem.
663d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned freeblocks;   // Free blocks in the filesystem.
664d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned inodespg;     // Inodes per group
665d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned groups;       // Total number of block groups.
666d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned blockbits;    // Bits per block.  (Also blocks per group.)
667d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
668d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  // For gene2fs
669d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned nextblock;    // Next data block to allocate
670d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned nextgroup;    // Next group we'll be allocating from
671d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int fsfd;              // File descriptor of filesystem (to output to).
672d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
673d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct ext2_superblock sb;
674d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
675d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
676d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/modprobe.c
677d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
678d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct modprobe_data {
679d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *probes;
680d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *dbase[256];
681d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *cmdopts;
682d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int nudeps;
683d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  uint8_t symreq;
684d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  void (*dbg)(char *format, ...);
685d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
686d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
687d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/more.c
688d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
689d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct more_data {
690d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct termios inf;
691d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int cin_fd;
692d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
693d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
694ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes// toys/pending/netstat.c
695ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes
696ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughesstruct netstat_data {
697ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes  char current_name[21];
698ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes  int some_process_unidentified;
699ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes};;
700ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes
701d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/openvt.c
702d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
703d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct openvt_data {
704d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned long vt_num;
705d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
706d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
707d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/ping.c
708d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
709d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct ping_data {
710d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long wait_exit;
711d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long wait_resp;
712d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *iface;
713d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long size;
714d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long count;
715d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long ttl;
716d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
717d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int sock;
718d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
719d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
720d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/route.c
721d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
722d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct route_data {
723d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *family;
724d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
725d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
726d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/sh.c
727d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
728d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct sh_data {
729d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *command;
730d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
731d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
732d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/sulogin.c
733d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
734d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct sulogin_data {
735d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long timeout;
736d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct termios crntio;
737d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
738d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
739d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/syslogd.c
740d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
741d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct syslogd_data {
742d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *socket;
743d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *config_file;
744d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *unix_socket;
745d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *logfile;
746d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long interval;
747d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long rot_size;
748d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long rot_count;
749d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *remote_log;
750d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long log_prio;
751d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
752d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct unsocks *lsocks;  // list of listen sockets
753d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct logfile *lfiles;  // list of write logfiles
754d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int sigfd[2];
755d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
756d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
757d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/tar.c
758d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
759d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct tar_data {
760d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *fname;
761d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *dir;
762d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *inc_file;
763d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *exc_file;
764d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *tocmd;
765d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *exc;
766d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
767d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *inc, *pass;
768d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  void *inodes, *handle;
769d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
770d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
771d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/tcpsvd.c
772d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
773d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct tcpsvd_data {
774d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *name;
775d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *user;
776d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long bn;
777d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *nmsg;
778d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long cn;
779d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
780d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int maxc;
781d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int count_all;
782d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int udp;
783d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
784d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
785d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/telnet.c
786d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
787d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct telnet_data {
788d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int port;
789d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int sfd;
790d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char buff[128];
791d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int pbuff;
792d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char iac[256];
793d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int piac;
794d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *ttype;
795d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct termios def_term;
796d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct termios raw_term;
797d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  uint8_t term_ok;
798d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  uint8_t term_mode;
799d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  uint8_t flags;
800d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned win_width;
801d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned win_height;
802d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
803d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
804d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/telnetd.c
805d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
806d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct telnetd_data {
807d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *login_path;
808d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *issue_path;
809d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    int port;
810d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    char *host_addr;
811d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    long w_sec;
812d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
813d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    int gmax_fd;
814d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    pid_t fork_pid;
815d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
816d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
81797809c213e144e9c06c96da444fbd16c023162dcElliott Hughes// toys/pending/tftp.c
81897809c213e144e9c06c96da444fbd16c023162dcElliott Hughes
81997809c213e144e9c06c96da444fbd16c023162dcElliott Hughesstruct tftp_data {
82097809c213e144e9c06c96da444fbd16c023162dcElliott Hughes  char *local_file;
82197809c213e144e9c06c96da444fbd16c023162dcElliott Hughes  char *remote_file;
82297809c213e144e9c06c96da444fbd16c023162dcElliott Hughes  long block_size;
82397809c213e144e9c06c96da444fbd16c023162dcElliott Hughes
82497809c213e144e9c06c96da444fbd16c023162dcElliott Hughes  struct sockaddr_storage inaddr;
82597809c213e144e9c06c96da444fbd16c023162dcElliott Hughes  int af;
82697809c213e144e9c06c96da444fbd16c023162dcElliott Hughes};
82797809c213e144e9c06c96da444fbd16c023162dcElliott Hughes
828d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/tftpd.c
829d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
830d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct tftpd_data {
831d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *user;
832d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
833d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long sfd;
834d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct passwd *pw;
835d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
836d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
837d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/tr.c
838d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
839d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct tr_data {
840d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  short map[256]; //map of chars
841d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int len1, len2;
842d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
843d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
844d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/traceroute.c
845d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
846d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct traceroute_data {
847d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long max_ttl;
848d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long port;
849d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long ttl_probes;
850d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *src_ip;
851d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long tos;
852d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long wait_time;
853d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *loose_source;
854d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long pause_time;
855d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long first_ttl;
856d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *iface;
857d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
858d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  uint32_t gw_list[9];
859d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int recv_sock;
860d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int snd_sock;
861d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned msg_len;
862d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *packet;
863d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  uint32_t ident;
864d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int istraceroute6;
865d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
866d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
867d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/useradd.c
868d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
869d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct useradd_data {
870d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *dir;
871d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *gecos;
872d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *shell;
873d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *u_grp;
874d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long uid;
875d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
876d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long gid;
877d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
878d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
8793fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes// toys/pending/vi.c
8803fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes
8813fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughesstruct vi_data {
8823fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes  struct linestack *ls;
8833fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes  char *statline;
8843fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes};
8853fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes
886d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/pending/watch.c
887d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
888d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct watch_data {
889d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int interval;
890d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
891d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
892d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/chgrp.c
893d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
894d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct chgrp_data {
895d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  uid_t owner;
896d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  gid_t group;
897d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *owner_name, *group_name;
898d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int symfollow;
899d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
900d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
901d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/chmod.c
902d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
903d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct chmod_data {
904d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *mode;
905d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
906d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
907d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/cksum.c
908d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
909d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct cksum_data {
910d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned crc_table[256];
911d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
912d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
913d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/cmp.c
914d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
915d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct cmp_data {
916d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int fd;
917d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *name;
918d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
919d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
920d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/cp.c
921d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
922d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct cp_data {
923e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  union {
924e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes    struct {
925e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes      // install's options
926e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes      char *group;
927e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes      char *user;
928e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes      char *mode;
929e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes    } i;
930e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes    struct {
931e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes      char *preserve;
932e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes    } c;
933e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  };
934d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
935d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *destname;
936d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct stat top;
937d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int (*callback)(struct dirtree *try);
938d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  uid_t uid;
939d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  gid_t gid;
940e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  int pflags;
941d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
942d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
943d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/cpio.c
944d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
945d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct cpio_data {
946d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *archive;
947d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *pass;
948d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *fmt;
949d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
950d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
951d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/cut.c
952d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
953d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct cut_data {
954d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *delim;
955d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *flist;
956d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *clist;
957d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *blist;
958d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
959d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  void *slist_head;
960d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned nelem;
961d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  void (*do_cut)(int fd);
962d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
963d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
964d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/date.c
965d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
966d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct date_data {
967d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *file;
968d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *setfmt;
969d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *showdate;
970ede3a451321e074ceac9cbc9c3f86730df4d3b67Elliott Hughes
971ede3a451321e074ceac9cbc9c3f86730df4d3b67Elliott Hughes  char *tz;
972ede3a451321e074ceac9cbc9c3f86730df4d3b67Elliott Hughes  unsigned nano;
973d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
974d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
975d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/df.c
976d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
977d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct df_data {
978d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *fstype;
979d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
980d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long units;
981064520b0106bb988174c2f38e6b185317486fff0Elliott Hughes  int column_widths[5];
982064520b0106bb988174c2f38e6b185317486fff0Elliott Hughes  int header_shown;
983d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
984d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
985d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/du.c
986d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
987d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct du_data {
988d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long maxdepth;
989d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
990d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long depth, total;
991d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  dev_t st_dev;
992d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  void *inodes;
993d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
994d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
99559a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes// toys/posix/env.c
99659a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes
99759a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughesstruct env_data {
99859a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes  struct arg_list *u;
99959a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes};;
100059a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes
1001d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/expand.c
1002d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1003d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct expand_data {
1004d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *tabs;
1005d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1006d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned tabcount, *tab;
1007d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1008d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1009d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/find.c
1010d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1011d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct find_data {
1012d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char **filter;
1013d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct double_list *argdata;
10142ff26de6e6575c1a3a52143250eaba8e690567b7Elliott Hughes  int topdir, xdev, depth;
1015d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  time_t now;
1016d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1017d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1018d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/grep.c
1019d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1020d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct grep_data {
1021d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long m;
1022d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *f;
1023d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *e;
1024236e745d970f2f6a54ab6567bebbae3573f956c0Elliott Hughes  long a;
1025236e745d970f2f6a54ab6567bebbae3573f956c0Elliott Hughes  long b;
1026236e745d970f2f6a54ab6567bebbae3573f956c0Elliott Hughes  long c;
1027afc66714a4e338f5af2f4ac103c8296d684de49eElliott Hughes
1028afc66714a4e338f5af2f4ac103c8296d684de49eElliott Hughes  char indelim, outdelim;
1029d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1030d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1031d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/head.c
1032d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1033d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct head_data {
1034d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long lines;
1035d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int file_no;
1036d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1037d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1038d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/id.c
1039d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1040d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct id_data {
1041a0da26da9e470dd4c6790c4a54d26ac71e144eebElliott Hughes  int is_groups;
1042d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1043d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1044d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/kill.c
1045d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1046d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct kill_data {
1047d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *signame;
1048d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *olist;
1049d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1050d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1051d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/ls.c
1052d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1053d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct ls_data {
1054d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *color;
1055d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1056a0da26da9e470dd4c6790c4a54d26ac71e144eebElliott Hughes  struct dirtree *files, *singledir;
1057d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1058d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned screen_width;
1059d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int nl_title;
1060d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char uid_buf[12], gid_buf[12];
1061d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1062d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1063d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/mkdir.c
1064d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1065d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct mkdir_data {
1066d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *arg_mode;
1067a0da26da9e470dd4c6790c4a54d26ac71e144eebElliott Hughes  char *arg_context;
1068d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1069d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1070d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/mkfifo.c
1071d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1072d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct mkfifo_data {
1073d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *m_string;
1074e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes  char *Z;
1075e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes
1076d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  mode_t mode;
1077d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1078d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1079d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/nice.c
1080d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1081d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct nice_data {
1082d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long priority;
1083d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1084d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1085d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/nl.c
1086d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1087d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct nl_data {
1088d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long w;
1089d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *s;
1090d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *n;
1091d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *b;
1092d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long l;
1093d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long v;
1094d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1095d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  // Count of consecutive blank lines for -l has to persist between files
1096d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long lcount;
1097d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1098d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1099d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/od.c
1100d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1101d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct od_data {
1102d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *output_base;
1103d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *address_base;
1104d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long max_count;
1105d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long jump_bytes;
1106d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1107d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int address_idx;
1108d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned types, leftover, star;
1109d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *buf;
1110d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  uint64_t bufs[4]; // force 64-bit alignment
1111d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  off_t pos;
1112d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1113d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1114d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/paste.c
1115d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1116d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct paste_data {
1117d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *delim;
1118d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1119d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1120d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/patch.c
1121d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1122d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct patch_data {
1123d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *infile;
1124d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long prefix;
1125d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1126d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct double_list *current_hunk;
1127d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long oldline, oldlen, newline, newlen;
1128d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long linenum;
1129d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int context, state, filein, fileout, filepatch, hunknum;
1130d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *tempname;
1131d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1132d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1133941d74d9c07a4d53368aaafb8e749ec4ffbca246Elliott Hughes// toys/posix/ps.c
1134941d74d9c07a4d53368aaafb8e749ec4ffbca246Elliott Hughes
1135941d74d9c07a4d53368aaafb8e749ec4ffbca246Elliott Hughesstruct ps_data {
1136fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes  union {
1137fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes    struct {
1138fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      struct arg_list *G;
1139fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      struct arg_list *g;
1140fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      struct arg_list *U;
1141fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      struct arg_list *u;
1142fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      struct arg_list *t;
1143fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      struct arg_list *s;
1144fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      struct arg_list *p;
1145236e745d970f2f6a54ab6567bebbae3573f956c0Elliott Hughes      struct arg_list *O;
1146fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      struct arg_list *o;
1147fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      struct arg_list *P;
1148fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      struct arg_list *k;
1149fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes    } ps;
1150fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes    struct {
1151fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      long n;
1152fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes      long d;
1153fb4a3e43e1667f9bfa60873f151f4ee22502f9ecElliott Hughes      long s;
11543fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes      struct arg_list *u;
11553fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes      struct arg_list *p;
1156fb4a3e43e1667f9bfa60873f151f4ee22502f9ecElliott Hughes      struct arg_list *o;
1157fb4a3e43e1667f9bfa60873f151f4ee22502f9ecElliott Hughes      struct arg_list *k;
1158a729fc8373ade0ced1cd0dd5ad43ef6a61a5cd24Elliott Hughes    } top;
1159e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes    struct{
1160e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes      char *L;
1161e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes      struct arg_list *G;
1162e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes      struct arg_list *g;
1163e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes      struct arg_list *P;
1164e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes      struct arg_list *s;
1165e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes      struct arg_list *t;
1166e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes      struct arg_list *U;
1167e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes      struct arg_list *u;
1168e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes      char *d;
1169e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes
1170236e745d970f2f6a54ab6567bebbae3573f956c0Elliott Hughes      void *regexes, *snapshot;
1171e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes      int signal;
1172236e745d970f2f6a54ab6567bebbae3573f956c0Elliott Hughes      pid_t self, match;
1173e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes    } pgrep;
1174fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes  };
1175941d74d9c07a4d53368aaafb8e749ec4ffbca246Elliott Hughes
1176fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes  struct sysinfo si;
1177fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes  struct ptr_len gg, GG, pp, PP, ss, tt, uu, UU;
11783fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes  unsigned width, height;
1179941d74d9c07a4d53368aaafb8e749ec4ffbca246Elliott Hughes  dev_t tty;
1180fc9e18a16f99b693a80a45e756dc4eea79a3a56bElliott Hughes  void *fields, *kfields;
1181236e745d970f2f6a54ab6567bebbae3573f956c0Elliott Hughes  long long ticks, bits, time;
1182e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes  int kcount, forcek, sortpos;
11833fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes  int (*match_process)(long long *slot);
1184e56796db41c0cda778bb5505394b895fdd77e527Elliott Hughes  void (*show_process)(void *tb);
1185941d74d9c07a4d53368aaafb8e749ec4ffbca246Elliott Hughes};
1186941d74d9c07a4d53368aaafb8e749ec4ffbca246Elliott Hughes
1187d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/renice.c
1188d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1189d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct renice_data {
1190d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long nArgu;
1191d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1192d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1193f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes// toys/posix/sed.c
1194f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes
1195f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughesstruct sed_data {
1196f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes  struct arg_list *f;
1197f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes  struct arg_list *e;
1198f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes
1199f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes  // processed pattern list
1200f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes  struct double_list *pattern;
1201f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes
1202f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes  char *nextline, *remember;
1203f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes  void *restart, *lastregex;
1204f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes  long nextlen, rememberlen, count;
1205f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes  int fdout, noeol;
1206f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes  unsigned xx;
1207f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes};
1208f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes
1209d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/sort.c
1210d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1211d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct sort_data {
1212d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *key_separator;
1213d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  struct arg_list *raw_keys;
1214d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *outfile;
1215d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *ignore1, ignore2;   // GNU compatability NOPs for -S and -T.
1216d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1217d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  void *key_list;
1218d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  int linecount;
1219d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char **lines;
1220d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1221d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1222d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/split.c
1223d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1224d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct split_data {
1225d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long lines;
1226d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long bytes;
1227d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long suflen;
1228d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1229d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *outfile;
1230d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1231d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1232d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/strings.c
1233d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1234d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct strings_data {
1235d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long num;
1236d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1237d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1238d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/tail.c
1239d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1240d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct tail_data {
1241d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long lines;
1242d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long bytes;
1243d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
12443fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes  int file_no, ffd, *files;
1245d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1246d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1247d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/tee.c
1248d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1249d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct tee_data {
1250d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  void *outputs;
1251d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1252d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1253d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/touch.c
1254d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1255d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct touch_data {
1256d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *time;
1257d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *file;
1258d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *date;
1259d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1260d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
126159a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes// toys/posix/ulimit.c
126259a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes
126359a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughesstruct ulimit_data {
126459a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes  long pid;
126559a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes};
126659a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes
1267d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/uniq.c
1268d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1269d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct uniq_data {
1270d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long maxchars;
1271d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long nchars;
1272d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long nfields;
1273d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long repeats;
1274d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1275d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1276d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/uudecode.c
1277d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1278d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct uudecode_data {
1279d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *o;
1280d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1281d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1282d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/wc.c
1283d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1284d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct wc_data {
1285d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  unsigned long totals[3];
1286d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1287d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1288d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes// toys/posix/xargs.c
1289d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1290d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesstruct xargs_data {
1291d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long max_bytes;
1292d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long max_entries;
1293d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long L;
1294d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *eofstr;
1295d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char *I;
1296d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1297d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  long entries, bytes;
1298d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes  char delim;
1299d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes};
1300d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
1301d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesextern union global_union {
130285cda1a44a0b00f13a49fd7c606e43cfd1328057Elliott Hughes	struct getprop_data getprop;
1303d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct hello_data hello;
1304d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct skeleton_data skeleton;
1305d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct dmesg_data dmesg;
1306d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct killall_data killall;
1307d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct md5sum_data md5sum;
130840d36f2bcc386eff740ac03bda24d1516e35820aElliott Hughes	struct mknod_data mknod;
1309d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct mktemp_data mktemp;
1310d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct mount_data mount;
1311d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct passwd_data passwd;
1312d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct pidof_data pidof;
1313d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct seq_data seq;
1314d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct su_data su;
1315d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct umount_data umount;
1316d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct acpi_data acpi;
1317148622383ae45985d4b44de5a5dd3674a354e0ccElliott Hughes	struct base64_data base64;
1318d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct blockdev_data blockdev;
1319d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct dos2unix_data dos2unix;
1320d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct fallocate_data fallocate;
1321d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct free_data free;
1322584c654efead9619e5a08b387f715882709c3a54Elliott Hughes	struct hexedit_data hexedit;
1323718f34dd95df3d20f2bd955f7fb30d65590e3dddElliott Hughes	struct hwclock_data hwclock;
1324d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct ifconfig_data ifconfig;
1325e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes	struct ionice_data ionice;
1326d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct login_data login;
1327d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct losetup_data losetup;
1328d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct lspci_data lspci;
1329d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct makedevs_data makedevs;
13304ac9dd68f1aa1b97c421cde2300cd250a7a2ab11Elliott Hughes	struct mix_data mix;
1331d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct mkpasswd_data mkpasswd;
1332a729fc8373ade0ced1cd0dd5ad43ef6a61a5cd24Elliott Hughes	struct mkswap_data mkswap;
1333d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct modinfo_data modinfo;
1334d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct netcat_data netcat;
1335bf65a2e0c8cf53f35ba0ecb7cedc470d51315d94Elliott Hughes	struct nsenter_data nsenter;
1336d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct oneit_data oneit;
133753a43da9b450261eba4490781c734cda29a75b09Elliott Hughes	struct shred_data shred;
1338d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct stat_data stat;
1339d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct swapon_data swapon;
1340d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct switch_root_data switch_root;
1341d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct timeout_data timeout;
1342d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct truncate_data truncate;
1343e3764ccdc1fc3cde5a679539c58c825ed54293eeElliott Hughes	struct xxd_data xxd;
1344d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct arp_data arp;
1345d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct arping_data arping;
1346d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct bootchartd_data bootchartd;
1347d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct brctl_data brctl;
1348d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct compress_data compress;
1349d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct crond_data crond;
1350d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct crontab_data crontab;
1351d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct dd_data dd;
1352d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct dhcp_data dhcp;
1353e39ad552e72aab60aaa9a115262fc0a7914f35b1Elliott Hughes	struct dhcp6_data dhcp6;
1354d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct dhcpd_data dhcpd;
1355d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct diff_data diff;
1356d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct dumpleases_data dumpleases;
1357d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct expr_data expr;
1358d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct fdisk_data fdisk;
1359bae185a8e0bcc981a170f338edf44900ba7888faElliott Hughes	struct file_data file;
1360d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct fold_data fold;
1361d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct fsck_data fsck;
1362d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct ftpget_data ftpget;
1363d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct getty_data getty;
1364d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct groupadd_data groupadd;
1365d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct host_data host;
1366d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct iconv_data iconv;
1367d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct ip_data ip;
1368d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct ipcrm_data ipcrm;
1369d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct ipcs_data ipcs;
1370d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct klogd_data klogd;
1371d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct last_data last;
1372d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct logger_data logger;
1373ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes	struct lsof_data lsof;
1374d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct mke2fs_data mke2fs;
1375d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct modprobe_data modprobe;
1376d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct more_data more;
1377ecd3df97a36c0381ec63fca3d0762658e2efa17dElliott Hughes	struct netstat_data netstat;
1378d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct openvt_data openvt;
1379d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct ping_data ping;
1380d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct route_data route;
1381d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct sh_data sh;
1382d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct sulogin_data sulogin;
1383d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct syslogd_data syslogd;
1384d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct tar_data tar;
1385d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct tcpsvd_data tcpsvd;
1386d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct telnet_data telnet;
1387d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct telnetd_data telnetd;
138897809c213e144e9c06c96da444fbd16c023162dcElliott Hughes	struct tftp_data tftp;
1389d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct tftpd_data tftpd;
1390d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct tr_data tr;
1391d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct traceroute_data traceroute;
1392d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct useradd_data useradd;
13933fac1bd4c14a17ce0e562af3706892152c506a79Elliott Hughes	struct vi_data vi;
1394d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct watch_data watch;
1395d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct chgrp_data chgrp;
1396d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct chmod_data chmod;
1397d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct cksum_data cksum;
1398d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct cmp_data cmp;
1399d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct cp_data cp;
1400d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct cpio_data cpio;
1401d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct cut_data cut;
1402d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct date_data date;
1403d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct df_data df;
1404d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct du_data du;
140559a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes	struct env_data env;
1406d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct expand_data expand;
1407d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct find_data find;
1408d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct grep_data grep;
1409d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct head_data head;
1410d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct id_data id;
1411d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct kill_data kill;
1412d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct ls_data ls;
1413d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct mkdir_data mkdir;
1414d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct mkfifo_data mkfifo;
1415d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct nice_data nice;
1416d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct nl_data nl;
1417d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct od_data od;
1418d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct paste_data paste;
1419d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct patch_data patch;
1420941d74d9c07a4d53368aaafb8e749ec4ffbca246Elliott Hughes	struct ps_data ps;
1421d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct renice_data renice;
1422f9551b31dc3cfd3816c40fcdb1121da6741c2be7Elliott Hughes	struct sed_data sed;
1423d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct sort_data sort;
1424d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct split_data split;
1425d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct strings_data strings;
1426d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct tail_data tail;
1427d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct tee_data tee;
1428d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct touch_data touch;
142959a36104fbd8d0053240767de5db7ee0dcb3129dElliott Hughes	struct ulimit_data ulimit;
1430d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct uniq_data uniq;
1431d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct uudecode_data uudecode;
1432d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct wc_data wc;
1433d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes	struct xargs_data xargs;
1434d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes} this;
1435