freebsd-skq/sys
Peter Wemm 54823af256 First round implementation of a fine grain enhanced module to module
version dependency system.  This isn't quite finished, but it is at a
useful stage to do a functional checkpoint.

Highlights:
- version and dependency metadata is gathered via linker sets, so things
are handled the same for static kernels and code built to live in a kld.
- The dependencies are at module level (versus at file level).
- Dependencies determine kld symbol search order - this means that you
cannot link against symbols in another file unless you depend on it. This
is so that you cannot accidently unload the target out from underneath
the ones referencing it.
- It is flexible enough that we can put tags in #include files and macros
so that we can get decent hooks for enforcing recompiles on incompatable
ABI changes.  eg: if we change struct proc, we could force a recompile
for all kld's that reference the proc struct.
- Tangled dependency references at boot time are sorted.  Files are
relocated once all their dependencies are already relocated.

Caveats:
- Loader support is incomplete, but has been worked on seperately.
- Actual enforcement of the version number tags is not active yet - just
the module dependencies are live.  The actual structure of versioning
hasn't been agreed on yet. (eg: major.minor, or whatever)
- There is some backwards compatability for old modules without metadata
but I'm not sure how good it is.

This is based on work originally done by Boris Popov (bp@freebsd.org),
but I'm not sure he'd recognize much of it now. Don't blame him. :-)
Also, ideas have been borrowed from Mike Smith.
2000-04-29 13:19:31 +00:00
..
alpha Hookup /dev/[u]random on the Alpha. 2000-04-28 17:18:48 +00:00
amd64 Mark two functions as private. 2000-04-29 07:48:37 +00:00
boot Make PXE do a dhcp request to find out where its files are. The 2000-04-27 12:30:28 +00:00
cam Remove unneeded <sys/buf.h> includes. 2000-04-18 15:15:39 +00:00
coda Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
compat Fix include paths so that this builds correctly. 2000-04-21 05:54:11 +00:00
compile
conf LOAD_ADDRESS is not used here. See conf/ldscript.* for the link base 2000-04-29 06:29:39 +00:00
contrib Enforce and respect the 8 unit limit. 2000-04-23 09:10:09 +00:00
crypto Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
ddb Add a new sysctl "debug.enter_debugger" (when the kernel is compiled 2000-01-27 22:27:34 +00:00
dev This new version adds support for early NCR chips. 2000-04-29 10:20:16 +00:00
fs Move procfs_fullpath() to vfs_cache.c, with a rename to textvp_fullpath(). 2000-04-26 11:57:45 +00:00
geom Complete the bio/buf divorce for all code below devfs::strategy 2000-04-15 05:54:02 +00:00
gnu Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
i4b * Use sys/sys/random.h rather than a i386 specific one. 2000-04-24 17:30:08 +00:00
i386 Mark two functions as private. 2000-04-29 07:48:37 +00:00
isa Enable PnP attachment for parallel port controllers. 2000-04-22 15:08:50 +00:00
isofs/cd9660 Complete the bio/buf divorce for all code below devfs::strategy 2000-04-15 05:54:02 +00:00
kern First round implementation of a fine grain enhanced module to module 2000-04-29 13:19:31 +00:00
libkern Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
miscfs Move procfs_fullpath() to vfs_cache.c, with a rename to textvp_fullpath(). 2000-04-26 11:57:45 +00:00
modules Added PC-98 supports. 2000-04-27 13:37:40 +00:00
msdosfs Complete the bio/buf divorce for all code below devfs::strategy 2000-04-15 05:54:02 +00:00
net OOps forgot to check in this one... 2000-04-28 17:43:04 +00:00
netatalk Slight cleanup of aarp code 2000-03-29 17:12:09 +00:00
netatm Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
netgraph Two simple changes to the kernel internal API for netgraph modules, 2000-04-28 17:09:00 +00:00
netinet Replace PacketAliasRedirectPptp() (which had nothing specific 2000-04-28 13:44:49 +00:00
netinet6 Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
netipx Calculate checksum properly for propagated IPX/NetBIOS packets. 2000-04-27 10:29:14 +00:00
netkey comment the string after #endif 2000-01-15 05:15:06 +00:00
netnatm Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
netncp Do not panic if request issued by kernel. 2000-04-05 10:54:02 +00:00
netns Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
nfs Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
nfsclient Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
nfsserver Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
ntfs Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
nwfs Remove unneeded <sys/buf.h> includes. 2000-04-18 15:15:39 +00:00
pc98 Fixed typo. 2000-04-29 05:55:33 +00:00
pccard MFPAO3. Improvement of of pccard cis tuple parsing capability. 2000-04-26 15:36:43 +00:00
pci Two simple changes to the kernel internal API for netgraph modules, 2000-04-28 17:09:00 +00:00
posix4 Add $FreeBSD$. 2000-04-22 15:13:06 +00:00
powerpc Remove B_READ, B_WRITE and B_FREEBUF and replace them with a new 2000-03-20 10:44:49 +00:00
rpc
svr4 Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
sys First round implementation of a fine grain enhanced module to module 2000-04-29 13:19:31 +00:00
tools Use a seperate -c and -h mode. The vnode_if.c file is compiled only into 1999-12-12 16:43:05 +00:00
ufs When files are given to users by root, the quota system failed to 2000-04-28 06:12:56 +00:00
vm Implement POSIX.1b shared memory objects. In this implementation, 2000-04-22 15:22:31 +00:00
Makefile Remove the old a.out-only boot loader, we don't use it any more. 2000-03-19 11:42:34 +00:00