Lines Matching defs:pack
256 struct exec_package pack;
296 pack.ep_name = (char *)SCARG(uap, path);
297 pack.ep_hdr = malloc(exec_maxhdrsz, M_EXEC, M_WAITOK);
298 pack.ep_hdrlen = exec_maxhdrsz;
299 pack.ep_hdrvalid = 0;
300 pack.ep_ndp = &nid;
301 pack.ep_interp = NULL;
302 pack.ep_args = NULL;
303 pack.ep_auxinfo = NULL;
304 VMCMDSET_INIT(&pack.ep_vmcmds);
305 pack.ep_vap = &attr;
306 pack.ep_flags = 0;
307 pack.ep_pins = NULL;
308 pack.ep_npins = 0;
311 if ((error = check_exec(p, &pack)) != 0) {
331 if (pack.ep_flags & EXEC_HASARGL) {
333 for(; pack.ep_fa[argc] != NULL; argc++) {
334 len = strlcpy(dp, pack.ep_fa[argc], dstsize);
337 if (pack.ep_fa[argc+1] != NULL)
338 free(pack.ep_fa[argc], M_EXEC, len);
340 free(pack.ep_fa[argc], M_EXEC, MAXPATHLEN);
342 free(pack.ep_fa, M_EXEC, 4 * sizeof(char *));
343 pack.ep_flags &= ~EXEC_HASARGL;
352 if (pack.ep_flags & EXEC_SKIPARG)
430 if (len > pack.ep_ssize) { /* in effect, compare to initial limit */
436 pack.ep_ssize = len; /* maybe should go elsewhere, but... */
452 vm->vm_taddr = (char *)trunc_page(pack.ep_taddr);
453 vm->vm_tsize = atop(round_page(pack.ep_taddr + pack.ep_tsize) -
454 trunc_page(pack.ep_taddr));
455 vm->vm_daddr = (char *)trunc_page(pack.ep_daddr);
456 vm->vm_dsize = atop(round_page(pack.ep_daddr + pack.ep_dsize) -
457 trunc_page(pack.ep_daddr));
459 vm->vm_ssize = atop(round_page(pack.ep_ssize));
460 vm->vm_maxsaddr = (char *)pack.ep_maxsaddr;
461 vm->vm_minsaddr = (char *)pack.ep_minsaddr;
465 if (pack.ep_vmcmds.evs_used == 0)
468 error = exec_process_vmcmds(p, &pack);
500 if (!copyargs(&pack, &arginfo, stack, argp))
503 pr->ps_auxinfo = (vaddr_t)pack.ep_auxinfo;
511 if (pack.ep_npins) {
512 pr->ps_pin.pn_start = pack.ep_pinstart;
513 pr->ps_pin.pn_end = pack.ep_pinend;
514 pr->ps_pin.pn_pins = pack.ep_pins;
515 pack.ep_pins = NULL;
516 pr->ps_pin.pn_npins = pack.ep_npins;
545 vref(pack.ep_vp);
546 pr->ps_textvp = pack.ep_vp;
550 if (pack.ep_flags & EXEC_NOBTCFI)
706 vn_close(pack.ep_vp, FREAD, cred, p);
718 if (exec_elf_fixup(p, &pack) != 0)
721 setregs(p, &pack, (u_long)stack + slen, &arginfo);
723 setregs(p, &pack, (u_long)stack, &arginfo);
732 if (exec_md_map(p, &pack))
739 free(pack.ep_hdr, M_EXEC, pack.ep_hdrlen);
742 if ((pack.ep_flags & EXEC_HASFD) && pack.ep_fd < 255)
743 p->p_descfd = pack.ep_fd;
745 if (pack.ep_flags & EXEC_WXNEEDED)
758 kill_vmcmds(&pack.ep_vmcmds);
760 if (pack.ep_flags & EXEC_HASFD) {
761 pack.ep_flags &= ~EXEC_HASFD;
764 (void) fdrelease(p, pack.ep_fd);
766 if (pack.ep_interp != NULL)
767 pool_put(&namei_pool, pack.ep_interp);
768 free(pack.ep_args, M_TEMP, sizeof *pack.ep_args);
769 free(pack.ep_pins, M_PINSYSCALL, pack.ep_npins * sizeof(u_int));
771 vn_close(pack.ep_vp, FREAD, cred, p);
776 free(pack.ep_hdr, M_EXEC, pack.ep_hdrlen);
789 if (pack.ep_interp != NULL)
790 pool_put(&namei_pool, pack.ep_interp);
791 free(pack.ep_args, M_TEMP, sizeof *pack.ep_args);
793 vn_close(pack.ep_vp, FREAD, cred, p);
797 free(pack.ep_hdr, M_EXEC, pack.ep_hdrlen);
804 copyargs(struct exec_package *pack, struct ps_strings *arginfo, void *stack,
842 if (pack->ep_args != NULL)
843 pack->ep_auxinfo = cpp;