Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Jul 1997 10:30:42 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        sef@Kithrup.COM (Sean Eric Fagan)
Cc:        hackers@FreeBSD.ORG
Subject:   Re: Location of copyin() and copyout()..
Message-ID:  <199707301730.KAA05329@phaeton.artisoft.com>
In-Reply-To: <199707300344.UAA16264@kithrup.com> from "Sean Eric Fagan" at Jul 29, 97 08:44:55 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> Now consider ibcs2_fstat().  Rather than duplicate the work of fstat
> (which would really be a bad thing, because fstat may change and
> ibcs2_fstat may not be updated), ibcs2_fstat goes through some
> *HORRIBLE* hacks to allocate some space in user space, using the
> stackgap_alloc() function.
> 
> If fstat used uiomove(), then it could go to a kernel address.
> (Admittedly, it would still have to be changed -- it would have to have a
> struct uio passed in, probably.  But then ibcs2_fstat could call that
> common function, with less pain.)

Better to have a common function that was not a system-specific system
call implementation, and have the system specific system call and the
ABI system call call the same function.

This implies a kernel level service interface that does not currently
exist.  Nevertheless, this would be very useful for doing things like
moving NFS servers and others into kernel threads instead of heavier
user processes which call a system call and never return.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



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