summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/include/frame.h
Commit message (Collapse)AuthorAgeFilesLines
* Make Book-E debug register state part of the PCB context.raj2009-02-271-0/+1
| | | | | | | | | | | | | | | | Previously, DBCR0 flags were set "globally", but this leads to problems because Book-E fine grained debug settings work only in conjuction with the debug master enable bit in MSR: in scenarios when the DBCR0 was set with intention to debug one process, but another one with MSR[DE] set got scheduled, the latter would immediately cause debug exceptions to occur upon execution of its own code instructions (and not the one intended for debugging). To avoid such problems and properly handle debugging context, DBCR0 state should be managed individually per process. Submitted by: Grzegorz Bernacki gjb ! semihalf dot com Reviewed by: marcel
* Unify and generalize PowerPC headers, adjust AIM code accordingly.raj2008-03-021-5/+15
| | | | | | | | | | | | | | | | | | | | Rework of this area is a pre-requirement for importing e500 support (and other PowerPC core variations in the future). Mainly the following headers are refactored so that we can cover for low-level differences between various machines within PowerPC architecture: <machine/pcpu.h> <machine/pcb.h> <machine/kdb.h> <machine/hid.h> <machine/frame.h> Areas which use the above are adjusted and cleaned up. Credits for this rework go to marcel@ Approved by: cognet (mentor) MFp4: e500
* Tweak how the MD code calls the fooclock() methods some. Instead ofjhb2005-12-221-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | passing a pointer to an opaque clockframe structure and requiring the MD code to supply CLKF_FOO() macros to extract needed values out of the opaque structure, just pass the needed values directly. In practice this means passing the pair (usermode, pc) to hardclock() and profclock() and passing the boolean (usermode) to hardclock_cpu() and hardclock_process(). Other details: - Axe clockframe and CLKF_FOO() macros on all architectures. Basically, all the archs were taking a trapframe and converting it into a clockframe one way or another. Now they can just extract the PC and usermode values directly out of the trapframe and pass it to fooclock(). - Renamed hardclock_process() to hardclock_cpu() as the latter is more accurate. - On Alpha, we now run profclock() at hz (profhz == hz) rather than at the slower stathz. - On Alpha, for the TurboLaser machines that don't have an 8254 timecounter, call hardclock() directly. This removes an extra conditional check from every clock interrupt on Alpha on the BSP. There is probably room for even further pruning here by changing Alpha to use the simplified timecounter we use on x86 with the lapic timer since we don't get interrupts from the 8254 on Alpha anyway. - On x86, clkintr() shouldn't ever be called now unless using_lapic_timer is false, so add a KASSERT() to that affect and remove a condition to slightly optimize the non-lapic case. - Change prototypeof arm_handler_execute() so that it's first arg is a trapframe pointer rather than a void pointer for clarity. - Use KCOUNT macro in profclock() to lookup the kernel profiling bucket. Tested on: alpha, amd64, arm, i386, ia64, sparc64 Reviewed by: bde (mostly)
* GC some unused frame types.jhb2005-12-161-55/+0
| | | | Approved by: grehan
* /* -> /*- for license, minor formatting changesimp2005-01-071-1/+1
|
* Update the callframe structure to leave space for the frame pointergrehan2004-07-221-0/+2
| | | | | | | | | and saved link register as per the ABI call sequence. Update code that uses this (fork_trampoline etc) to use the correct genassym'd offsets. This fixes the 'invalid LR' message when backtracing kernel threads in DDB.
* <machine/types.> -> <sys/types.h>grehan2002-09-191-1/+1
| | | | Approved by: benno
* - Move macros that represent where syscall args are kept in a trapframe frombenno2002-05-281-0/+5
| | | | | | trap.c to frame.h - Use the macros in vm_machdep.c:cpu_fork() to set up the trap frame of the new thread.
* Commit of stuff that's been sitting in my tree for a while.benno2002-04-291-0/+46
| | | | | | | | | | | Highlights include: - New low-level trap code from NetBSD. The high level code still needs a lot of work. - Fixes for some pmap handling in thread switching. - The kernel will now get to attempting to jump into init in user mode. There are some pmap/trap issues which prevent it from actually getting there though. Obtained from: NetBSD (parts)
* Make fork work, at least for kthreads. Switching still has some issues.benno2002-02-281-7/+6
|
* Update PowerPC MD code to compile and do initial bootstrap based onmp2001-09-201-2/+1
| | | | | | recent changes (KSE and VM requiring physmem to be setup). Reviewed by: benno, jhb, julian
* fix RCS ID style nitobrien2001-06-091-1/+1
|
* Minor style tweaks.obrien2001-01-021-5/+7
|
* Beginnings of the powerpc machine dependant includes.benno2000-11-101-0/+93
Reviewed by: obrien Obtained from: NetBSD
OpenPOWER on IntegriCloud