Lines Matching refs:ecb

1349     dtrace_ecb_t *ecb)  in dtrace_priv_probe()  argument
1351 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_priv_probe()
1356 ASSERT(ecb->dte_cond); in dtrace_priv_probe()
1374 if (ecb->dte_cond & DTRACE_COND_USERMODE) { in dtrace_priv_probe()
1394 if (ecb->dte_cond & DTRACE_COND_OWNER) { in dtrace_priv_probe()
1423 if (ecb->dte_cond & DTRACE_COND_ZONEOWNER) { in dtrace_priv_probe()
6291 dtrace_action_breakpoint(dtrace_ecb_t *ecb) in dtrace_action_breakpoint() argument
6293 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_action_breakpoint()
6299 uintptr_t val = (uintptr_t)ecb; in dtrace_action_breakpoint()
6353 dtrace_action_panic(dtrace_ecb_t *ecb) in dtrace_action_panic() argument
6355 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_action_panic()
6378 probe->dtpr_func, probe->dtpr_name, (void *)ecb); in dtrace_action_panic()
6644 dtrace_ecb_t *ecb; in dtrace_probe() local
6703 for (ecb = probe->dtpr_ecb; ecb != NULL; ecb = ecb->dte_next) { in dtrace_probe()
6704 dtrace_predicate_t *pred = ecb->dte_predicate; in dtrace_probe()
6705 dtrace_state_t *state = ecb->dte_state; in dtrace_probe()
6771 if (ecb->dte_cond && !dtrace_priv_probe(state, &mstate, ecb)) in dtrace_probe()
6798 if ((offs = dtrace_buffer_reserve(buf, ecb->dte_needed, in dtrace_probe()
6799 ecb->dte_alignment, state, &mstate)) < 0) in dtrace_probe()
6805 if (ecb->dte_size != 0) { in dtrace_probe()
6811 ASSERT3U(ecb->dte_size, >=, sizeof (dtrace_rechdr_t)); in dtrace_probe()
6812 dtrh.dtrh_epid = ecb->dte_epid; in dtrace_probe()
6818 mstate.dtms_epid = ecb->dte_epid; in dtrace_probe()
6845 for (act = ecb->dte_action; !(*flags & CPU_DTRACE_ERROR) && in dtrace_probe()
6889 dtrace_action_breakpoint(ecb); in dtrace_probe()
6894 dtrace_action_panic(ecb); in dtrace_probe()
6993 ecb->dte_needed, ecb->dte_alignment, in dtrace_probe()
7004 if (ecb->dte_size == 0) in dtrace_probe()
7007 ASSERT3U(ecb->dte_size, >=, in dtrace_probe()
7010 dtrh->dtrh_epid = ecb->dte_epid; in dtrace_probe()
7039 if (ecb->dte_size) in dtrace_probe()
7040 buf->dtb_offset = offs + ecb->dte_size; in dtrace_probe()
7209 for (err = ecb->dte_action, ndx = 0; in dtrace_probe()
7213 dtrace_probe_error(state, ecb->dte_epid, ndx, in dtrace_probe()
7222 buf->dtb_offset = offs + ecb->dte_size; in dtrace_probe()
10204 dtrace_ecb_t *ecb; in dtrace_ecb_add() local
10209 ecb = kmem_zalloc(sizeof (dtrace_ecb_t), KM_SLEEP); in dtrace_ecb_add()
10210 ecb->dte_predicate = NULL; in dtrace_ecb_add()
10211 ecb->dte_probe = probe; in dtrace_ecb_add()
10217 ecb->dte_size = ecb->dte_needed = sizeof (dtrace_rechdr_t); in dtrace_ecb_add()
10218 ecb->dte_alignment = sizeof (dtrace_epid_t); in dtrace_ecb_add()
10259 ecb->dte_state = state; in dtrace_ecb_add()
10263 state->dts_ecbs[(ecb->dte_epid = epid) - 1] = ecb; in dtrace_ecb_add()
10265 return (ecb); in dtrace_ecb_add()
10269 dtrace_ecb_enable(dtrace_ecb_t *ecb) in dtrace_ecb_enable() argument
10271 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_ecb_enable()
10275 ASSERT(ecb->dte_next == NULL); in dtrace_ecb_enable()
10290 probe->dtpr_ecb = probe->dtpr_ecb_last = ecb; in dtrace_ecb_enable()
10292 if (ecb->dte_predicate != NULL) in dtrace_ecb_enable()
10293 probe->dtpr_predcache = ecb->dte_predicate->dtp_cacheid; in dtrace_ecb_enable()
10304 probe->dtpr_ecb_last->dte_next = ecb; in dtrace_ecb_enable()
10305 probe->dtpr_ecb_last = ecb; in dtrace_ecb_enable()
10314 dtrace_ecb_resize(dtrace_ecb_t *ecb) in dtrace_ecb_resize() argument
10324 ecb->dte_size = sizeof (dtrace_rechdr_t); in dtrace_ecb_resize()
10325 ecb->dte_alignment = sizeof (dtrace_epid_t); in dtrace_ecb_resize()
10327 for (act = ecb->dte_action; act != NULL; act = act->dta_next) { in dtrace_ecb_resize()
10331 ecb->dte_alignment = MAX(ecb->dte_alignment, in dtrace_ecb_resize()
10348 ecb->dte_needed = MAX(ecb->dte_needed, curneeded); in dtrace_ecb_resize()
10362 curneeded = P2PHASEUP(ecb->dte_size, in dtrace_ecb_resize()
10377 ecb->dte_size = P2ROUNDUP(ecb->dte_size, in dtrace_ecb_resize()
10379 rec->dtrd_offset = ecb->dte_size; in dtrace_ecb_resize()
10380 ecb->dte_size += rec->dtrd_size; in dtrace_ecb_resize()
10381 ecb->dte_needed = MAX(ecb->dte_needed, ecb->dte_size); in dtrace_ecb_resize()
10385 if ((act = ecb->dte_action) != NULL && in dtrace_ecb_resize()
10387 ecb->dte_size == sizeof (dtrace_rechdr_t)) { in dtrace_ecb_resize()
10392 ecb->dte_size = 0; in dtrace_ecb_resize()
10395 ecb->dte_size = P2ROUNDUP(ecb->dte_size, sizeof (dtrace_epid_t)); in dtrace_ecb_resize()
10396 ecb->dte_needed = P2ROUNDUP(ecb->dte_needed, (sizeof (dtrace_epid_t))); in dtrace_ecb_resize()
10397 ecb->dte_state->dts_needed = MAX(ecb->dte_state->dts_needed, in dtrace_ecb_resize()
10398 ecb->dte_needed); in dtrace_ecb_resize()
10402 dtrace_ecb_aggregation_create(dtrace_ecb_t *ecb, dtrace_actdesc_t *desc) in dtrace_ecb_aggregation_create() argument
10410 dtrace_state_t *state = ecb->dte_state; in dtrace_ecb_aggregation_create()
10413 agg->dtag_ecb = ecb; in dtrace_ecb_aggregation_create()
10507 for (act = ecb->dte_action_last; act != NULL; act = act->dta_prev) { in dtrace_ecb_aggregation_create()
10533 ASSERT(ecb->dte_action_last != NULL); in dtrace_ecb_aggregation_create()
10534 act = ecb->dte_action_last; in dtrace_ecb_aggregation_create()
10589 dtrace_ecb_aggregation_destroy(dtrace_ecb_t *ecb, dtrace_action_t *act) in dtrace_ecb_aggregation_destroy() argument
10592 dtrace_state_t *state = ecb->dte_state; in dtrace_ecb_aggregation_destroy()
10605 dtrace_ecb_action_add(dtrace_ecb_t *ecb, dtrace_actdesc_t *desc) in dtrace_ecb_action_add() argument
10612 dtrace_state_t *state = ecb->dte_state; in dtrace_ecb_action_add()
10617 ASSERT(ecb->dte_action == NULL || ecb->dte_action->dta_refcnt == 1); in dtrace_ecb_action_add()
10626 for (act = ecb->dte_action; act != NULL; act = act->dta_next) { in dtrace_ecb_action_add()
10634 action = dtrace_ecb_aggregation_create(ecb, desc); in dtrace_ecb_action_add()
10768 if (ecb->dte_size > sizeof (dtrace_rechdr_t)) in dtrace_ecb_action_add()
10778 dtrace_action_t *act = ecb->dte_action; in dtrace_ecb_action_add()
10800 dtrace_action_t *act = ecb->dte_action; in dtrace_ecb_action_add()
10834 if ((last = ecb->dte_action_last) != NULL) { in dtrace_ecb_action_add()
10835 ASSERT(ecb->dte_action != NULL); in dtrace_ecb_action_add()
10839 ASSERT(ecb->dte_action == NULL); in dtrace_ecb_action_add()
10840 ecb->dte_action = action; in dtrace_ecb_action_add()
10843 ecb->dte_action_last = action; in dtrace_ecb_action_add()
10849 dtrace_ecb_action_remove(dtrace_ecb_t *ecb) in dtrace_ecb_action_remove() argument
10851 dtrace_action_t *act = ecb->dte_action, *next; in dtrace_ecb_action_remove()
10852 dtrace_vstate_t *vstate = &ecb->dte_state->dts_vstate; in dtrace_ecb_action_remove()
10862 ASSERT(next != NULL || act == ecb->dte_action_last); in dtrace_ecb_action_remove()
10866 dtrace_format_remove(ecb->dte_state, format); in dtrace_ecb_action_remove()
10872 dtrace_ecb_aggregation_destroy(ecb, act); in dtrace_ecb_action_remove()
10879 ecb->dte_action = NULL; in dtrace_ecb_action_remove()
10880 ecb->dte_action_last = NULL; in dtrace_ecb_action_remove()
10881 ecb->dte_size = 0; in dtrace_ecb_action_remove()
10885 dtrace_ecb_disable(dtrace_ecb_t *ecb) in dtrace_ecb_disable() argument
10891 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_ecb_disable()
10903 if (pecb == ecb) in dtrace_ecb_disable()
10911 probe->dtpr_ecb = ecb->dte_next; in dtrace_ecb_disable()
10913 prev->dte_next = ecb->dte_next; in dtrace_ecb_disable()
10916 if (ecb == probe->dtpr_ecb_last) { in dtrace_ecb_disable()
10917 ASSERT(ecb->dte_next == NULL); in dtrace_ecb_disable()
10935 ASSERT(ecb->dte_next == NULL); in dtrace_ecb_disable()
10959 ecb->dte_next = NULL; in dtrace_ecb_disable()
10964 dtrace_ecb_destroy(dtrace_ecb_t *ecb) in dtrace_ecb_destroy() argument
10966 dtrace_state_t *state = ecb->dte_state; in dtrace_ecb_destroy()
10969 dtrace_epid_t epid = ecb->dte_epid; in dtrace_ecb_destroy()
10972 ASSERT(ecb->dte_next == NULL); in dtrace_ecb_destroy()
10973 ASSERT(ecb->dte_probe == NULL || ecb->dte_probe->dtpr_ecb != ecb); in dtrace_ecb_destroy()
10975 if ((pred = ecb->dte_predicate) != NULL) in dtrace_ecb_destroy()
10978 dtrace_ecb_action_remove(ecb); in dtrace_ecb_destroy()
10980 ASSERT(state->dts_ecbs[epid - 1] == ecb); in dtrace_ecb_destroy()
10983 kmem_free(ecb, sizeof (dtrace_ecb_t)); in dtrace_ecb_destroy()
10990 dtrace_ecb_t *ecb; in dtrace_ecb_create() local
10999 ecb = dtrace_ecb_add(state, probe); in dtrace_ecb_create()
11000 ecb->dte_uarg = desc->dted_uarg; in dtrace_ecb_create()
11004 ecb->dte_predicate = pred; in dtrace_ecb_create()
11022 ecb->dte_cond |= DTRACE_COND_OWNER; in dtrace_ecb_create()
11026 ecb->dte_cond |= DTRACE_COND_ZONEOWNER; in dtrace_ecb_create()
11035 ecb->dte_cond |= DTRACE_COND_USERMODE; in dtrace_ecb_create()
11049 ecb->dte_action = act; in dtrace_ecb_create()
11050 ecb->dte_action_last = cached->dte_action_last; in dtrace_ecb_create()
11051 ecb->dte_needed = cached->dte_needed; in dtrace_ecb_create()
11052 ecb->dte_size = cached->dte_size; in dtrace_ecb_create()
11053 ecb->dte_alignment = cached->dte_alignment; in dtrace_ecb_create()
11056 return (ecb); in dtrace_ecb_create()
11060 if ((enab->dten_error = dtrace_ecb_action_add(ecb, act)) != 0) { in dtrace_ecb_create()
11061 dtrace_ecb_destroy(ecb); in dtrace_ecb_create()
11066 dtrace_ecb_resize(ecb); in dtrace_ecb_create()
11068 return (dtrace_ecb_create_cache = ecb); in dtrace_ecb_create()
11074 dtrace_ecb_t *ecb; in dtrace_ecb_create_enable() local
11089 if ((ecb = dtrace_ecb_create(state, probe, enab)) == NULL) in dtrace_ecb_create_enable()
11092 if (dtrace_ecb_enable(ecb) < 0) in dtrace_ecb_create_enable()
11101 dtrace_ecb_t *ecb; in dtrace_epid2ecb() local
11109 ASSERT((ecb = state->dts_ecbs[id - 1]) == NULL || ecb->dte_epid == id); in dtrace_epid2ecb()
11659 dtrace_enabling_add(dtrace_enabling_t *enab, dtrace_ecbdesc_t *ecb) in dtrace_enabling_add() argument
11672 enab->dten_desc[enab->dten_ndesc++] = ecb; in dtrace_enabling_add()
11692 enab->dten_desc[enab->dten_ndesc++] = ecb; in dtrace_enabling_add()
11696 dtrace_enabling_addlike(dtrace_enabling_t *enab, dtrace_ecbdesc_t *ecb, in dtrace_enabling_addlike() argument
11709 if ((pred = ecb->dted_pred.dtpdd_predicate) != NULL) in dtrace_enabling_addlike()
11712 for (act = ecb->dted_action; act != NULL; act = act->dtad_next) in dtrace_enabling_addlike()
11715 new->dted_action = ecb->dted_action; in dtrace_enabling_addlike()
11716 new->dted_pred = ecb->dted_pred; in dtrace_enabling_addlike()
11718 new->dted_uarg = ecb->dted_uarg; in dtrace_enabling_addlike()
12115 dtrace_ecb_t *ecb; in dtrace_enabling_reap() local
12162 while ((ecb = probe->dtpr_ecb) != NULL) { in dtrace_enabling_reap()
12163 dtrace_state_t *state = ecb->dte_state; in dtrace_enabling_reap()
12176 dtrace_ecb_disable(ecb); in dtrace_enabling_reap()
12177 ASSERT(probe->dtpr_ecb != ecb); in dtrace_enabling_reap()
12178 dtrace_ecb_destroy(ecb); in dtrace_enabling_reap()
12782 dof_ecbdesc_t *ecb; in dtrace_dof_ecbdesc() local
12796 ecb = (dof_ecbdesc_t *)((uintptr_t)dof + (uintptr_t)sec->dofs_offset); in dtrace_dof_ecbdesc()
12797 sec = dtrace_dof_sect(dof, DOF_SECT_PROBEDESC, ecb->dofe_probes); in dtrace_dof_ecbdesc()
12803 ep->dted_uarg = ecb->dofe_uarg; in dtrace_dof_ecbdesc()
12809 if (ecb->dofe_pred != DOF_SECIDX_NONE) { in dtrace_dof_ecbdesc()
12811 DOF_SECT_DIFOHDR, ecb->dofe_pred)) == NULL) in dtrace_dof_ecbdesc()
12820 if (ecb->dofe_actions != DOF_SECIDX_NONE) { in dtrace_dof_ecbdesc()
12822 DOF_SECT_ACTDESC, ecb->dofe_actions)) == NULL) in dtrace_dof_ecbdesc()
13643 dtrace_ecb_t *ecb; in dtrace_state_prereserve() local
13658 for (ecb = probe->dtpr_ecb; ecb != NULL; ecb = ecb->dte_next) { in dtrace_state_prereserve()
13659 if (ecb->dte_state != state) in dtrace_state_prereserve()
13662 state->dts_reserve += ecb->dte_needed + ecb->dte_alignment; in dtrace_state_prereserve()
14085 dtrace_ecb_t *ecb; in dtrace_state_destroy() local
14132 if ((ecb = state->dts_ecbs[i]) == NULL) in dtrace_state_destroy()
14135 if (match && ecb->dte_probe != NULL) { in dtrace_state_destroy()
14136 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_state_destroy()
14143 dtrace_ecb_disable(ecb); in dtrace_state_destroy()
14144 dtrace_ecb_destroy(ecb); in dtrace_state_destroy()
16001 dtrace_ecb_t *ecb; in dtrace_ioctl() local
16013 if ((ecb = dtrace_epid2ecb(state, epdesc.dtepd_epid)) == NULL) { in dtrace_ioctl()
16018 if (ecb->dte_probe == NULL) { in dtrace_ioctl()
16023 epdesc.dtepd_probeid = ecb->dte_probe->dtpr_id; in dtrace_ioctl()
16024 epdesc.dtepd_uarg = ecb->dte_uarg; in dtrace_ioctl()
16025 epdesc.dtepd_size = ecb->dte_size; in dtrace_ioctl()
16029 for (act = ecb->dte_action; act != NULL; act = act->dta_next) { in dtrace_ioctl()
16051 for (act = ecb->dte_action; act != NULL; act = act->dta_next) { in dtrace_ioctl()