Subject: Re: direct copy() between two proc address spaces
To: Jaromir Dolecek <jdolecek@NetBSD.org>
From: Jason Thorpe <thorpej@wasabisystems.com>
List: tech-kern
Date: 06/20/2004 10:29:33
--Apple-Mail-58--76292490
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 <thorpej@wasabisystems.com>


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

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (Darwin)

iD8DBQFA1cl9OpVKkaBm8XkRAjxmAKC0ptmhRq1BKunFspjRtvGcT5LckwCfdcB6
k3D8UWFUlrkM0QG0cFO/7MI=
=nbbr
-----END PGP SIGNATURE-----

--Apple-Mail-58--76292490--