freebsd-dev/sys/i386/include
Adrian Chadd c22ca7f04f Fix the MP IPI code to differentiate between bitmapped IPIs and function IPIs.
This attempts to fix the IPI handling code to correctly differentiate
between bitmapped IPIs and function IPIs. The Xen IPIs were on low numbers
which clashed with the bitmapped IPIs.

This commit bumps those IPI numbers up to 240 and above (just like in the i386
code) and fiddles with the ipi_vectors[] logic to call the correct function.

This still isn't "right". Specifically, the IPI code may work fine for TLB
shootdown events but the rendezvous/lazypmap IPIs are thrown by calling ipi_*()
routines which don't set the call_func stuff (function id, addr1, addr2) that
the TLB shootdown events are. So the Xen SMP support is still broken.

PR:		135069
2009-05-31 08:11:39 +00:00
..
pc A simple rewrite of biossmap.c: 2009-04-15 17:31:22 +00:00
xen Revert to 2-clause. 2009-05-29 13:48:42 +00:00
_bus.h
_inttypes.h
_limits.h
_stdint.h
_types.h Change float_t and double_t to long double on i386. All floating point 2008-03-05 11:21:14 +00:00
acpica_machdep.h Catch up with ACPI-CA 20070320 import. 2007-03-22 18:16:43 +00:00
apicreg.h Add constants for fields in the local APIC error status register and a 2008-12-11 15:56:30 +00:00
apicvar.h Fix the MP IPI code to differentiate between bitmapped IPIs and function IPIs. 2009-05-31 08:11:39 +00:00
apm_bios.h
apm_segments.h
asm.h Define an END() macro for use in i386 and amd64 assembly code, akin 2007-08-22 04:26:07 +00:00
asmacros.h Integrate support for xen in to i386 common code. 2008-08-15 20:51:31 +00:00
atomic.h Restore memory clobber, to cause mb on the compiler level too. 2008-12-06 21:33:44 +00:00
bootinfo.h Slightly cleanup the 'bootdev' concept on x86 by changing the various 2007-10-24 04:03:25 +00:00
bus_dma.h
bus.h
clock.h Rename statclock_disable variable to atrtcclock_disable that it actually is, 2009-05-03 17:47:21 +00:00
cpu.h
cpufunc.h Simplify in/out functions (for i386 and AMD64). 2009-04-11 14:01:01 +00:00
cputypes.h Introduce cpu_vendor_id and replace a lot of strcmp(cpu_vendor, "..."). 2008-11-26 19:25:13 +00:00
cserial.h
db_machdep.h
elan_mmcr.h
elf.h Add AT_EXECPATH ELF auxinfo entry type. The value's a_ptr is a pointer 2009-03-17 12:50:16 +00:00
endian.h Also remove the unused __word_swap_int*() macros. 2009-04-08 19:10:20 +00:00
exec.h
float.h Oops, back out previous commit since it was to the wrong file. 2008-03-05 11:17:20 +00:00
floatingpoint.h
frame.h
gdb_machdep.h
ieeefp.h MFamd64 (everything possible up to 1.19; mainly the amd64 implementations 2008-01-11 18:59:35 +00:00
if_wl_wavelan.h
in_cksum.h Fold multiple asm statements into one so that the compiler at a certain 2007-10-20 22:18:42 +00:00
intr_machdep.h - Allocate apic vectors on a per-cpu basis. This allows us to allocate 2009-01-29 09:22:56 +00:00
ioctl_bt848.h
ioctl_meteor.h
iodev.h Remove the unused major/minor numbers from iodev and memdev. 2008-06-25 07:45:31 +00:00
kdb.h Add kdb_cpu_sync_icache(), intended to synchronize instruction 2007-06-09 21:55:17 +00:00
legacyvar.h Make the PCI code aware of PCI domains (aka PCI segments) so we can 2007-09-30 11:05:18 +00:00
limits.h
mca.h Implement simple machine check support for amd64 and i386. 2009-05-13 17:53:04 +00:00
md_var.h Introduce cpu_vendor_id and replace a lot of strcmp(cpu_vendor, "..."). 2008-11-26 19:25:13 +00:00
memdev.h Remove the unused M_MEMDEV from the kernel. 2008-06-25 07:52:10 +00:00
metadata.h A simple rewrite of biossmap.c: 2009-04-15 17:31:22 +00:00
minidump.h
mp_watchdog.h
mptable.h
mutex.h
nexusvar.h Rework how the nexus(4) device works on x86 to better handle the idea of 2008-03-13 20:39:04 +00:00
npx.h Some cleanups to the i386 FPU support: 2009-03-05 18:32:43 +00:00
param.h Bump CACHE_LINE_SIZE to 128 for x86. Intel's manuals explicitly recommend 2009-05-18 19:33:59 +00:00
pcaudioio.h
pcb_ext.h
pcb.h A better fix for handling different FPU initial control words for different 2009-03-05 19:42:11 +00:00
pci_cfgreg.h Extend the support for PCI-e memory mapped configuration space access: 2008-08-22 02:14:23 +00:00
pcpu.h Fix IPI support 2008-10-23 07:20:43 +00:00
perfmon.h
pmap.h Update stale comments. The alternate address space mapping was eliminated 2009-03-22 18:56:26 +00:00
pmc_mdep.h - Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo 2008-11-27 09:00:47 +00:00
ppireg.h
privatespace.h
proc.h When doing rfork(0), i.e. separating curproc VM from any other user of 2008-09-12 09:53:29 +00:00
profile.h Unbreak cc -pg support on i386. In gcc 4.2, %ecx is used as the arg pointer 2008-07-23 11:37:20 +00:00
psl.h
ptrace.h
reg.h - Add macro constants for the various fields in %dr7 and use them in place 2006-11-17 19:20:32 +00:00
reloc.h
resource.h
runq.h
segments.h Integrate support for xen in to i386 common code. 2008-08-15 20:51:31 +00:00
setjmp.h Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
sf_buf.h
sigframe.h
signal.h Sync definitions for struct sigcontext for i386 and amd64 architectures 2009-04-01 13:44:28 +00:00
smapi.h
smp.h FreeBSD right now support 32 CPUs on all the architectures at least. 2009-05-14 17:43:00 +00:00
speaker.h
specialreg.h Implement simple machine check support for amd64 and i386. 2009-05-13 17:53:04 +00:00
stack.h Break out stack(9) from ddb(4): 2007-12-02 20:40:35 +00:00
stdarg.h Use __builtin_va_start instead of __builtin_stdarg_start. GCC4 obsoletes 2006-09-21 01:37:02 +00:00
sysarch.h
timerreg.h The "free-lance" timer in the i8254 is only used for the speaker 2008-03-26 20:09:21 +00:00
trap.h GC unused values 2008-10-19 01:23:30 +00:00
tss.h
ucontext.h Add all segment registers for the amd64 CPU to struct reg and mcontext. 2009-04-01 12:44:17 +00:00
varargs.h
vm86.h
vmparam.h Retire VM_PROT_READ_IS_EXEC. It was intended to be a micro-optimization, 2009-04-04 23:12:14 +00:00
xbox.h