Lines Matching defs:toys
6 #include "toys.h"
23 struct toy_context toys;
69 toys.exitval = 127;
70 toys.which = toy_list;
77 toys.which = which;
78 toys.argv = argv;
86 if (CFG_TOYBOX && toys.which == toy_list && toys.argv[2])
87 if (!(toys.which = toy_find(toys.argv[2]))) unknown(toys.argv[2]);
100 toys.optargs = argv+1;
101 for (toys.optc = 0; toys.optargs[toys.optc]; toys.optc++);
103 toys.old_umask = umask(0);
104 if (!(which->flags & TOYFLAG_UMASK)) umask(toys.old_umask);
105 toys.signalfd--;
106 toys.toycount = ARRAY_LEN(toy_list);
112 void *oldwhich = toys.which;
117 if (!toys.which) toys.which = toy_list;
125 toys.wasroot++;
133 // Free old toys contents (to be reentrant), but leave rebound if any
135 if (argv<toys.optargs || argv>toys.optargs+toys.optc) free(toys.optargs);
136 memset(&toys, 0, offsetof(struct toy_context, rebound));
156 if (!CFG_TOYBOX_NORECURSE && toys.stacktop)
157 if (labs((long)toys.stacktop-(long)&which)>6000) return;
160 if (toys.which && (which->flags&TOYFLAG_ROOTONLY) && toys.wasroot) return;
164 if (toys.which) toys.which->toy_main();
182 // (Leave toys.which null to disable suid return logic.)
184 if (toys.argv[1]) {
185 toy_exec(toys.argv+1);
186 if (0<readlink(toys.argv[1], libbuf, sizeof(libbuf))) {
189 if (tl == toy_list) unknown(basename(toys.argv[1]));
190 else toy_exec_which(tl, toys.argv+1);
195 toys.which = toy_list;
197 if (toys.argv[1] && toys.argv[1][0] != '-') unknown(toys.argv[1]);
203 if (toys.argv[1]) {
225 toys.stacktop = &stack;
241 toys.stacktop = 0;
248 toys.argv = argv-1;