PERFORCE change 138386 for review

John Birrell jb at FreeBSD.org
Sun Mar 23 20:46:02 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=138386

Change 138386 by jb at 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


More information about the p4-projects mailing list