Lines Matching defs:args

104 MALLOC_DEFINE(M_PARGS, "proc-args", "Process arguments");
119 static int do_execve(struct thread *td, struct image_args *args,
213 struct image_args args;
220 error = exec_copyin_args(&args, uap->fname, UIO_USERSPACE,
223 error = kern_execve(td, &args, NULL, oldvmspace);
238 struct image_args args;
245 error = exec_copyin_args(&args, NULL, UIO_SYSSPACE,
248 args.fd = uap->fd;
249 error = kern_execve(td, &args, NULL, oldvmspace);
268 struct image_args args;
275 error = exec_copyin_args(&args, uap->fname, UIO_USERSPACE,
278 error = kern_execve(td, &args, uap->mac_p, oldvmspace);
337 kern_execve(struct thread *td, struct image_args *args, struct mac *mac_p,
341 AUDIT_ARG_ARGV(args->begin_argv, args->argc,
342 args->begin_envv - args->begin_argv);
343 AUDIT_ARG_ENVV(args->begin_envv, args->envc,
344 args->endp - args->begin_envv);
345 return (do_execve(td, args, mac_p, oldvmspace));
353 do_execve(struct thread *td, struct image_args *args, struct mac *mac_p,
405 imgp->args = args;
422 if (args->fname != NULL) {
424 | AUDITVNODE1, UIO_SYSSPACE, args->fname, td);
427 SDT_PROBE1(proc, , , exec, args->fname);
430 if (args->fname != NULL) {
450 AUDIT_ARG_FD(args->fd);
454 error = fgetvp_exec(td, args->fd,
577 if (args->fname != NULL && args->fname[0] == '/')
578 imgp->execpath = args->fname;
583 imgp->execpath = args->fname;
632 if (args->fname != NULL)
655 args->fname = imgp->interpreter_name;
679 * Copy out strings (args and env) and initialize stack base
694 suword(--stack_base, imgp->args->argc);
696 if (args->fdp != NULL) {
698 fdinstall_remapped(td, args->fdp);
699 args->fdp = NULL;
714 i = imgp->args->begin_envv - imgp->args->begin_argv;
718 bcopy(imgp->args->begin_argv, newargs->ar_args, i);
746 if (args->fname)
890 SDT_PROBE1(proc, , , exec__success, args->fname);
901 if (args->fname)
944 exec_free_args(args);
1181 exec_copyin_args(struct image_args *args, char *fname,
1188 bzero(args, sizeof(*args));
1196 error = exec_alloc_args(args);
1204 args->fname = args->buf;
1206 copystr(fname, args->fname, PATH_MAX, &length) :
1207 copyinstr(fname, args->fname, PATH_MAX, &length);
1213 args->begin_argv = args->buf + length;
1214 args->endp = args->begin_argv;
1215 args->stringspace = ARG_MAX;
1228 error = copyinstr((void *)(uintptr_t)argp, args->endp,
1229 args->stringspace, &length);
1235 args->stringspace -= length;
1236 args->endp += length;
1237 args->argc++;
1240 args->begin_envv = args->endp;
1255 args->endp, args->stringspace, &length);
1261 args->stringspace -= length;
1262 args->endp += length;
1263 args->envc++;
1270 exec_free_args(args);
1275 exec_copyin_data_fds(struct thread *td, struct image_args *args,
1283 memset(args, '\0', sizeof(*args));
1287 error = exec_alloc_args(args);
1291 args->begin_argv = args->buf;
1292 args->stringspace = ARG_MAX;
1300 error = copyin(data, args->begin_argv, datalen);
1303 args->begin_argv[datalen] = '\0';
1304 args->endp = args->begin_argv + datalen + 1;
1305 args->stringspace -= datalen + 1;
1311 for (p = args->begin_argv; p < args->endp; ++p)
1313 ++args->argc;
1316 args->endp = args->begin_argv;
1319 args->begin_envv = args->endp;
1328 error = fdcopy_remapped(ofdp, kfds, fdslen, &args->fdp);
1335 exec_free_args(args);
1358 mtx_init(&exec_args_kva_mtx, "exec args kva", NULL, MTX_DEF);
1452 exec_alloc_args(struct image_args *args)
1455 args->buf = (char *)exec_alloc_args_kva(&args->bufkva);
1460 exec_free_args(struct image_args *args)
1463 if (args->buf != NULL) {
1464 exec_free_args_kva(args->bufkva);
1465 args->buf = NULL;
1467 if (args->fname_buf != NULL) {
1468 free(args->fname_buf, M_TEMP);
1469 args->fname_buf = NULL;
1471 if (args->fdp != NULL)
1472 fdescfree_remapped(args->fdp);
1549 destp -= ARG_MAX - imgp->args->stringspace;
1566 vectp -= imgp->args->argc + 1 + imgp->args->envc + 1;
1573 stringp = imgp->args->begin_argv;
1574 argc = imgp->args->argc;
1575 envc = imgp->args->envc;
1580 copyout(stringp, (void *)destp, ARG_MAX - imgp->args->stringspace);