summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/include/frame.h
diff options
context:
space:
mode:
authorraj <raj@FreeBSD.org>2008-03-02 17:05:57 +0000
committerraj <raj@FreeBSD.org>2008-03-02 17:05:57 +0000
commit3dea77f93cd358a469b5ae398a5e67d559db283a (patch)
tree76f303c015b8c2be4e37152e35c1592f6dbff209 /sys/powerpc/include/frame.h
parent86936eba803f0ae2cade1d704dbb8b6f3fb96974 (diff)
downloadFreeBSD-src-3dea77f93cd358a469b5ae398a5e67d559db283a.zip
FreeBSD-src-3dea77f93cd358a469b5ae398a5e67d559db283a.tar.gz
Unify and generalize PowerPC headers, adjust AIM code accordingly.
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
Diffstat (limited to 'sys/powerpc/include/frame.h')
-rw-r--r--sys/powerpc/include/frame.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/sys/powerpc/include/frame.h b/sys/powerpc/include/frame.h
index 09b7a95..9f714e8 100644
--- a/sys/powerpc/include/frame.h
+++ b/sys/powerpc/include/frame.h
@@ -50,15 +50,25 @@
struct trapframe {
register_t fixreg[32];
register_t lr;
- int cr;
- int xer;
+ int cr;
+ int xer;
register_t ctr;
register_t srr0;
register_t srr1;
- register_t dar; /* dar & dsisr are only filled on a DSI trap */
- int dsisr;
- int exc;
+ int exc;
+ union {
+ struct {
+ /* dar & dsisr are only filled on a DSI trap */
+ register_t dar;
+ int dsisr;
+ } aim;
+ struct {
+ register_t dear;
+ register_t esr;
+ } booke;
+ } cpu;
};
+
/*
* This is to ensure alignment of the stackpointer
*/
OpenPOWER on IntegriCloud