Module Name:    src
Committed By:   matt
Date:           Fri Aug 21 17:32:00 UTC 2009

Modified Files:
        src/sys/arch/mips/include [matt-nb5-mips64]: locore.h

Log Message:
Define locoresw struct and use it.
Make tf_pad mips_reg_t since a register is stored in it.
remove argument save area from kernframe on NewABI.


To generate a diff of this commit:
cvs rdiff -u -r1.78.36.1.2.1 -r1.78.36.1.2.2 \
    src/sys/arch/mips/include/locore.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/mips/include/locore.h
diff -u src/sys/arch/mips/include/locore.h:1.78.36.1.2.1 src/sys/arch/mips/include/locore.h:1.78.36.1.2.2
--- src/sys/arch/mips/include/locore.h:1.78.36.1.2.1	Sun Aug 16 03:33:57 2009
+++ src/sys/arch/mips/include/locore.h	Fri Aug 21 17:32:00 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.h,v 1.78.36.1.2.1 2009/08/16 03:33:57 matt Exp $ */
+/* $NetBSD: locore.h,v 1.78.36.1.2.2 2009/08/21 17:32:00 matt Exp $ */
 
 /*
  * Copyright 1996 The Board of Trustees of The Leland Stanford
@@ -300,11 +300,18 @@
 void	stacktrace(void);
 void	logstacktrace(void);
 
+struct locoresw {
+	uintptr_t lsw_cpu_switch_resume;
+	uintptr_t lsw_lwp_trampoline;
+	void (*lsw_cpu_idle)(void);
+	uintptr_t lsw_setfunc_trampoline;
+};
+
 /*
  * The "active" locore-fuction vector, and
  */
 extern mips_locore_jumpvec_t mips_locore_jumpvec;
-extern long *mips_locoresw[];
+extern struct locoresw mips_locoresw;
 
 #if    defined(MIPS1) && !defined(MIPS3) && !defined(MIPS32) && !defined(MIPS64)
 #define MachSetPID		mips1_SetPID
@@ -357,11 +364,11 @@
 #define MIPS_TBIS		(*(mips_locore_jumpvec.TBIS))
 #define MachTLBUpdate		(*(mips_locore_jumpvec.tlbUpdate))
 #define wbflush()		(*(mips_locore_jumpvec.wbflush))()
-#define lwp_trampoline		(mips_locoresw[1])
-#define setfunc_trampoline	(mips_locoresw[3])
+#define lwp_trampoline		mips_locoresw.lsw_lwp_trampoline
+#define setfunc_trampoline	mips_locoresw.lsw_setfunc_trampoline
 #endif
 
-#define CPU_IDLE		(mips_locoresw[2])
+#define CPU_IDLE		mips_locoresw.lsw_cpu_idle
 
 /* cpu_switch_resume is called inside locore.S */
 
@@ -457,8 +464,8 @@
 
 struct trapframe {
 	mips_reg_t tf_regs[TF_NREGS];
-	u_int32_t  tf_ppl;		/* previous priority level */
-	int32_t    tf_pad;		/* for 8 byte aligned */
+	uint32_t   tf_ppl;		/* previous priority level */
+	mips_reg_t tf_pad;		/* for 8 byte aligned */
 };
 
 /*
@@ -475,7 +482,7 @@
 #endif
 #endif
 #if defined(__mips_n32) || defined(__mips_n64)
-	register_t cf_args[8 + 1];
+	register_t cf_pad;
 #endif
 	register_t cf_sp;
 	register_t cf_ra;

Reply via email to