summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/include/frame.h
diff options
context:
space:
mode:
authorbenno <benno@FreeBSD.org>2002-04-29 12:14:31 +0000
committerbenno <benno@FreeBSD.org>2002-04-29 12:14:31 +0000
commit7b2f527b762ff7efbf18017fe8d715d4dc5ed89a (patch)
tree45a1ef1295e7ad8713b677cd19c22c066f8608eb /sys/powerpc/include/frame.h
parent2715240fe7a7238d5caa38cf8f6fb16ee0755a5c (diff)
downloadFreeBSD-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.h46
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_ */
OpenPOWER on IntegriCloud