Subject: Re: direct copy() between two proc address spaces
To: Jaromir Dolecek <>
From: Jason Thorpe <>
List: tech-kern
Date: 06/20/2004 10:29:33
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII; format=flowed

On Jun 20, 2004, at 10:17 AM, Jaromir Dolecek wrote:

> I believe uiomove() can be used to move data from one process's
> address space to anothers. I've actually wanted to experiment
> with this to optimize pipes further.

No, uiomove() moves between "kernel -> kernel" or "process -> kernel" 
or "kernel -> process".

To move data from one process to another, you would need to map the 
source and target regions into the kernel address space, and then do 
the copy.  This is possible using the various UVM fault (to ensure that 
the source and target regions are resident) and mapping functions.

However, it begs the question -- what are trying to do, specifically, 
Ian?  There might be a way to do this using shared memory primitives 
that are already available.

         -- Jason R. Thorpe <>

content-type: application/pgp-signature; x-mac-type=70674453;
content-description: This is a digitally signed message part
content-disposition: inline; filename=PGP.sig
content-transfer-encoding: 7bit

Version: GnuPG v1.2.3 (Darwin)