freebsd-dev/sys/ia64/include
Marcel Moolenaar d1d7df1905 Fix an alpha inheritance bug:
On alpha, PAL is involved in context management and after wiring
the CPU (in alpha_init()) a context switch was performed to tell
PAL about the context. This was bogusly brought over to ia64
where it introduced bugs, because we restored the context from
a mostly uninitialized PCB.

The cleanup constitutes:
o  Remove the unused arguments from ia64_init().
o  Don't return from ia64_init(), but instead call mi_startup()
   directly. This reduces the amount of muckery in assembly and
   also allows for the next bullet:
o  Save our currect context prior to calling mi_startup(). The
   reason for this is that many threads are created from thread0
   by cloning the PCB. By saving our context in the PCB, we have
   something sane to clone. It also ensures that a cloned thread
   that does not alter the context in any way will return to
   the saved context, where we're ready for the eventuality with
   a nice, user unfriendly panic().

The cleanup fixes at least the following bugs:
o  Entering mi_startup() with the RSE in enforced lazy mode.
o  Re-execution of ia64_init() in certain "lab" conditions.

While here, add proper unwind directives to __start() so that
the unwind knows it has reached the bottom of the (call) stack.

Approved by: re@ (blanket)
2003-05-24 00:17:34 +00:00
..
pc use __packed. 2002-09-23 18:54:32 +00:00
_inttypes.h Since printf(3) now supports the `j' conversion specifier, use that 2002-06-30 05:48:03 +00:00
_limits.h sys/sys/limits.h: 2003-05-19 20:29:07 +00:00
_regset.h This file creates register sets based on the runtime specification. 2003-05-15 08:36:03 +00:00
_stdint.h Create a new header <machine/_stdint.h> for storing MD parts of 2002-07-29 17:41:23 +00:00
_types.h - Add vm_paddr_t, a physical address type. This is required for systems 2003-03-25 00:07:06 +00:00
acpica_machdep.h Resolve conflicts arising from the ACPI CA 20020725 import. 2002-07-30 19:35:32 +00:00
asm.h Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00
atomic.h Simplify IA64_CMPXCHG to avoid having braced-groups in expressions. 2002-05-19 20:19:07 +00:00
bootinfo.h Use one of the bi_spare entries for the DIG64 HCDP table address. 2002-12-08 20:32:56 +00:00
bus_memio.h
bus_pio.h
bus.h Revamp the newbus functions: 2003-04-29 09:50:03 +00:00
clock.h Replace the hardcoding of 255 as the clock interrupt vector with 2003-01-06 01:39:25 +00:00
clockvar.h
cpu.h Fix an alpha inheritance bug: 2003-05-24 00:17:34 +00:00
cpufunc.h Revamp the newbus functions: 2003-04-29 09:50:03 +00:00
critical.h Stage-2 commit of the critical*() code. This re-inlines cpu_critical_enter() 2002-04-01 23:51:23 +00:00
db_machdep.h Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00
dig64.h More MFp4: DIG64 structures. 2002-12-18 18:52:20 +00:00
efi.h
elf.h Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable 2002-07-20 02:56:12 +00:00
endian.h Be careful not to define GCC-specific optimizations in the non-GCC 2002-09-23 04:32:17 +00:00
exec.h
float.h Correct LDBL_* constants based on values from i386. 2003-03-27 20:38:22 +00:00
floatingpoint.h
fpu.h
frame.h Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00
ia64_cpu.h o Remove namespace pollution from param.h: 2002-05-19 04:42:19 +00:00
ieee.h
ieeefp.h s/_ALPHA_/_MACHINE_/ 2002-05-13 05:01:05 +00:00
in_cksum.h
inst.h
intr.h Don't hardcode the address of the local (S)APIC (aka processor 2003-01-05 22:14:30 +00:00
intrcnt.h Bump the number of interrupts from 65 to 257. This is a waste of 2003-01-05 22:00:19 +00:00
ioctl_bt848.h
ioctl_meteor.h
kse.h Add a copy of the sparc64 machine/kse.h to satisfy depencies.. 2002-06-29 18:07:50 +00:00
limits.h sys/sys/limits.h: 2003-05-19 20:29:07 +00:00
mca.h Remove the definition of struct mca_guid and use the generic 2002-05-29 05:19:07 +00:00
md_var.h Remove special casing for running in the simulator from the kernel 2003-02-01 22:50:09 +00:00
mutex.h
nexusvar.h Convert NEXUS_ACCESSOR to use the __BUS_ACCESSOR 2002-08-22 19:47:10 +00:00
pal.h
param.h Kill MID_MACHINE, its a.out specific, the only platform that supports 2003-04-30 23:16:33 +00:00
pcb.h Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00
pci_cfgreg.h
pcpu.h
pmap.h pmap_install() needs to be atomic WRT to context switching. Protect 2003-05-19 04:16:30 +00:00
proc.h Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00
profile.h Change critical_t to register_t for intr_disable/restore. 2002-03-21 09:50:11 +00:00
pte.h
ptrace.h Move the definition of PT_[GS]ET{,DB,FP}REGS from the MD ptrace.h to the 2002-03-16 00:25:53 +00:00
reg.h Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00
reloc.h
resource.h
runq.h Move the "- 1" into the RQB_FFS(mask) macro itself so that 2002-06-20 06:21:20 +00:00
sal.h Remove special casing for running in the simulator from the kernel 2003-02-01 22:50:09 +00:00
sapicreg.h
sapicvar.h List the IO SAPIC delivery mode definitions. 2002-10-04 01:33:30 +00:00
setjmp.h Fix threaded applications on ia64 that are linked dynamicly. We did 2003-03-05 04:39:24 +00:00
sigframe.h Split 4.x and 5.x signal handling so that we can keep 4.x signal 2002-10-25 19:10:58 +00:00
signal.h Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00
smp.h Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00
stdarg.h o Add conditionals to allow va_list to be defined in other headers. 2002-10-06 22:01:07 +00:00
sysarch.h
ucontext.h Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00
unwind.h Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00
varargs.h Add conditionals to allow va_list to be defined in other headers. 2002-10-06 22:02:06 +00:00
vmparam.h Revamp of the syscall path, exception and context handling. The 2003-05-16 21:26:42 +00:00