Changeset View
Changeset View
Standalone View
Standalone View
sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 3,354 Lines • ▼ Show 20 Lines | if (ndx >= sizeof (mstate->dtms_arg) / | ||||
if (mstate->dtms_probe != NULL) | if (mstate->dtms_probe != NULL) | ||||
return (val); | return (val); | ||||
ASSERT(0); | ASSERT(0); | ||||
} | } | ||||
return (mstate->dtms_arg[ndx]); | return (mstate->dtms_arg[ndx]); | ||||
#ifdef illumos | case DIF_VAR_REGS: | ||||
case DIF_VAR_UREGS: { | case DIF_VAR_UREGS: { | ||||
klwp_t *lwp; | |||||
if (!dtrace_priv_proc(state)) | |||||
return (0); | |||||
if ((lwp = curthread->t_lwp) == NULL) { | |||||
DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR); | |||||
cpu_core[curcpu].cpuc_dtrace_illval = NULL; | |||||
return (0); | |||||
} | |||||
return (dtrace_getreg(lwp->lwp_regs, ndx)); | |||||
return (0); | |||||
} | |||||
#else | |||||
case DIF_VAR_UREGS: { | |||||
struct trapframe *tframe; | struct trapframe *tframe; | ||||
if (!dtrace_priv_proc(state)) | if (!dtrace_priv_proc(state)) | ||||
return (0); | return (0); | ||||
if ((tframe = curthread->td_frame) == NULL) { | if (v == DIF_VAR_REGS) | ||||
tframe = curthread->t_dtrace_trapframe; | |||||
else | |||||
tframe = curthread->td_frame; | |||||
if (tframe == NULL) { | |||||
DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR); | DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR); | ||||
cpu_core[curcpu].cpuc_dtrace_illval = 0; | cpu_core[curcpu].cpuc_dtrace_illval = 0; | ||||
return (0); | return (0); | ||||
} | } | ||||
return (dtrace_getreg(tframe, ndx)); | return (dtrace_getreg(tframe, ndx)); | ||||
} | } | ||||
#endif | |||||
case DIF_VAR_CURTHREAD: | case DIF_VAR_CURTHREAD: | ||||
if (!dtrace_priv_proc(state)) | if (!dtrace_priv_proc(state)) | ||||
return (0); | return (0); | ||||
return ((uint64_t)(uintptr_t)curthread); | return ((uint64_t)(uintptr_t)curthread); | ||||
case DIF_VAR_TIMESTAMP: | case DIF_VAR_TIMESTAMP: | ||||
if (!(mstate->dtms_present & DTRACE_MSTATE_TIMESTAMP)) { | if (!(mstate->dtms_present & DTRACE_MSTATE_TIMESTAMP)) { | ||||
▲ Show 20 Lines • Show All 15,050 Lines • Show Last 20 Lines |