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;