Subject: Re: Replacing the sysctl() interface.
To: Simon Burge <simonb@netbsd.org>
From: None <erh@nimenees.com>
List: tech-kern
Date: 06/27/2000 19:53:33
On Wed, Jun 28, 2000 at 12:11:30AM +1000, Simon Burge wrote:
> erh@nimenees.com wrote:
> > 	This is a bit delayed, and I'm probably sounding like a broken
> > record, but each time someone mentions this I'm liking the special 
> > socket type idea more and more.
> 
> Ok, I'm mostly ignorant of the socket idea - so you open a socket, set
> some particular socket option read back the data, right?  Doesn't this
> mean that the complete reply needs to be buffered in the kernel?  Take
> the kern.proc sysctl case - you copyout as much data as requested and
> you're finished, nothing left for a later syscall to finish handling.
	Well, you could buffer it, but why?  We could just have socreate()
put something other that a function pointer to soreceive() in for so_receive
and have that function create the data at the time of the read.
	Or perhaps, since this will be a new address family with a
new protosw table and it's own usrreq function, we can have _that_ set up
any special function pointers.  That might actually work better since
it would have less imapact on the general socket code.

> Am I missing something, or is the socket approach not suited to large
> amounts of data transfer?
	uh.. last I checked sockets worked just fine for that.  ftp doesn't
seem to have problems using them to transfer many megs of info.

eric