freebsd-skq/sys/ia64
Marcel Moolenaar 938026e334 Revamp bus_space access functions:
o   Optimize for memory mapped I/O by making all I/O port acceses function
    calls and marking the test for the IA64_BUS_SPACE_IO tag with
    __predict_false(). Implement the I/O port access functions in a new
    file, called bus_machdep.c.
o   Change the bus_space_handle_t for memory mapped I/O to the virtual
    address rather than the physical address. This eliminates the PA->VA
    translation for every I/O access. The handle for I/O port access is
    still the port number.
o   Move inb(), outb(), inw(), outw(), inl(), outl(), and their string
    variants from cpufunc.h and define them in bus.h. On ia64 these are
    not CPU functions at all. In bus.h they are merely aliases for the
    new I/O port access functions defined in bus_machdep.h.
o   Handle the ACPI resource bug in nexus_set_resource(). There we can
    do it once so that we don't have to worry about it whenever we need
    to write to an I/O port that is really a memory mapped address.

The upshot of this change is that the KBI is better defined and that I/O
port access always involves a function call, allowing us to change the
actual implementation without breaking the KBI. For memory mapped I/O the
virtual address is abstracted, so that we can change the VA->PA mapping
in the kernel without causing an KBI breakage. The exception at this time
is for bus_space_map() and bus_space_unmap().

MFC after:	1 week.
2009-12-30 18:15:25 +00:00
..
acpica Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
compile
conf Add INCLUDE_CONFIG_FILE, and a note in comments about how to also 2009-12-16 02:17:43 +00:00
disasm
ia32 Add trivial implementation for the freebsd32_sysarch on ia64. 2009-04-01 19:23:07 +00:00
ia64 Revamp bus_space access functions: 2009-12-30 18:15:25 +00:00
include Revamp bus_space access functions: 2009-12-30 18:15:25 +00:00
isa Remove isa_irq_pending(). It's not used. 2009-04-24 03:43:20 +00:00
pci