Lines Matching refs:enab
8669 dtrace_probe_enable(const dtrace_probedesc_t *desc, dtrace_enabling_t *enab) in dtrace_probe_enable() argument
8684 (void) dtrace_ecb_create_enable(NULL, enab); in dtrace_probe_enable()
8689 dtrace_cred2priv(enab->dten_vstate->dtvs_state->dts_cred.dcr_cred, in dtrace_probe_enable()
8693 enab)); in dtrace_probe_enable()
11105 dtrace_enabling_t *enab) in dtrace_ecb_create() argument
11111 dtrace_ecbdesc_t *desc = enab->dten_current; in dtrace_ecb_create()
11177 if ((enab->dten_error = dtrace_ecb_action_add(ecb, act)) != 0) { in dtrace_ecb_create()
11192 dtrace_enabling_t *enab = arg; in dtrace_ecb_create_enable() local
11193 dtrace_state_t *state = enab->dten_vstate->dtvs_state; in dtrace_ecb_create_enable()
11197 if (probe != NULL && probe->dtpr_gen < enab->dten_probegen) { in dtrace_ecb_create_enable()
11206 if ((ecb = dtrace_ecb_create(state, probe, enab)) == NULL) in dtrace_ecb_create_enable()
11767 dtrace_enabling_t *enab; in dtrace_enabling_create() local
11769 enab = kmem_zalloc(sizeof (dtrace_enabling_t), KM_SLEEP); in dtrace_enabling_create()
11770 enab->dten_vstate = vstate; in dtrace_enabling_create()
11772 return (enab); in dtrace_enabling_create()
11776 dtrace_enabling_add(dtrace_enabling_t *enab, dtrace_ecbdesc_t *ecb) in dtrace_enabling_add() argument
11785 ASSERT(enab->dten_probegen == 0); in dtrace_enabling_add()
11786 ASSERT(enab->dten_next == NULL && enab->dten_prev == NULL); in dtrace_enabling_add()
11788 if (enab->dten_ndesc < enab->dten_maxdesc) { in dtrace_enabling_add()
11789 enab->dten_desc[enab->dten_ndesc++] = ecb; in dtrace_enabling_add()
11793 osize = enab->dten_maxdesc * sizeof (dtrace_enabling_t *); in dtrace_enabling_add()
11795 if (enab->dten_maxdesc == 0) { in dtrace_enabling_add()
11796 enab->dten_maxdesc = 1; in dtrace_enabling_add()
11798 enab->dten_maxdesc <<= 1; in dtrace_enabling_add()
11801 ASSERT(enab->dten_ndesc < enab->dten_maxdesc); in dtrace_enabling_add()
11803 nsize = enab->dten_maxdesc * sizeof (dtrace_enabling_t *); in dtrace_enabling_add()
11805 bcopy(enab->dten_desc, ndesc, osize); in dtrace_enabling_add()
11806 kmem_free(enab->dten_desc, osize); in dtrace_enabling_add()
11808 enab->dten_desc = ndesc; in dtrace_enabling_add()
11809 enab->dten_desc[enab->dten_ndesc++] = ecb; in dtrace_enabling_add()
11813 dtrace_enabling_addlike(dtrace_enabling_t *enab, dtrace_ecbdesc_t *ecb, in dtrace_enabling_addlike() argument
11837 dtrace_enabling_add(enab, new); in dtrace_enabling_addlike()
11841 dtrace_enabling_dump(dtrace_enabling_t *enab) in dtrace_enabling_dump() argument
11845 for (i = 0; i < enab->dten_ndesc; i++) { in dtrace_enabling_dump()
11846 dtrace_probedesc_t *desc = &enab->dten_desc[i]->dted_probe; in dtrace_enabling_dump()
11855 dtrace_enabling_destroy(dtrace_enabling_t *enab) in dtrace_enabling_destroy() argument
11859 dtrace_vstate_t *vstate = enab->dten_vstate; in dtrace_enabling_destroy()
11863 for (i = 0; i < enab->dten_ndesc; i++) { in dtrace_enabling_destroy()
11867 ep = enab->dten_desc[i]; in dtrace_enabling_destroy()
11880 kmem_free(enab->dten_desc, in dtrace_enabling_destroy()
11881 enab->dten_maxdesc * sizeof (dtrace_enabling_t *)); in dtrace_enabling_destroy()
11887 if (enab->dten_prev != NULL || enab->dten_next != NULL || in dtrace_enabling_destroy()
11888 dtrace_retained == enab) { in dtrace_enabling_destroy()
11889 ASSERT(enab->dten_vstate->dtvs_state != NULL); in dtrace_enabling_destroy()
11890 ASSERT(enab->dten_vstate->dtvs_state->dts_nretained > 0); in dtrace_enabling_destroy()
11891 enab->dten_vstate->dtvs_state->dts_nretained--; in dtrace_enabling_destroy()
11895 if (enab->dten_prev == NULL) { in dtrace_enabling_destroy()
11896 if (dtrace_retained == enab) { in dtrace_enabling_destroy()
11897 dtrace_retained = enab->dten_next; in dtrace_enabling_destroy()
11903 ASSERT(enab != dtrace_retained); in dtrace_enabling_destroy()
11905 enab->dten_prev->dten_next = enab->dten_next; in dtrace_enabling_destroy()
11908 if (enab->dten_next != NULL) { in dtrace_enabling_destroy()
11910 enab->dten_next->dten_prev = enab->dten_prev; in dtrace_enabling_destroy()
11913 kmem_free(enab, sizeof (dtrace_enabling_t)); in dtrace_enabling_destroy()
11917 dtrace_enabling_retain(dtrace_enabling_t *enab) in dtrace_enabling_retain() argument
11922 ASSERT(enab->dten_next == NULL && enab->dten_prev == NULL); in dtrace_enabling_retain()
11923 ASSERT(enab->dten_vstate != NULL); in dtrace_enabling_retain()
11925 state = enab->dten_vstate->dtvs_state; in dtrace_enabling_retain()
11938 dtrace_retained = enab; in dtrace_enabling_retain()
11942 enab->dten_next = dtrace_retained; in dtrace_enabling_retain()
11943 dtrace_retained->dten_prev = enab; in dtrace_enabling_retain()
11944 dtrace_retained = enab; in dtrace_enabling_retain()
11953 dtrace_enabling_t *new, *enab; in dtrace_enabling_replicate() local
11968 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) { in dtrace_enabling_replicate()
11975 ASSERT(enab->dten_vstate->dtvs_state != NULL); in dtrace_enabling_replicate()
11977 if (enab->dten_vstate->dtvs_state != state) in dtrace_enabling_replicate()
11984 for (i = 0; i < enab->dten_ndesc; i++) { in dtrace_enabling_replicate()
11985 dtrace_ecbdesc_t *ep = enab->dten_desc[i]; in dtrace_enabling_replicate()
12020 dtrace_enabling_t *enab, *next; in dtrace_enabling_retract() local
12028 for (enab = dtrace_retained; enab != NULL; enab = next) { in dtrace_enabling_retract()
12029 next = enab->dten_next; in dtrace_enabling_retract()
12035 ASSERT(enab->dten_vstate->dtvs_state != NULL); in dtrace_enabling_retract()
12037 if (enab->dten_vstate->dtvs_state == state) { in dtrace_enabling_retract()
12039 dtrace_enabling_destroy(enab); in dtrace_enabling_retract()
12047 dtrace_enabling_match(dtrace_enabling_t *enab, int *nmatched) in dtrace_enabling_match() argument
12055 for (i = 0; i < enab->dten_ndesc; i++) { in dtrace_enabling_match()
12056 dtrace_ecbdesc_t *ep = enab->dten_desc[i]; in dtrace_enabling_match()
12058 enab->dten_current = ep; in dtrace_enabling_match()
12059 enab->dten_error = 0; in dtrace_enabling_match()
12065 if ((matched = dtrace_probe_enable(&ep->dted_probe, enab)) < 0) in dtrace_enabling_match()
12070 if (enab->dten_error != 0) { in dtrace_enabling_match()
12087 enab->dten_error); in dtrace_enabling_match()
12090 return (enab->dten_error); in dtrace_enabling_match()
12094 enab->dten_probegen = dtrace_probegen; in dtrace_enabling_match()
12104 dtrace_enabling_t *enab; in dtrace_enabling_matchall() local
12119 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) { in dtrace_enabling_matchall()
12120 dtrace_cred_t *dcr = &enab->dten_vstate->dtvs_state->dts_cred; in dtrace_enabling_matchall()
12126 (void) dtrace_enabling_match(enab, NULL); in dtrace_enabling_matchall()
12146 dtrace_enabling_t *enab; in dtrace_enabling_prime() local
12149 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) { in dtrace_enabling_prime()
12150 ASSERT(enab->dten_vstate->dtvs_state != NULL); in dtrace_enabling_prime()
12152 if (enab->dten_vstate->dtvs_state != state) in dtrace_enabling_prime()
12162 if (enab->dten_primed) in dtrace_enabling_prime()
12165 for (i = 0; i < enab->dten_ndesc; i++) { in dtrace_enabling_prime()
12166 enab->dten_current = enab->dten_desc[i]; in dtrace_enabling_prime()
12167 (void) dtrace_probe_enable(NULL, enab); in dtrace_enabling_prime()
12170 enab->dten_primed = 1; in dtrace_enabling_prime()
12196 dtrace_enabling_t *enab; in dtrace_enabling_provide() local
12201 for (enab = dtrace_retained; enab != NULL; in dtrace_enabling_provide()
12202 enab = enab->dten_next) { in dtrace_enabling_provide()
12203 for (i = 0; i < enab->dten_ndesc; i++) { in dtrace_enabling_provide()
12204 desc = enab->dten_desc[i]->dted_probe; in dtrace_enabling_provide()
13039 dtrace_enabling_t *enab; in dtrace_dof_slurp() local
13202 if ((enab = *enabp) == NULL) in dtrace_dof_slurp()
13203 enab = *enabp = dtrace_enabling_create(vstate); in dtrace_dof_slurp()
13213 dtrace_enabling_destroy(enab); in dtrace_dof_slurp()
13218 dtrace_enabling_add(enab, ep); in dtrace_dof_slurp()
15162 dtrace_enabling_t *enab = NULL; in dtrace_helper_slurp() local
15173 if ((rv = dtrace_dof_slurp(dof, vstate, NULL, &enab, in dtrace_helper_slurp()
15191 dtrace_enabling_destroy(enab); in dtrace_helper_slurp()
15203 for (i = 0; i < enab->dten_ndesc; i++) { in dtrace_helper_slurp()
15204 dtrace_ecbdesc_t *ep = enab->dten_desc[i]; in dtrace_helper_slurp()
15223 dtrace_enabling_destroy(enab); in dtrace_helper_slurp()
15231 if (nhelpers < enab->dten_ndesc) in dtrace_helper_slurp()
15235 dtrace_enabling_destroy(enab); in dtrace_helper_slurp()
15743 dtrace_enabling_t *enab; in dtrace_attach() local
15874 if ((enab = dtrace_anon.dta_enabling) != NULL) in dtrace_attach()
15875 (void) dtrace_enabling_match(enab, NULL); in dtrace_attach()
16309 dtrace_enabling_t *enab = NULL; in dtrace_ioctl() local
16339 if (dtrace_dof_slurp(dof, vstate, cr, &enab, 0, B_TRUE) != 0) { in dtrace_ioctl()
16347 dtrace_enabling_destroy(enab); in dtrace_ioctl()
16354 if ((err = dtrace_enabling_match(enab, rv)) == 0) { in dtrace_ioctl()
16355 err = dtrace_enabling_retain(enab); in dtrace_ioctl()
16357 dtrace_enabling_destroy(enab); in dtrace_ioctl()