freebsd-skq/sys/ia64/include
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
..
pc
_align.h Get rid of the _NO_NAMESPACE_POLLUTION kludge by creating an 2009-09-08 20:45:40 +00:00
_bus.h
_inttypes.h
_limits.h
_regset.h
_stdint.h
_types.h
acpica_machdep.h
asm.h o Align function on a 32-byte boundary so that the core's front-end 2009-10-21 18:09:48 +00:00
atomic.h Define mb(), rmb() and wmb() for real. 2008-11-22 06:56:49 +00:00
bootinfo.h
bus_dma.h
bus.h Revamp bus_space access functions: 2009-12-30 18:15:25 +00:00
clock.h Export the bus, cpu and itc frequencies under the hw.freq sysctl node. 2009-12-23 04:48:42 +00:00
cpu.h
cpufunc.h Revamp bus_space access functions: 2009-12-30 18:15:25 +00:00
db_machdep.h
dig64.h
efi.h
elf.h Define architectural load bases for PIE binaries. Addresses were selected 2009-10-10 15:31:24 +00:00
endian.h
exec.h
float.h
floatingpoint.h
fpu.h
frame.h
gdb_machdep.h
ia64_cpu.h Make sure bus space accesses use unorder memory loads and stores. 2009-12-03 04:06:48 +00:00
ieee.h
ieeefp.h
in_cksum.h
intr.h
intrcnt.h
kdb.h Define struct pcpu_md as the only MD field of struct pcpu (pc_acpi_id 2009-12-07 06:41:27 +00:00
limits.h
mca.h Add a bit definition for invalid timestamp in the record header. 2009-12-23 04:39:05 +00:00
md_var.h Export the bus, cpu and itc frequencies under the hw.freq sysctl node. 2009-12-23 04:48:42 +00:00
memdev.h Remove the unused major/minor numbers from iodev and memdev. 2008-06-25 07:45:31 +00:00
mutex.h
nexusvar.h
pal.h
param.h Allocate the VHPT for each CPU in cpu_mp_start(), rather than 2009-12-07 00:54:02 +00:00
pcb.h
pci_cfgreg.h
pcpu.h Define struct pcpu_md as the only MD field of struct pcpu (pc_acpi_id 2009-12-07 06:41:27 +00:00
pmap.h Allocate the VHPT for each CPU in cpu_mp_start(), rather than 2009-12-07 00:54:02 +00:00
pmc_mdep.h
proc.h Reimplement the lazy FP context switching: 2009-10-31 22:27:31 +00:00
profile.h
pte.h
ptrace.h
reg.h
reloc.h
resource.h
runq.h
sal.h
sapicreg.h
sapicvar.h
setjmp.h
sf_buf.h
sigframe.h
signal.h
smp.h * Completely Remove the option STOP_NMI from the kernel. This option 2009-08-13 17:09:45 +00:00
stdarg.h
sysarch.h
ucontext.h
unwind.h
varargs.h
vm.h Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
vmparam.h Remove cruft we got from Alpha, which was probably inherited 2008-04-18 02:21:11 +00:00