Subject: Re: direct copy() between two proc address spaces
To: Jaromir Dolecek <jdolecek@NetBSD.org>
From: Jason Thorpe <email@example.com>
Date: 06/20/2004 10:29:33
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 <firstname.lastname@example.org>
content-type: application/pgp-signature; x-mac-type=70674453;
content-description: This is a digitally signed message part
content-disposition: inline; filename=PGP.sig
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (Darwin)
-----END PGP SIGNATURE-----