freebsd-nq/sys
Garrett Wollman 1e4ad9ce28 This is a proposal-in-code for a substantial modification of the way
the high kernel calls into a protocol stack to perform requests on the
user's behalf.  We replace the pr_usrreq() entry in struct protosw with a
pointer to a structure containing pointers to functions which implement
the various reuqests; each function is declared with the correct type and
number of arguments.  (This is unlike the current scheme in which a quarter
of the requests take arguments of type other than (struct mbuf *) and the
difference is papered over with casts.)  There are a few benefits to this
new scheme:

1) Arguments are passed with their correct types, and null-pointer dummies
   are no longer necessary.

2) There should be slightly better caching effects from eliminating
   the prximity to extraneous code and th switch in pr_usrreq().

3) It becomes much easier to change the types of the arguments to something
   other than `struct mbuf *' (e.g.,pushing the work of sosend() into
   the protocol as advocated by Van Jacobson).

There is one principal drawback: existing protocol stacks need to
be modified.  This is alleviated by compatibility code in
uipc_socket2.c and uipc_domain.c which emulates the new interface
in terms of the old and vice versa.

This idea is not original to me.  I  read about what Jacobson did
in one of his papers and have tried to implement  the first steps
towards something like that here.  Much work remains to be done.
1996-07-09 19:12:53 +00:00
..
alpha Change the way moused talk to syscons, now its only delivering mouseevents 1996-06-25 08:54:57 +00:00
amd64 Fix something that's been bugging me for a long time: move the CPU 1996-07-08 19:44:39 +00:00
compat/linux Removed unused #include. Linux doesn't support SCO consoles. 1996-06-23 17:08:11 +00:00
compile
conf Fix something that's been bugging me for a long time: move the CPU 1996-07-08 19:44:39 +00:00
ddb A small bit of defensive programming in case the panic is during process 1996-06-15 07:08:02 +00:00
dev This driver supports the SDL Communications RISCom/N2 ISA cards that is 1996-07-05 18:51:59 +00:00
fs Implement locking for pfs nodes, when at the leaf. Concurrent access 1996-07-02 13:38:10 +00:00
geom Clean up -Wunused warnings. 1996-06-12 05:11:41 +00:00
gnu Added #include of <machine/md_var.h>. This will be needed when 1996-06-25 20:31:01 +00:00
i386 make the NAMEBLOCK changes conditional on that preprocessor variable, 1996-07-09 02:28:20 +00:00
isa Added or restored #include of <machine/md_var.h>. Some declarations 1996-07-01 20:29:10 +00:00
isofs/cd9660 Moved the fsnode MALLOC to before the call to getnewvnode() so that the 1996-06-12 03:36:23 +00:00
kern This is a proposal-in-code for a substantial modification of the way 1996-07-09 19:12:53 +00:00
libkern Added index() which will be used shortly in some fixes to the ibcs2 1996-06-07 22:21:31 +00:00
miscfs Comment out rootdev & rrootdev so a ls -l doesn't panic the machine. 1996-07-03 03:48:46 +00:00
modules Added or restored #include of <machine/md_var.h>. Some declarations 1996-07-01 20:29:10 +00:00
msdosfs The Great PC98 Merge. 1996-06-14 11:02:28 +00:00
net Remove another extraneous setting of if_lastchange 1996-06-24 21:56:39 +00:00
netatalk Obtained from: Netatalk distribution. 1996-06-18 20:55:13 +00:00
netinet Reject rules which try to mix ports with incompatible protocols. 1996-06-29 03:33:20 +00:00
netipx Clean up -Wunused warnings. 1996-06-12 05:11:41 +00:00
netkey This is the `netkey' kernel key-management service (the PF_KEY analogue 1996-06-14 17:22:18 +00:00
netns finish killing off netns. (For some reason, CVS `undeleted' these 1996-02-13 18:19:17 +00:00
nfs Don't truncate minor or major numbers in the nfsv3 client. 1996-06-23 17:19:25 +00:00
nfsclient Don't truncate minor or major numbers in the nfsv3 client. 1996-06-23 17:19:25 +00:00
nfsserver Don't truncate minor or major numbers in the nfsv3 client. 1996-06-23 17:19:25 +00:00
pc98 The PC98-specific files. 1996-06-14 10:04:54 +00:00
pccard Added #include of <machine/md_var.h>. This will be needed when 1996-06-25 20:31:01 +00:00
pci Removed unused #includes of <i386/isa/icu.h> and <i386/isa/icu.h>. icu.h 1996-06-18 01:22:40 +00:00
powerpc/include
rpc Fix a bunch of spelling errors in the comment fields 1996-01-30 23:33:04 +00:00
scsi Ensure that media protection is released before attempting to eject the 1996-06-24 04:54:32 +00:00
sys This is a proposal-in-code for a substantial modification of the way 1996-07-09 19:12:53 +00:00
tools
ufs Quiet a couple of -Wunused warnings. 1996-07-09 16:51:18 +00:00
vm Back-off on the previous commit, specifically remove the look-ahead 1996-07-08 03:22:55 +00:00
Makefile The Great PC98 Merge. 1996-06-14 11:02:28 +00:00