Subject: Re: curproc removal (NFS, ...)
To: None <jonathan@dsg.stanford.edu>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-kern
Date: 06/01/2004 15:50:03
> Suppose you wish to call soreceive(). Suppose the socket you want to
> pass to soreceive() might be a PF_UNIX socket (maybe it is, maybe it
> isn't, but you cannot say for sure ahead of time).
> 
> Your call to soreceiv() might therefore call (*pr->pr_dom->dom_externalize)().
> For PF_UNIX sockets (the only non-NULL dom_externalize?), that means
> calling unp_externalize().  unp_exernalize() now requires a valid struct proc *,
> in place of the curproc it used to grab.
> 
> We have agreed not to go back to using use curproc.  How, then, would
> you suggest we pass the necessary struct proc * to soreceive(), so it
> can pass it onto pr->pr_domain->dom_externalize?

for UIO_USERSPACE requests, i think it's fine to use uio_procp for
internalize/externalize.
in the case of SYSSPACE, it's better to return EINVAL (or panic?), IMO.

YAMAMOTO Takashi