documentation of changes to include files

Matthew Dillon dillon at
Mon Oct 25 09:38:57 PDT 2004

:Is there any documentation (e-mail threads, commit messages, etc.) for
:the changes made to the header files for DragonFlyBSD from FreeBSD?  If
:not, what is the best way to get up to speed on the changes?
:Glenn Johnson <glennpj at xxxxxxxxxxx>

    There's no documentation per say.  For the most part header changes are
    made either to comply with standards (often taken from FreeBSD work but
    not always), or due to differences in the /usr/src/sys/ topology.  

    For header files, there are three primary topological differences:

    (1) We have a 'bus' category /usr/src/sys/bus, so for example accessing
	the 'pci' bus files is done via <bus/pci/blah.h> instead of the
	<pci/blah.h> that FreeBSD has (because our pci is in
	/usr/src/sys/bus/pci while FreeBSD's is in /usr/src/sys/pci)

    (2) Our devices are sub-categorized.  So, for example, network interfaces
	are primarily in /usr/src/sys/dev/netif/<blah> rather then in
	/usr/src/sys/dev/<blah> or /usr/src/sys/pci/if_<blah>.

    (3) Our network protocols are sub-categorized, so we have 
	/usr/src/sys/netproto/atm whereas FreeBSD has /usr/src/sys/netatm.

    There is one other big differences and that is our build system does not
    use -I- when compiling the kernel or modules, whereas FreeBSD's build
    system does.  What this means in practical terms is that we can safely
    use local include paths such as #include "blah.h" for header files that
    reside in the same directory as the source, FreeBSD must usually use
    <a/b/c/blah.h> instead for such files.

					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>

More information about the Kernel mailing list