Further normalize the _XXX_H_ symbols used to conditionalize header file
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 23 Oct 2006 21:59:18 +0000 (21:59 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 23 Oct 2006 21:59:18 +0000 (21:59 +0000)
commit27db799796b702fc2bb5abae03a3019c2d76a8be
treef90c23345b223f6a25f185101ff953cb059079b4
parentf83343059aebffa12840341f79523c30636f3864
Further normalize the _XXX_H_ symbols used to conditionalize header file
inclusion.

Use _MACHINE_BLAH_H_ for headers found in "/usr/src/sys/arch/<arch>/include".
Most headers already did this, but some did not.

Use _ARCH_SUBDIR_BLAH_H_ for headers found in "/usr/src/sys/arch/<arch>/subdir
"
instead of _I386_SUBDIR_BLAH_H_.

Change #include's made in architecture-specific directories to use
<machine/blah.h> instead of "blah.h", allowing the included header files
to be overrdden by another architecture.  For example, a virtual kernel
architecture might include a header from arch/i386/include which then
includes some other header in arch/i386/include.  But really we want that
other header to also go via the arch/vkernel/include, so the header files
in arch/i386/include must use <machine/blah.h> instead of "blah.h" for most
of their sub-includes.

Change most architecture-specific includes such as <i386/icu/icu.h> to
use a generic path through the "arch" softlink, such as <arch/icu/icu.h>.

Remove the temporary -I@/arch shim made in a recent commit, the <arch/...>
mechanism replaces it.

These changes allow us to implement heirarchical architectural overrides,
primarily intended for virtual kernel support.  A virtual kernel uses an
architecture of 'vkernel' but must be able to access actual cpu-specific
header files such as those found in arch/i386.  It does this using a
"cpu" softlink.  For example, someone including <machine/atomic.h> in a
vkernel build would hit the "arch/vkernel/include/atomic.h" header, and this
header could then #include <cpu/atomic.h> to access the actual cpu's
atomic.h file: "arch/i386/include/atomic.h".

The ultimate effect is that an architecture can build on another
architecture's header and source files.
sys/net/ppp_layer/ppp_tty.c
sys/platform/pc32/acpica5/acpi_wakeup.c