diff options
author | benno <benno@FreeBSD.org> | 2002-04-29 12:14:31 +0000 |
---|---|---|
committer | benno <benno@FreeBSD.org> | 2002-04-29 12:14:31 +0000 |
commit | 7b2f527b762ff7efbf18017fe8d715d4dc5ed89a (patch) | |
tree | 45a1ef1295e7ad8713b677cd19c22c066f8608eb /sys/powerpc/include/frame.h | |
parent | 2715240fe7a7238d5caa38cf8f6fb16ee0755a5c (diff) | |
download | FreeBSD-src-7b2f527b762ff7efbf18017fe8d715d4dc5ed89a.zip FreeBSD-src-7b2f527b762ff7efbf18017fe8d715d4dc5ed89a.tar.gz |
Commit of stuff that's been sitting in my tree for a while.
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)
Diffstat (limited to 'sys/powerpc/include/frame.h')
-rw-r--r-- | sys/powerpc/include/frame.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/sys/powerpc/include/frame.h b/sys/powerpc/include/frame.h index 72dbd9f..63f07bf 100644 --- a/sys/powerpc/include/frame.h +++ b/sys/powerpc/include/frame.h @@ -90,4 +90,50 @@ struct callframe { register_t cf_arg1; }; +#define IFRAMELEN sizeof(struct intrframe) +struct intrframe { + register_t r1; /* 0 */ + register_t _pad4; /* 4 */ + /* + * The next 4 fields are "clockframe" + */ + register_t srr1; /* 8 */ + register_t srr0; /* 12 */ + int pri; /* 16 */ + int intr_depth; /* 20 */ + register_t vrsave; /* 24 */ + register_t ctr; /* 28 */ + register_t xer; /* 32 */ + register_t cr; /* 36 */ + register_t lr; /* 40 */ + register_t r12; /* 44 */ + register_t r11; /* 48 */ + register_t r10; /* 52 */ + register_t r9; /* 56 */ + register_t r8; /* 60 */ + register_t r7; /* 64 */ + register_t r6; /* 68 */ + register_t r5; /* 72 */ + register_t r4; /* 76 */ + register_t r3; /* 80 */ + register_t r0; /* 84 */ +}; + +#define SPFRAMELEN sizeof(struct spillframe) +struct spillframe { + register_t r1; /* 0 */ + register_t _pad4; /* 4 */ + register_t r12; /* 8 */ + register_t r11; /* 12 */ + register_t r10; /* 16 */ + register_t r9; /* 20 */ + register_t r8; /* 24 */ + register_t r7; /* 28 */ + register_t r6; /* 32 */ + register_t r5; /* 36 */ + register_t r4; /* 40 */ + register_t r3; /* 44 */ + register_t r0; /* 48 */ +}; + #endif /* _MACHINE_FRAME_H_ */ |