Module Name: src Committed By: matt Date: Wed Mar 16 21:15:30 UTC 2011
Modified Files: src/sys/arch/powerpc/powerpc: compat_13_machdep.c compat_16_machdep.c core_machdep.c darwin_machdep.c mach_machdep.c powerpc_machdep.c process_machdep.c sig_machdep.c syscall.c trap.c Log Message: Use l->l_md.md_utf in preference to trapframe(l). This shrink the kernel just a bit in size. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/powerpc/powerpc/compat_13_machdep.c cvs rdiff -u -r1.16 -r1.17 src/sys/arch/powerpc/powerpc/compat_16_machdep.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/powerpc/powerpc/core_machdep.c cvs rdiff -u -r1.29 -r1.30 src/sys/arch/powerpc/powerpc/darwin_machdep.c \ src/sys/arch/powerpc/powerpc/process_machdep.c cvs rdiff -u -r1.30 -r1.31 src/sys/arch/powerpc/powerpc/mach_machdep.c cvs rdiff -u -r1.46 -r1.47 src/sys/arch/powerpc/powerpc/powerpc_machdep.c \ src/sys/arch/powerpc/powerpc/syscall.c cvs rdiff -u -r1.39 -r1.40 src/sys/arch/powerpc/powerpc/sig_machdep.c cvs rdiff -u -r1.138 -r1.139 src/sys/arch/powerpc/powerpc/trap.c 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/powerpc/powerpc/compat_13_machdep.c diff -u src/sys/arch/powerpc/powerpc/compat_13_machdep.c:1.18 src/sys/arch/powerpc/powerpc/compat_13_machdep.c:1.19 --- src/sys/arch/powerpc/powerpc/compat_13_machdep.c:1.18 Tue Jan 18 01:02:55 2011 +++ src/sys/arch/powerpc/powerpc/compat_13_machdep.c Wed Mar 16 21:15:29 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_13_machdep.c,v 1.18 2011/01/18 01:02:55 matt Exp $ */ +/* $NetBSD: compat_13_machdep.c,v 1.19 2011/03/16 21:15:29 matt Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: compat_13_machdep.c,v 1.18 2011/01/18 01:02:55 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: compat_13_machdep.c,v 1.19 2011/03/16 21:15:29 matt Exp $"); #ifdef _KERNEL_OPT #include "opt_ppcarch.h" @@ -58,9 +58,9 @@ /* { syscallarg(struct sigcontext13 *) sigcntxp; } */ - struct proc *p = l->l_proc; + struct proc * const p = l->l_proc; + struct trapframe * const tf = l->l_md.md_utf; struct sigcontext13 sc; - struct trapframe *tf; int error; sigset_t mask; @@ -72,8 +72,6 @@ if ((error = copyin(SCARG(uap, sigcntxp), &sc, sizeof sc)) != 0) return (error); - /* Restore the register context. */ - tf = trapframe(l); if (!PSL_USEROK_P(sc.sc_frame.srr1)) return (EINVAL); Index: src/sys/arch/powerpc/powerpc/compat_16_machdep.c diff -u src/sys/arch/powerpc/powerpc/compat_16_machdep.c:1.16 src/sys/arch/powerpc/powerpc/compat_16_machdep.c:1.17 --- src/sys/arch/powerpc/powerpc/compat_16_machdep.c:1.16 Tue Jan 18 01:02:55 2011 +++ src/sys/arch/powerpc/powerpc/compat_16_machdep.c Wed Mar 16 21:15:29 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_16_machdep.c,v 1.16 2011/01/18 01:02:55 matt Exp $ */ +/* $NetBSD: compat_16_machdep.c,v 1.17 2011/03/16 21:15:29 matt Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: compat_16_machdep.c,v 1.16 2011/01/18 01:02:55 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: compat_16_machdep.c,v 1.17 2011/03/16 21:15:29 matt Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -61,18 +61,17 @@ void sendsig_sigcontext(const ksiginfo_t *ksi, const sigset_t *mask) { - struct lwp *l = curlwp; - struct proc *p = l->l_proc; - struct sigacts *ps = p->p_sigacts; + struct lwp * const l = curlwp; + struct proc * const p = l->l_proc; + struct sigacts * const ps = p->p_sigacts; struct sigcontext *fp, frame; - struct trapframe *tf; - struct utrapframe *utf = &frame.sc_frame; + struct trapframe * const tf = l->l_md.md_utf; + struct utrapframe * const utf = &frame.sc_frame; int onstack, error; int sig = ksi->ksi_signo; u_long code = KSI_TRAPCODE(ksi); sig_t catcher = SIGACTION(p, sig).sa_handler; - tf = trapframe(l); /* Do we need to jump onto the signal stack? */ onstack = @@ -196,7 +195,7 @@ return (error); /* Restore the register context. */ - struct trapframe * const tf = trapframe(l); + struct trapframe * const tf = l->l_md.md_utf; /* * Make sure SRR1 hasn't been maliciously tampered with. Index: src/sys/arch/powerpc/powerpc/core_machdep.c diff -u src/sys/arch/powerpc/powerpc/core_machdep.c:1.5 src/sys/arch/powerpc/powerpc/core_machdep.c:1.6 --- src/sys/arch/powerpc/powerpc/core_machdep.c:1.5 Tue Jan 18 01:02:55 2011 +++ src/sys/arch/powerpc/powerpc/core_machdep.c Wed Mar 16 21:15:30 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: core_machdep.c,v 1.5 2011/01/18 01:02:55 matt Exp $ */ +/* $NetBSD: core_machdep.c,v 1.6 2011/03/16 21:15:30 matt Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: core_machdep.c,v 1.5 2011/01/18 01:02:55 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: core_machdep.c,v 1.6 2011/03/16 21:15:30 matt Exp $"); #ifdef _KERNEL_OPT #include "opt_altivec.h" @@ -76,7 +76,7 @@ return 0; } - md_core.frame = *trapframe(l); + md_core.frame = *l->l_md.md_utf; if (l->l_md.md_flags & MDLWP_OWNFPU) { #ifdef PPC_HAVE_FPU fpu_save_lwp(l, FPU_SAVE); Index: src/sys/arch/powerpc/powerpc/darwin_machdep.c diff -u src/sys/arch/powerpc/powerpc/darwin_machdep.c:1.29 src/sys/arch/powerpc/powerpc/darwin_machdep.c:1.30 --- src/sys/arch/powerpc/powerpc/darwin_machdep.c:1.29 Sat Feb 26 05:25:27 2011 +++ src/sys/arch/powerpc/powerpc/darwin_machdep.c Wed Mar 16 21:15:30 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: darwin_machdep.c,v 1.29 2011/02/26 05:25:27 kiyohara Exp $ */ +/* $NetBSD: darwin_machdep.c,v 1.30 2011/03/16 21:15:30 matt Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: darwin_machdep.c,v 1.29 2011/02/26 05:25:27 kiyohara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: darwin_machdep.c,v 1.30 2011/03/16 21:15:30 matt Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -66,10 +66,10 @@ void darwin_sendsig(const ksiginfo_t *ksi, const sigset_t *mask) { - struct lwp *l = curlwp; - struct proc *p = l->l_proc; - struct sigacts *ps = p->p_sigacts; - struct trapframe *tf; + struct lwp * const l = curlwp; + struct proc * const p = l->l_proc; + struct sigacts * const ps = p->p_sigacts; + struct trapframe * const tf = l->l_md.md_utf; struct darwin_sigframe *sfp, sf; int onstack; size_t stack_size; @@ -77,7 +77,6 @@ int sig; int error; - tf = trapframe(l); sig = ksi->ksi_signo; catcher = SIGACTION(p, sig).sa_handler; @@ -191,7 +190,7 @@ } */ struct darwin_ucontext uctx; struct darwin_mcontext mctx; - struct trapframe *tf; + struct trapframe * const tf = l->l_md.md_utf; sigset_t mask; size_t mcsize; int error; @@ -213,9 +212,8 @@ return (error); /* Check for security abuse */ - tf = trapframe(l); if (!PSL_USEROK_P(mctx.ss.srr1)) { - DPRINTF(("uctx.ss.srr1 = 0x%08x, rf->srr1 = 0x%08lx\n", + DPRINTF(("uctx.ss.srr1 = 0x%08x, tf->srr1 = 0x%08lx\n", mctx.ss.srr1, tf->tf_srr1)); return (EINVAL); } @@ -284,7 +282,7 @@ { struct lwp * const l = arg; struct proc * const p = l->l_proc; - struct trapframe * const tf = trapframe(l); + struct trapframe * const tf = l->l_md.md_utf; child_return(arg); Index: src/sys/arch/powerpc/powerpc/process_machdep.c diff -u src/sys/arch/powerpc/powerpc/process_machdep.c:1.29 src/sys/arch/powerpc/powerpc/process_machdep.c:1.30 --- src/sys/arch/powerpc/powerpc/process_machdep.c:1.29 Tue Jan 18 01:02:55 2011 +++ src/sys/arch/powerpc/powerpc/process_machdep.c Wed Mar 16 21:15:30 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: process_machdep.c,v 1.29 2011/01/18 01:02:55 matt Exp $ */ +/* $NetBSD: process_machdep.c,v 1.30 2011/03/16 21:15:30 matt Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: process_machdep.c,v 1.29 2011/01/18 01:02:55 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: process_machdep.c,v 1.30 2011/03/16 21:15:30 matt Exp $"); #include "opt_altivec.h" @@ -52,7 +52,7 @@ int process_read_regs(struct lwp *l, struct reg *regs) { - struct trapframe * const tf = trapframe(l); + struct trapframe * const tf = l->l_md.md_utf; memcpy(regs->fixreg, tf->tf_fixreg, sizeof(regs->fixreg)); regs->lr = tf->tf_lr; @@ -67,7 +67,7 @@ int process_write_regs(struct lwp *l, const struct reg *regs) { - struct trapframe * const tf = trapframe(l); + struct trapframe * const tf = l->l_md.md_utf; memcpy(tf->tf_fixreg, regs->fixreg, sizeof(regs->fixreg)); tf->tf_lr = regs->lr; @@ -121,7 +121,7 @@ int process_set_pc(struct lwp *l, void *addr) { - struct trapframe * const tf = trapframe(l); + struct trapframe * const tf = l->l_md.md_utf; tf->tf_srr0 = (register_t)addr; @@ -131,7 +131,7 @@ int process_sstep(struct lwp *l, int sstep) { - struct trapframe *tf = trapframe(l); + struct trapframe * const tf = l->l_md.md_utf; if (sstep) tf->tf_srr1 |= PSL_SE; Index: src/sys/arch/powerpc/powerpc/mach_machdep.c diff -u src/sys/arch/powerpc/powerpc/mach_machdep.c:1.30 src/sys/arch/powerpc/powerpc/mach_machdep.c:1.31 --- src/sys/arch/powerpc/powerpc/mach_machdep.c:1.30 Sat Feb 26 05:23:22 2011 +++ src/sys/arch/powerpc/powerpc/mach_machdep.c Wed Mar 16 21:15:30 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: mach_machdep.c,v 1.30 2011/02/26 05:23:22 kiyohara Exp $ */ +/* $NetBSD: mach_machdep.c,v 1.31 2011/03/16 21:15:30 matt Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: mach_machdep.c,v 1.30 2011/02/26 05:23:22 kiyohara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mach_machdep.c,v 1.31 2011/03/16 21:15:30 matt Exp $"); #include "opt_ppcarch.h" #include <sys/param.h> @@ -81,18 +81,15 @@ void mach_create_thread_child(void *arg) { - struct mach_create_thread_child_args *mctc; - struct lwp *l; - struct trapframe *tf; + struct mach_create_thread_child_args * const mctc = arg; + struct lwp * const l = mctc->mctc_lwp; + struct trapframe * const tf = l->l_md.md_utf; struct exec_macho_powerpc_thread_state *regs; #ifdef DEBUG_MACH printf("entering mach_create_thread_child\n"); #endif - mctc = (struct mach_create_thread_child_args *)arg; - l = mctc->mctc_lwp; - if (mctc->mctc_flavor != MACHO_POWERPC_THREAD_STATE) { mctc->mctc_child_done = 1; wakeup(&mctc->mctc_child_done); @@ -101,7 +98,6 @@ mutex_exit(proc_lock); } - tf = trapframe(l); regs = (struct exec_macho_powerpc_thread_state *)mctc->mctc_state; /* Index: src/sys/arch/powerpc/powerpc/powerpc_machdep.c diff -u src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.46 src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.47 --- src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.46 Fri Mar 4 22:25:28 2011 +++ src/sys/arch/powerpc/powerpc/powerpc_machdep.c Wed Mar 16 21:15:30 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: powerpc_machdep.c,v 1.46 2011/03/04 22:25:28 joerg Exp $ */ +/* $NetBSD: powerpc_machdep.c,v 1.47 2011/03/16 21:15:30 matt Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.46 2011/03/04 22:25:28 joerg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.47 2011/03/16 21:15:30 matt Exp $"); #include "opt_altivec.h" #include "opt_modular.h" @@ -69,9 +69,9 @@ void setregs(struct lwp *l, struct exec_package *pack, vaddr_t stack) { - struct proc *p = l->l_proc; - struct trapframe *tf = trapframe(l); - struct pcb *pcb = lwp_getpcb(l); + struct proc * const p = l->l_proc; + struct trapframe * const tf = l->l_md.md_utf; + struct pcb * const pcb = lwp_getpcb(l); struct ps_strings arginfo; memset(tf, 0, sizeof *tf); @@ -283,9 +283,7 @@ cpu_upcall(struct lwp *l, int type, int nevents, int ninterrupted, void *sas, void *ap, void *sp, sa_upcall_t upcall) { - struct trapframe *tf; - - tf = trapframe(l); + struct trapframe * const tf = l->l_md.md_utf; /* * Build context to run handler in. Index: src/sys/arch/powerpc/powerpc/syscall.c diff -u src/sys/arch/powerpc/powerpc/syscall.c:1.46 src/sys/arch/powerpc/powerpc/syscall.c:1.47 --- src/sys/arch/powerpc/powerpc/syscall.c:1.46 Tue Jan 18 01:02:55 2011 +++ src/sys/arch/powerpc/powerpc/syscall.c Wed Mar 16 21:15:30 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: syscall.c,v 1.46 2011/01/18 01:02:55 matt Exp $ */ +/* $NetBSD: syscall.c,v 1.47 2011/03/16 21:15:30 matt Exp $ */ /* * Copyright (C) 2002 Matt Thomas @@ -64,13 +64,13 @@ #define EMULNAME(x) (x) #define EMULNAMEU(x) (x) -__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.46 2011/01/18 01:02:55 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.47 2011/03/16 21:15:30 matt Exp $"); void child_return(void *arg) { struct lwp * const l = arg; - struct trapframe * const tf = trapframe(l); + struct trapframe * const tf = l->l_md.md_utf; tf->tf_fixreg[FIRSTARG] = 0; tf->tf_fixreg[FIRSTARG + 1] = 1; Index: src/sys/arch/powerpc/powerpc/sig_machdep.c diff -u src/sys/arch/powerpc/powerpc/sig_machdep.c:1.39 src/sys/arch/powerpc/powerpc/sig_machdep.c:1.40 --- src/sys/arch/powerpc/powerpc/sig_machdep.c:1.39 Mon Feb 7 09:39:48 2011 +++ src/sys/arch/powerpc/powerpc/sig_machdep.c Wed Mar 16 21:15:30 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: sig_machdep.c,v 1.39 2011/02/07 09:39:48 matt Exp $ */ +/* $NetBSD: sig_machdep.c,v 1.40 2011/03/16 21:15:30 matt Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sig_machdep.c,v 1.39 2011/02/07 09:39:48 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sig_machdep.c,v 1.40 2011/03/16 21:15:30 matt Exp $"); #include "opt_ppcarch.h" #include "opt_altivec.h" @@ -147,7 +147,7 @@ void cpu_getmcontext(struct lwp *l, mcontext_t *mcp, unsigned int *flagp) { - const struct trapframe * const tf = trapframe(l); + const struct trapframe * const tf = l->l_md.md_utf; __greg_t * const gr = mcp->__gregs; #if defined(PPC_HAVE_FPU) struct pcb * const pcb = lwp_getpcb(l); @@ -188,7 +188,7 @@ int cpu_setmcontext(struct lwp *l, const mcontext_t *mcp, unsigned int flags) { - struct trapframe * const tf = trapframe(l); + struct trapframe * const tf = l->l_md.md_utf; const __greg_t * const gr = mcp->__gregs; /* Restore GPR context, if any. */ Index: src/sys/arch/powerpc/powerpc/trap.c diff -u src/sys/arch/powerpc/powerpc/trap.c:1.138 src/sys/arch/powerpc/powerpc/trap.c:1.139 --- src/sys/arch/powerpc/powerpc/trap.c:1.138 Tue Jan 18 01:02:55 2011 +++ src/sys/arch/powerpc/powerpc/trap.c Wed Mar 16 21:15:30 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: trap.c,v 1.138 2011/01/18 01:02:55 matt Exp $ */ +/* $NetBSD: trap.c,v 1.139 2011/03/16 21:15:30 matt Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.138 2011/01/18 01:02:55 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.139 2011/03/16 21:15:30 matt Exp $"); #include "opt_altivec.h" #include "opt_ddb.h" @@ -96,8 +96,8 @@ ci->ci_ev_traps.ev_count++; - KASSERTMSG(!usertrap || tf == trapframe(l), - ("trap: tf=%p is invalid: trapframe(%p)=%p", tf, l, trapframe(l))); + KASSERTMSG(!usertrap || tf == l->l_md.md_utf, + ("trap: tf=%p is invalid: trapframe(%p)=%p", tf, l, l->l_md.md_utf)); if (usertrap) { type |= EXC_USER; @@ -914,9 +914,9 @@ void startlwp(void *arg) { - ucontext_t *uc = arg; - lwp_t *l = curlwp; - struct trapframe *tf = trapframe(l); + ucontext_t * const uc = arg; + lwp_t * const l = curlwp; + struct trapframe * const tf = l->l_md.md_utf; int error; error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags); @@ -929,7 +929,7 @@ void upcallret(struct lwp *l) { - struct trapframe *tf = trapframe(l); + struct trapframe * const tf = l->l_md.md_utf; KERNEL_UNLOCK_LAST(l); userret(l, tf);