No bus_space_read_8 on x86 ?
Carl Delsey
carl.r.delsey at intel.com
Thu Oct 4 17:20:58 UTC 2012
I noticed that the bus_space_*_8 functions are unimplemented for x86.
Looking at the code, it seems this is intentional.
Is this done because on 32-bit systems we don't know, in the general
case, whether to read the upper or lower 32-bits first?
If that's the reason, I was thinking we could provide two
implementations for i386: bus_space_read_8_upper_first and
bus_space_read_8_lower_first. For amd64 we would just have bus_space_read_8
Anybody who wants to use bus_space_read_8 in their file would do
something like:
#define BUS_SPACE_8_BYTES LOWER_FIRST
or
#define BUS_SPACE_8_BYTES UPPER_FIRST
whichever is appropriate for their hardware.
This would go in their source file before including bus.h and we would
take care of mapping to the correct implementation.
With the prevalence of 64-bit registers these days, if we don't provide
an implementation, I expect many drivers will end up rolling their own.
If this seems like a good idea, I'll happily whip up a patch and submit it.
More information about the freebsd-hackers
mailing list