Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Nov 2008 18:55:44 +0100
From:      Max Laier <max@love2party.net>
To:        freebsd-hackers@freebsd.org, Alexej Sokolov <bsd.quest@googlemail.com>
Subject:   Re: copy, copyin, copyout
Message-ID:  <200811251855.44853.max@love2party.net>
In-Reply-To: <20081125173750.GA4131@debian.samsung.router>
References:  <20081125173750.GA4131@debian.samsung.router>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 25 November 2008 18:37:50 Alexej Sokolov wrote:
> Hello,
> could anyone please explain to me the difference between functions:
> copystr() and copyinstr() ?
>
> For i386 copyinstr is implemented in assembler. I can not read
> the assembler code very well.
>
> I tried to allocate a memory in space of user process using vm_map_find
> and then with copystr() I could copy data between user and kernel
> memory. copystr() seemed to be  able to do the same what copyinstr do.

You might get lucky with copystr() if the user page is already resident, but 
if you page fault copystr() will kill the kernel.  copyinstr() handles page 
faults.

-- 
/"\  Best regards,                      | mlaier@freebsd.org
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | mlaier@EFnet
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200811251855.44853.max>