freebsd-skq/sys/i386/include
tegge a83353f91a Be more verbose when changing APIC ID on an IO APIC.
Don't allow cpu entries in the MP table to contain APIC IDs out of range.

Don't write outside array boundaries if an IO APIC entry in the MP table
contains an APIC ID out of range.

Assign APIC IDs for all IO APICs according to section 3.6.6 in the
Intel MP spec:

  - If the current APIC ID on an IO APIC doesn't conflict with other
    IO APICs or CPUs, that APIC ID should be used.  The copy of the MP
    table must be updated if the corresponding APIC ID in the MP table
    is different.

  - If the current APIC ID was in conflict with other units, the
    corresponding APIC ID specified in the MP table is checked for conflict.

  - If a conflict is still found then fall back to using a new unique ID.
    The copy of the MP table must be updated.

  - IDs out of range is considered to be in conflict.

During these operations, the IO_TO_ID array cannot be used, since any
conflict would have caused information loss.  The array is then corrected,
since all APIC ID conflicts should have been resolved.

PR:	20312, 18919
2000-08-06 00:04:03 +00:00
..
pc Some more i386-only BIOS-friendliness: 2000-04-16 20:48:33 +00:00
_limits.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ansi.h Protect the i386 machine-dependant type definitions of __int64_t 2000-01-14 10:41:39 +00:00
apic.h Optimize two cases in the MP locking code. First, it is not necessary 1999-11-19 16:49:30 +00:00
apicreg.h Optimize two cases in the MP locking code. First, it is not necessary 1999-11-19 16:49:30 +00:00
apm_bios.h Cleanup debug messages and Add some enhancements from linux on 2000-08-04 20:28:53 +00:00
apm_segments.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
asc_ioctl.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
asm.h Fixed the profiling version ALTENTRY(). Again. The previous version 2000-01-25 09:01:55 +00:00
asmacros.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
asnames.h Commit major SMP cleanups and move the BGL (big giant lock) in the 2000-03-28 07:16:37 +00:00
atomic.h When using _asm{} in GCC, one must specify the operand's size if one 2000-05-10 01:15:55 +00:00
bootinfo.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
bus_at386.h Fixed syntax errors and style bugs in previous commit. The syntax 2000-06-14 18:48:39 +00:00
bus_dma.h Fixed syntax errors and style bugs in previous commit. The syntax 2000-06-14 18:48:39 +00:00
bus_memio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus_pc98.h Fixed syntax errors and style bugs in previous commit. The syntax 2000-06-14 18:48:39 +00:00
bus_pio_ind.h Added indirect pio into the bus space stuff for the NEC PC-98. bus.h 2000-03-29 03:15:22 +00:00
bus_pio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus.h Added indirect pio into the bus space stuff for the NEC PC-98. bus.h 2000-03-29 03:15:22 +00:00
cdk.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
clock.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
comstats.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
console.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
cpu.h Commit major SMP cleanups and move the BGL (big giant lock) in the 2000-03-28 07:16:37 +00:00
cpufunc.h Fix an __asm operand constraint which broke the -O3 and -O0 builds. 2000-02-21 13:06:50 +00:00
cputypes.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
cronyx.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
db_machdep.h Fix style bug: order includes 1999-10-04 13:55:35 +00:00
dvcfg.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
elf.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
endian.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
exec.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
float.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
floatingpoint.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
frame.h sigset_t change (part 3 of 5) 1999-09-29 15:06:27 +00:00
globaldata.h Commit major SMP cleanups and move the BGL (big giant lock) in the 2000-03-28 07:16:37 +00:00
globals.h Commit major SMP cleanups and move the BGL (big giant lock) in the 2000-03-28 07:16:37 +00:00
gsc.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
i4b_cause.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
i4b_debug.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
i4b_ioctl.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
i4b_rbch_ioctl.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
i4b_tel_ioctl.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
i4b_trace.h update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
ieeefp.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
if_wavelan_ieee.h Add support for WEP (encryption) for silver and gold WaveLAN/IEEE turbo cards. 2000-02-02 17:59:13 +00:00
if_wl_wavelan.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
iic.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
in_cksum.h Make in_cksum() a macro call to in_cksum_skip(), since it provides the 2000-05-06 18:18:32 +00:00
ioctl_bt848.h Add multiple #include protection 2000-04-04 16:46:19 +00:00
ioctl_ctx.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ioctl_fd.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
ioctl_meteor.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
ipl.h Pack the SWI bits to save some time and space. 2000-05-31 16:36:20 +00:00
limits.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
lock.h Commit major SMP cleanups and move the BGL (big giant lock) in the 2000-03-28 07:16:37 +00:00
md_var.h Don't forget to reset the hardware debug registers when a process that 2000-02-20 20:51:23 +00:00
mouse.h - Add Support for the following PS/2 mice: 2000-03-18 15:21:40 +00:00
mpapic.h Bump the default NBUS value to 8, in lieu of actually sizing it 2000-05-31 18:55:02 +00:00
mptable.h Be more verbose when changing APIC ID on an IO APIC. 2000-08-06 00:04:03 +00:00
mtpr.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
npx.h Change the default FPU control word so that exceptions for new 2000-03-10 17:56:33 +00:00
param.h Change the mbuf size from 128 -> 256. Increasing the mbuf header size 2000-03-29 05:39:04 +00:00
pcaudioio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pcb_ext.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
pcb.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
pci_cfgreg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pcpu.h Commit major SMP cleanups and move the BGL (big giant lock) in the 2000-03-28 07:16:37 +00:00
pcvt_ioctl.h Add support for "green" saver mode. 2000-03-31 08:29:21 +00:00
perfmon.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
pmap.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
proc.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
profile.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
psl.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ptrace.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
reg.h Document the support in the kernel for hardware debug registers on the 2000-02-12 18:33:54 +00:00
reloc.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
resource.h * Implement bus_set/get/delete_resource for pci. 1999-10-14 21:38:33 +00:00
segments.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
setjmp.h sigset_t change (part 3 of 5) 1999-09-29 15:06:27 +00:00
sigframe.h Fix type of sf_addr. 1999-12-04 10:40:24 +00:00
signal.h Reserve space for FPU state in struct sigcontext. Fix some style bugs 1999-11-12 13:52:11 +00:00
smb.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
smp.h Be more verbose when changing APIC ID on an IO APIC. 2000-08-06 00:04:03 +00:00
smptests.h Commit major SMP cleanups and move the BGL (big giant lock) in the 2000-03-28 07:16:37 +00:00
speaker.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
specialreg.h Add the CR4 values for P3 SIMD enabling support. FXSR tells the cpu that 1999-09-10 15:51:44 +00:00
spigot.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
stdarg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
sysarch.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
trap.h Exchange numerical values for FPE_INTDIV and FPE_INTOVF, so that they 2000-03-20 10:22:19 +00:00
tss.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
types.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
uc_device.h Update sysinstall to use struct uc_device instead of struct isa_device 2000-03-24 22:24:09 +00:00
ucontext.h Add a per-signal flag to mark handlers registered with osigaction, so we 1999-10-11 20:33:17 +00:00
ultrasound.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
varargs.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
vm86.h Some reorganization of sysarch() interface: 1999-09-02 20:59:50 +00:00
vmparam.h Make sysv-style shared memory tuneable params fully runtime adjustable 2000-03-30 07:17:05 +00:00
wtio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00