copy, copyin, copyout

Alexej Sokolov bsd.quest at googlemail.com
Tue Nov 25 10:26:58 PST 2008


On Tue, Nov 25, 2008 at 06:55:21PM +0100, Max Laier wrote:
> 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.
Thanks a lot! I was lucky because I wired allocated pages before. 

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

-- 
Alexej Sokolov <bsd.quest at googlemail.com>


More information about the freebsd-hackers mailing list