There isnt always in the hardware either ;)
> My humble belief is that any code relies on a arch specific
> feature, it should be in the respective 'arch' directory, and not
> thrown in with everything else.
> - there isn't an 'arch' directory for arch specific headers.
> 'asm' is currently being used for this, but its naming
> implies assembly-only stuff. Perhaps it should be renamed,
> or a new 'linux/include/arch' symbolic directory link added.
Linux8086 uses this naming. I feel its better. In fact arch/include would
be even more sensible.
> - each driver subdirectory is chock full of drivers, some of
> which are _VERY_ platform specific (and some which are not).
> This suggest to me there needs to be a link to an arch specific
> directory of drivers in each one of these subdirectories.
Very few of them wont in theory run both Alpha & PC. PCI as you have observed
makes things worse. There is code shared from common driver blocks into
all sorts of host specific drivers too.
Alan