iwasaki 31eddd58e3 Add SMP/i386 suspend/resume support.
Most part is merged from amd64.

- i386/acpica/acpi_wakecode.S
Replaced with amd64 code (from realmode to paging enabling code).

- i386/acpica/acpi_wakeup.c
Replaced with amd64 code (except for wakeup_pagetables stuff).

- i386/include/pcb.h
- i386/i386/genassym.c
Added PCB new members (CR0, CR2, CR4, DS, ED, FS, SS, GDT, IDT, LDT
and TR) needed for suspend/resume, not for context switch.

- i386/i386/swtch.s
Added suspendctx() and resumectx().
Note that savectx() was not changed and used for suspending (while
amd64 code uses it).
BSP and AP execute the same sequence, suspendctx(), acpi_wakecode()
and resumectx() for suspend/resume (in case of UP system also).

- i386/i386/apic_vector.s
Added cpususpend().

- i386/i386/mp_machdep.c
- i386/include/smp.h
Added cpususpend_handler().

- i386/include/apicvar.h
- kern/subr_smp.c
- sys/smp.h
Added IPI_SUSPEND and suspend_cpus().

- i386/i386/initcpu.c
- i386/i386/machdep.c
- i386/include/md_var.h
- pc98/pc98/machdep.c
Moved initializecpu() declarations to md_var.h.

MFC after:	3 days
2012-05-18 18:55:58 +00:00
..
2011-12-05 10:34:52 +00:00
2011-04-13 11:28:46 +00:00
MFC
2011-05-31 21:22:44 +00:00
2012-01-02 12:12:10 +00:00
2012-03-28 20:58:30 +00:00
2012-03-28 20:58:30 +00:00
2012-03-28 20:58:30 +00:00
2012-03-28 20:58:30 +00:00
2012-03-28 20:58:30 +00:00
2011-07-10 00:53:04 +00:00
2012-01-02 12:12:10 +00:00
2012-02-01 14:34:52 +00:00
2012-01-26 16:35:09 +00:00
2012-04-06 06:53:58 +00:00
2012-03-12 11:56:57 +00:00
2012-01-02 12:12:10 +00:00