Lines Matching defs:toys
6 #include "toys.h"
22 struct toy_context toys;
68 toys.exitval = 127;
69 toys.which = toy_list;
76 toys.which = which;
77 toys.argv = argv;
85 if (CFG_TOYBOX && toys.which == toy_list && toys.argv[2])
86 if (!(toys.which = toy_find(toys.argv[2]))) unknown(toys.argv[2]);
99 toys.optargs = argv+1;
100 for (toys.optc = 0; toys.optargs[toys.optc]; toys.optc++);
102 toys.old_umask = umask(0);
103 if (!(which->flags & TOYFLAG_UMASK)) umask(toys.old_umask);
104 toys.signalfd--;
105 toys.toycount = ARRAY_LEN(toy_list);
111 void *oldwhich = toys.which;
116 if (!toys.which) toys.which = toy_list;
124 toys.wasroot++;
132 // Free old toys contents (to be reentrant), but leave rebound if any
134 if (argv<toys.optargs || argv>toys.optargs+toys.optc) free(toys.optargs);
135 memset(&toys, 0, offsetof(struct toy_context, rebound));
155 if (!CFG_TOYBOX_NORECURSE && toys.stacktop)
156 if (labs((long)toys.stacktop-(long)&which)>6000) return;
159 if (toys.which && (which->flags&TOYFLAG_ROOTONLY) && toys.wasroot) return;
163 if (toys.which) toys.which->toy_main();
181 // (Leave toys.which null to disable suid return logic.)
183 if (toys.argv[1]) {
184 toy_exec(toys.argv+1);
185 if (0<readlink(toys.argv[1], libbuf, sizeof(libbuf))) {
188 if (tl == toy_list) unknown(basename(toys.argv[1]));
189 else toy_exec_which(tl, toys.argv+1);
194 toys.which = toy_list;
196 if (toys.argv[1] && toys.argv[1][0] != '-') unknown(toys.argv[1]);
202 if (toys.argv[1]) {
224 toys.stacktop = &stack;
240 toys.stacktop = 0;
247 toys.argv = argv-1;