From owner-freebsd-current Sat Aug 19 19:38:38 1995 Return-Path: current-owner Received: (from majordom@localhost) by freefall.FreeBSD.org (8.6.11/8.6.6) id TAA24591 for current-outgoing; Sat, 19 Aug 1995 19:38:38 -0700 Received: from cs.weber.edu (cs.weber.edu [137.190.16.16]) by freefall.FreeBSD.org (8.6.11/8.6.6) with SMTP id TAA24585 for ; Sat, 19 Aug 1995 19:38:36 -0700 Received: by cs.weber.edu (4.1/SMI-4.1.1) id AA21280; Sat, 19 Aug 95 20:40:16 MDT From: terry@cs.weber.edu (Terry Lambert) Message-Id: <9508200240.AA21280@cs.weber.edu> Subject: Kernel subsystem modularization To: current@freebsd.org Date: Sat, 19 Aug 95 20:40:15 MDT X-Mailer: ELM [version 2.4dev PL52] Sender: current-owner@freebsd.org Precedence: bulk I have just uploaded patches for kernel subsystem modularization to the file ~terry/SYSINT.tar.gz. These patches lay the groundwork for easing the BSD 4.4Lite2 code integration, as well as setting up the base code required to get rid of the distinction between static and LKM code. The README from the tar file follows. Terry Lambert terry@cs.weber.edu --- Any opinions in this posting are my own and not those of my present or previous employers. =========================================================================== The directories contain absolute path diffs using the symlink /sys to point to /usr/sys. The diffs are named dirname.diff. The mountroot() call in init_main.c differs. It is an easy change to change this from the modified VFS code (this one line change conflicts with the VFS patches submitted earlier). The file kern/init_main.c is an out-and-out replacement. The major architecural issues are made obvious in comments in the kernel.h header file. Basically, this moves the per kernel subsystem system initialization to each of the kernel subsystems being initialized. The intent is to allow drop-in replacement of sybsystems by avoinding global references, addition of subsystems at kernel link time, and link time rather than compile time optioning of certain option drivers/devices/pseudo-devices. This work is an extension of the work Garrett Wollman started with the PSEUDO_SET code in sys/kernel.h. The PSEUDO_SET code should go away in the future; the macro is currently maintained for comapatability with the current formulation of the LKM system; really, we would prefer that all devices, whether they are LKM or not, use the same registration mechinism (same for VFS instances, etc.). The PSEUDO_SET backward compatability code will disappear when the LKM code has been updated to use the linker sets for sysinit directly. ===========================================================================