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