Lines Matching refs:cmd

157 vmcmd_map_pagedvn(struct proc *p, struct exec_vmcmd *cmd)
173 if (cmd->ev_len == 0)
175 if (cmd->ev_offset & PAGE_MASK)
177 if (cmd->ev_addr & PAGE_MASK)
179 if (cmd->ev_len & PAGE_MASK)
186 uobj = uvn_attach(cmd->ev_vp, PROT_READ | PROT_EXEC);
193 error = uvm_map(&p->p_vmspace->vm_map, &cmd->ev_addr, cmd->ev_len,
194 uobj, cmd->ev_offset, 0,
195 UVM_MAPFLAG(cmd->ev_prot, PROT_MASK, MAP_INHERIT_COPY,
208 if (cmd->ev_flags & VMCMD_IMMUTABLE)
209 uvm_map_immutable(&p->p_vmspace->vm_map, cmd->ev_addr,
210 round_page(cmd->ev_addr + cmd->ev_len), 1);
213 ((cmd->ev_flags & VMCMD_IMMUTABLE) && (cmd->ev_prot & PROT_EXEC)))
215 cmd->ev_addr, round_page(cmd->ev_addr + cmd->ev_len));
230 vmcmd_map_readvn(struct proc *p, struct exec_vmcmd *cmd)
235 if (cmd->ev_len == 0)
238 prot = cmd->ev_prot;
240 KASSERT((cmd->ev_addr & PAGE_MASK) == 0);
241 error = uvm_map(&p->p_vmspace->vm_map, &cmd->ev_addr,
242 round_page(cmd->ev_len), NULL, UVM_UNKNOWN_OFFSET, 0,
249 error = vn_rdwr(UIO_READ, cmd->ev_vp, (caddr_t)cmd->ev_addr,
250 cmd->ev_len, cmd->ev_offset, UIO_USERSPACE, IO_UNIT,
263 cmd->ev_addr, round_page(cmd->ev_len),
267 if (cmd->ev_flags & VMCMD_IMMUTABLE)
268 uvm_map_immutable(&p->p_vmspace->vm_map, cmd->ev_addr,
269 round_page(cmd->ev_addr + cmd->ev_len), 1);
280 vmcmd_map_zero(struct proc *p, struct exec_vmcmd *cmd)
284 if (cmd->ev_len == 0)
287 KASSERT((cmd->ev_addr & PAGE_MASK) == 0);
288 error = uvm_map(&p->p_vmspace->vm_map, &cmd->ev_addr,
289 round_page(cmd->ev_len), NULL, UVM_UNKNOWN_OFFSET, 0,
290 UVM_MAPFLAG(cmd->ev_prot, PROT_MASK, MAP_INHERIT_COPY,
292 (cmd->ev_flags & VMCMD_STACK ? UVM_FLAG_STACK : 0)));
293 if (cmd->ev_flags & VMCMD_IMMUTABLE)
294 uvm_map_immutable(&p->p_vmspace->vm_map, cmd->ev_addr,
295 round_page(cmd->ev_addr + cmd->ev_len), 1);
305 vmcmd_mutable(struct proc *p, struct exec_vmcmd *cmd)
307 if (cmd->ev_len == 0)
311 uvm_map_immutable(&p->p_vmspace->vm_map, trunc_page(cmd->ev_addr),
312 round_page(cmd->ev_addr + cmd->ev_len), 0);
322 vmcmd_randomize(struct proc *p, struct exec_vmcmd *cmd)
328 size_t len = cmd->ev_len;
338 error = copyout(buf, (void *)cmd->ev_addr, len);
345 error = copyout(buf, (void *)cmd->ev_addr + off, sublen);