From owner-p4-projects@FreeBSD.ORG Sun Mar 23 20:46:02 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8B91B1065672; Sun, 23 Mar 2008 20:46:02 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 30F0B106566B for ; Sun, 23 Mar 2008 20:46:02 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1A93E8FC13 for ; Sun, 23 Mar 2008 20:46:02 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m2NKk2AB010627 for ; Sun, 23 Mar 2008 20:46:02 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m2NKk1wi010625 for perforce@freebsd.org; Sun, 23 Mar 2008 20:46:01 GMT (envelope-from jb@freebsd.org) Date: Sun, 23 Mar 2008 20:46:01 GMT Message-Id: <200803232046.m2NKk1wi010625@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 138386 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Mar 2008 20:46:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=138386 Change 138386 by jb@jb_freebsd1 on 2008/03/23 20:45:55 Cleanup. Not compile tested yet. Affected files ... .. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/i386/dtrace_asm.S#7 edit .. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/i386/dtrace_isa.c#8 edit .. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/i386/dtrace_subr.c#14 edit .. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/i386/instr_size.c#3 edit Differences ... ==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/i386/dtrace_asm.S#7 (text+ko) ==== @@ -410,7 +410,7 @@ * they were when we entered vpanic() to the designated location in * the regs structure we allocated on the stack. */ -#ifdef DOODAD +#ifdef notyet mov %gs, %edx mov %edx, REGOFF_GS(%esp) mov %fs, %edx ==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/i386/dtrace_isa.c#8 (text+ko) ==== @@ -103,7 +103,7 @@ } } -#ifdef DOODAD +#ifdef notyet static int dtrace_getustack_common(uint64_t *pcstack, int pcstack_limit, uintptr_t pc, uintptr_t sp) @@ -180,12 +180,10 @@ return (ret); } -#endif void dtrace_getupcstack(uint64_t *pcstack, int pcstack_limit) { -#ifdef DOODAD klwp_t *lwp = ttolwp(curthread); proc_t *p = curproc; struct regs *rp; @@ -237,49 +235,16 @@ zero: while (pcstack_limit-- > 0) *pcstack++ = NULL; -#endif } int dtrace_getustackdepth(void) { -#ifdef DOODAD - klwp_t *lwp = ttolwp(curthread); - proc_t *p = curproc; - struct regs *rp; - uintptr_t pc, sp; - int n = 0; - - if (lwp == NULL || p == NULL || (rp = lwp->lwp_regs) == NULL) - return (0); - - if (DTRACE_CPUFLAG_ISSET(CPU_DTRACE_FAULT)) - return (-1); - - pc = rp->r_pc; - sp = rp->r_fp; - - if (DTRACE_CPUFLAG_ISSET(CPU_DTRACE_ENTRY)) { - n++; - - if (p->p_model == DATAMODEL_NATIVE) - pc = dtrace_fulword((void *)rp->r_sp); - else - pc = dtrace_fuword32((void *)rp->r_sp); - } - - n += dtrace_getustack_common(NULL, 0, pc, sp); - - return (n); -#else -return 0; -#endif } void dtrace_getufpstack(uint64_t *pcstack, uint64_t *fpstack, int pcstack_limit) { -#ifdef DOODAD klwp_t *lwp = ttolwp(curthread); proc_t *p = curproc; struct regs *rp; @@ -384,14 +349,11 @@ zero: while (pcstack_limit-- > 0) *pcstack++ = NULL; -#endif } -/*ARGSUSED*/ uint64_t dtrace_getarg(int arg, int aframes) { -#ifdef DOODAD uintptr_t val; struct frame *fp = (struct frame *)dtrace_getfp(); uintptr_t *stack; @@ -478,50 +440,42 @@ DTRACE_CPUFLAG_CLEAR(CPU_DTRACE_NOFAULT); return (val); -#else - return (0); +} #endif -} -/*ARGSUSED*/ int dtrace_getstackdepth(int aframes) { -#ifdef DOODAD int depth = 0; - struct frame *frame; - vm_offset_t ebp; + struct i386_frame *frame; + vm_offset_t rbp; aframes++; ebp = dtrace_getfp(); - frame = (struct frame *)ebp; + frame = (struct i386_frame *)ebp; depth++; for(;;) { - if (!INKERNEL(frame)) + if (!INKERNEL((long) frame)) break; - if (!INKERNEL(frame->fr_savpc)) + if (!INKERNEL((long) frame->f_frame)) break; depth++; - if ((struct frame *)frame->fr_savfp < frame || - (vm_offset_t)frame->fr_savfp >= - (vm_offset_t)ebp + KSTACK_PAGES * PAGE_SIZE) + if (frame->f_frame <= frame || + (vm_offset_t)frame->f_frame >= + (vm_offset_t)ebp + KSTACK_PAGES * PAGE_SIZE) break; - - frame = (struct frame *)frame->fr_savfp; + frame = frame->f_frame; } if (depth < aframes) return 0; else return depth - aframes; -#else - return (0); -#endif } +#ifdef notyet ulong_t dtrace_getreg(struct regs *rp, uint_t reg) { -#ifdef DOODAD #if defined(__amd64) int regmap[] = { REG_GS, /* GS */ @@ -622,10 +576,8 @@ return ((&rp->r_gs)[reg]); #endif -#else -return 0; +} #endif -} static int dtrace_copycheck(uintptr_t uaddr, uintptr_t kaddr, size_t size) ==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/i386/dtrace_subr.c#14 (text+ko) ==== @@ -106,20 +106,6 @@ void dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit)) { -#ifdef DOODAD - extern void *device_arena_contains(void *, size_t, size_t *); - caddr_t vaddr; - size_t len; - - for (vaddr = (caddr_t)kernelbase; vaddr < (caddr_t)KERNEL_TEXT; - vaddr += len) { - len = (caddr_t)KERNEL_TEXT - vaddr; - vaddr = device_arena_contains(vaddr, len, &len); - if (vaddr == NULL) - break; - (*func)((uintptr_t)vaddr, (uintptr_t)vaddr + len); - } -#endif (*func)(0, kernelbase); } @@ -161,7 +147,7 @@ dtrace_xcall(DTRACE_CPUALL, (dtrace_xcall_t)dtrace_sync_func, NULL); } -#ifdef DOODAD +#ifdef notyet int (*dtrace_fasttrap_probe_ptr)(struct regs *); int (*dtrace_pid_probe_ptr)(struct regs *); int (*dtrace_return_probe_ptr)(struct regs *); ==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/i386/instr_size.c#3 (text+ko) ==== @@ -122,33 +122,9 @@ return (sz); } -#ifdef DOODAD -int -dtrace_instr_size_isa(uchar_t *instr, model_t model, int *rmindex) -{ - return (dtrace_dis_isize(instr, DIS_ISIZE_INSTR, model, rmindex)); -} -#endif - int dtrace_instr_size(uchar_t *instr) { return (dtrace_dis_isize(instr, DIS_ISIZE_INSTR, DATAMODEL_NATIVE, NULL)); } - -#ifdef DOODAD -/*ARGSUSED*/ -int -instr_size(struct regs *rp, caddr_t *addrp, enum seg_rw rw) -{ - uchar_t instr[16]; /* maximum size instruction */ - caddr_t pc = (caddr_t)rp->r_pc; - - (void) copyin_nowatch(pc, (caddr_t)instr, sizeof (instr)); - - return (dtrace_dis_isize(instr, - rw == S_EXEC ? DIS_ISIZE_INSTR : DIS_ISIZE_OPERAND, - curproc->p_model, NULL)); -} -#endif