Lines Matching refs:dtp

45 dtrace_sleep(dtrace_hdl_t *dtp)  in dtrace_sleep()  argument
47 dt_proc_hash_t *dph = dtp->dt_procs; in dtrace_sleep()
48 dtrace_optval_t policy = dtp->dt_options[DTRACEOPT_BUFPOLICY]; in dtrace_sleep()
57 uintptr_t a = (uintptr_t)dtp + _dtrace_sleeptab[i].dtslt_offs; in dtrace_sleep()
59 dtrace_optval_t interval = dtp->dt_options[opt]; in dtrace_sleep()
94 if (dtp->dt_prochdlr != NULL) { in dtrace_sleep()
99 dtp->dt_prochdlr(dprn->dprn_dpr->dpr_proc, err, in dtrace_sleep()
100 dtp->dt_procarg); in dtrace_sleep()
104 dt_free(dtp, dprn); in dtrace_sleep()
111 dtrace_status(dtrace_hdl_t *dtp) in dtrace_status() argument
113 int gen = dtp->dt_statusgen; in dtrace_status()
114 dtrace_optval_t interval = dtp->dt_options[DTRACEOPT_STATUSRATE]; in dtrace_status()
117 if (!dtp->dt_active) in dtrace_status()
120 if (dtp->dt_stopped) in dtrace_status()
123 if (dtp->dt_laststatus != 0) { in dtrace_status()
124 if (now - dtp->dt_laststatus < interval) in dtrace_status()
127 dtp->dt_laststatus += interval; in dtrace_status()
129 dtp->dt_laststatus = now; in dtrace_status()
132 if (dt_ioctl(dtp, DTRACEIOC_STATUS, &dtp->dt_status[gen]) == -1) in dtrace_status()
133 return (dt_set_errno(dtp, errno)); in dtrace_status()
135 dtp->dt_statusgen ^= 1; in dtrace_status()
137 if (dt_handle_status(dtp, &dtp->dt_status[dtp->dt_statusgen], in dtrace_status()
138 &dtp->dt_status[gen]) == -1) in dtrace_status()
141 if (dtp->dt_status[gen].dtst_exiting) { in dtrace_status()
142 if (!dtp->dt_stopped) in dtrace_status()
143 (void) dtrace_stop(dtp); in dtrace_status()
148 if (dtp->dt_status[gen].dtst_filled == 0) in dtrace_status()
151 if (dtp->dt_options[DTRACEOPT_BUFPOLICY] != DTRACEOPT_BUFPOLICY_FILL) in dtrace_status()
154 if (!dtp->dt_stopped) { in dtrace_status()
155 if (dtrace_stop(dtp) == -1) in dtrace_status()
163 dtrace_go(dtrace_hdl_t *dtp) in dtrace_go() argument
168 if (dtp->dt_active) in dtrace_go()
169 return (dt_set_errno(dtp, EINVAL)); in dtrace_go()
178 if (dtp->dt_errprog != NULL && in dtrace_go()
179 dtrace_program_exec(dtp, dtp->dt_errprog, NULL) == -1 && ( in dtrace_go()
180 dtp->dt_errno != ENOTTY || dtp->dt_vector == NULL)) in dtrace_go()
183 if ((dof = dtrace_getopt_dof(dtp)) == NULL) in dtrace_go()
186 err = dt_ioctl(dtp, DTRACEIOC_ENABLE, dof); in dtrace_go()
187 dtrace_dof_destroy(dtp, dof); in dtrace_go()
189 if (err == -1 && (errno != ENOTTY || dtp->dt_vector == NULL)) in dtrace_go()
190 return (dt_set_errno(dtp, errno)); in dtrace_go()
192 if (dt_ioctl(dtp, DTRACEIOC_GO, &dtp->dt_beganon) == -1) { in dtrace_go()
194 return (dt_set_errno(dtp, EDT_DESTRUCTIVE)); in dtrace_go()
197 return (dt_set_errno(dtp, EDT_ISANON)); in dtrace_go()
200 return (dt_set_errno(dtp, EDT_NOANON)); in dtrace_go()
203 return (dt_set_errno(dtp, EDT_ENDTOOBIG)); in dtrace_go()
206 return (dt_set_errno(dtp, EDT_BUFTOOSMALL)); in dtrace_go()
208 return (dt_set_errno(dtp, errno)); in dtrace_go()
211 dtp->dt_active = 1; in dtrace_go()
213 if (dt_options_load(dtp) == -1) in dtrace_go()
214 return (dt_set_errno(dtp, errno)); in dtrace_go()
216 return (dt_aggregate_go(dtp)); in dtrace_go()
220 dtrace_stop(dtrace_hdl_t *dtp) in dtrace_stop() argument
222 int gen = dtp->dt_statusgen; in dtrace_stop()
224 if (dtp->dt_stopped) in dtrace_stop()
227 if (dt_ioctl(dtp, DTRACEIOC_STOP, &dtp->dt_endedon) == -1) in dtrace_stop()
228 return (dt_set_errno(dtp, errno)); in dtrace_stop()
230 dtp->dt_stopped = 1; in dtrace_stop()
235 if (dt_ioctl(dtp, DTRACEIOC_STATUS, &dtp->dt_status[gen]) == -1) in dtrace_stop()
236 return (dt_set_errno(dtp, errno)); in dtrace_stop()
238 if (dt_handle_status(dtp, &dtp->dt_status[gen ^ 1], in dtrace_stop()
239 &dtp->dt_status[gen]) == -1) in dtrace_stop()
247 dtrace_work(dtrace_hdl_t *dtp, FILE *fp, in dtrace_work() argument
250 int status = dtrace_status(dtp); in dtrace_work()
251 dtrace_optval_t policy = dtp->dt_options[DTRACEOPT_BUFPOLICY]; in dtrace_work()
263 dtp->dt_lastswitch = 0; in dtrace_work()
264 dtp->dt_lastagg = 0; in dtrace_work()
289 if (dtrace_aggregate_snap(dtp) == -1) in dtrace_work()
292 if (dtrace_consume(dtp, fp, pfunc, rfunc, arg) == -1) in dtrace_work()