Lines Matching defs:enab

186 static dtrace_genid_t	dtrace_retained_gen;	/* current retained enab gen */
7520 dtrace_probe_enable(const dtrace_probedesc_t *desc, dtrace_enabling_t *enab)
7535 (void) dtrace_ecb_create_enable(NULL, enab);
7540 dtrace_cred2priv(enab->dten_vstate->dtvs_state->dts_cred.dcr_cred,
7544 enab));
9883 dtrace_enabling_t *enab)
9889 dtrace_ecbdesc_t *desc = enab->dten_current;
9955 if ((enab->dten_error = dtrace_ecb_action_add(ecb, act)) != 0) {
9970 dtrace_enabling_t *enab = arg;
9971 dtrace_state_t *state = enab->dten_vstate->dtvs_state;
9975 if (probe != NULL && probe->dtpr_gen < enab->dten_probegen) {
9984 if ((ecb = dtrace_ecb_create(state, probe, enab)) == NULL)
10501 dtrace_enabling_t *enab;
10503 enab = kmem_zalloc(sizeof (dtrace_enabling_t), KM_SLEEP);
10504 enab->dten_vstate = vstate;
10506 return (enab);
10510 dtrace_enabling_add(dtrace_enabling_t *enab, dtrace_ecbdesc_t *ecb)
10519 ASSERT(enab->dten_probegen == 0);
10520 ASSERT(enab->dten_next == NULL && enab->dten_prev == NULL);
10522 if (enab->dten_ndesc < enab->dten_maxdesc) {
10523 enab->dten_desc[enab->dten_ndesc++] = ecb;
10527 osize = enab->dten_maxdesc * sizeof (dtrace_enabling_t *);
10529 if (enab->dten_maxdesc == 0) {
10530 enab->dten_maxdesc = 1;
10532 enab->dten_maxdesc <<= 1;
10535 ASSERT(enab->dten_ndesc < enab->dten_maxdesc);
10537 nsize = enab->dten_maxdesc * sizeof (dtrace_enabling_t *);
10539 bcopy(enab->dten_desc, ndesc, osize);
10540 kmem_free(enab->dten_desc, osize);
10542 enab->dten_desc = ndesc;
10543 enab->dten_desc[enab->dten_ndesc++] = ecb;
10547 dtrace_enabling_addlike(dtrace_enabling_t *enab, dtrace_ecbdesc_t *ecb,
10571 dtrace_enabling_add(enab, new);
10575 dtrace_enabling_dump(dtrace_enabling_t *enab)
10579 for (i = 0; i < enab->dten_ndesc; i++) {
10580 dtrace_probedesc_t *desc = &enab->dten_desc[i]->dted_probe;
10589 dtrace_enabling_destroy(dtrace_enabling_t *enab)
10593 dtrace_vstate_t *vstate = enab->dten_vstate;
10597 for (i = 0; i < enab->dten_ndesc; i++) {
10601 ep = enab->dten_desc[i];
10614 kmem_free(enab->dten_desc,
10615 enab->dten_maxdesc * sizeof (dtrace_enabling_t *));
10621 if (enab->dten_prev != NULL || enab->dten_next != NULL ||
10622 dtrace_retained == enab) {
10623 ASSERT(enab->dten_vstate->dtvs_state != NULL);
10624 ASSERT(enab->dten_vstate->dtvs_state->dts_nretained > 0);
10625 enab->dten_vstate->dtvs_state->dts_nretained--;
10629 if (enab->dten_prev == NULL) {
10630 if (dtrace_retained == enab) {
10631 dtrace_retained = enab->dten_next;
10637 ASSERT(enab != dtrace_retained);
10639 enab->dten_prev->dten_next = enab->dten_next;
10642 if (enab->dten_next != NULL) {
10644 enab->dten_next->dten_prev = enab->dten_prev;
10647 kmem_free(enab, sizeof (dtrace_enabling_t));
10651 dtrace_enabling_retain(dtrace_enabling_t *enab)
10656 ASSERT(enab->dten_next == NULL && enab->dten_prev == NULL);
10657 ASSERT(enab->dten_vstate != NULL);
10659 state = enab->dten_vstate->dtvs_state;
10672 dtrace_retained = enab;
10676 enab->dten_next = dtrace_retained;
10677 dtrace_retained->dten_prev = enab;
10678 dtrace_retained = enab;
10687 dtrace_enabling_t *new, *enab;
10702 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) {
10709 ASSERT(enab->dten_vstate->dtvs_state != NULL);
10711 if (enab->dten_vstate->dtvs_state != state)
10718 for (i = 0; i < enab->dten_ndesc; i++) {
10719 dtrace_ecbdesc_t *ep = enab->dten_desc[i];
10754 dtrace_enabling_t *enab, *next;
10762 for (enab = dtrace_retained; enab != NULL; enab = next) {
10763 next = enab->dten_next;
10769 ASSERT(enab->dten_vstate->dtvs_state != NULL);
10771 if (enab->dten_vstate->dtvs_state == state) {
10773 dtrace_enabling_destroy(enab);
10781 dtrace_enabling_match(dtrace_enabling_t *enab, int *nmatched)
10789 for (i = 0; i < enab->dten_ndesc; i++) {
10790 dtrace_ecbdesc_t *ep = enab->dten_desc[i];
10792 enab->dten_current = ep;
10793 enab->dten_error = 0;
10799 if ((matched = dtrace_probe_enable(&ep->dted_probe, enab)) < 0)
10804 if (enab->dten_error != 0) {
10821 enab->dten_error);
10824 return (enab->dten_error);
10828 enab->dten_probegen = dtrace_probegen;
10838 dtrace_enabling_t *enab;
10853 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) {
10854 cred_t *cr = enab->dten_vstate->dtvs_state->dts_cred.dcr_cred;
10858 (void) dtrace_enabling_match(enab, NULL);
10878 dtrace_enabling_t *enab;
10881 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) {
10882 ASSERT(enab->dten_vstate->dtvs_state != NULL);
10884 if (enab->dten_vstate->dtvs_state != state)
10894 if (enab->dten_primed)
10897 for (i = 0; i < enab->dten_ndesc; i++) {
10898 enab->dten_current = enab->dten_desc[i];
10899 (void) dtrace_probe_enable(NULL, enab);
10902 enab->dten_primed = 1;
10928 dtrace_enabling_t *enab;
10933 for (enab = dtrace_retained; enab != NULL;
10934 enab = enab->dten_next) {
10935 for (i = 0; i < enab->dten_ndesc; i++) {
10936 desc = enab->dten_desc[i]->dted_probe;
11687 dtrace_enabling_t *enab;
11850 if ((enab = *enabp) == NULL)
11851 enab = *enabp = dtrace_enabling_create(vstate);
11861 dtrace_enabling_destroy(enab);
11866 dtrace_enabling_add(enab, ep);
13762 dtrace_enabling_t *enab = NULL;
13773 if ((rv = dtrace_dof_slurp(dof, vstate, NULL, &enab,
13791 dtrace_enabling_destroy(enab);
13803 for (i = 0; i < enab->dten_ndesc; i++) {
13804 dtrace_ecbdesc_t *ep = enab->dten_desc[i];
13823 dtrace_enabling_destroy(enab);
13831 if (nhelpers < enab->dten_ndesc)
13835 dtrace_enabling_destroy(enab);
14319 dtrace_enabling_t *enab;
14461 if ((enab = dtrace_anon.dta_enabling) != NULL)
14462 (void) dtrace_enabling_match(enab, NULL);
14866 dtrace_enabling_t *enab = NULL;
14896 if (dtrace_dof_slurp(dof, vstate, cr, &enab, 0, B_TRUE) != 0) {
14904 dtrace_enabling_destroy(enab);
14911 if ((err = dtrace_enabling_match(enab, rv)) == 0) {
14912 err = dtrace_enabling_retain(enab);
14914 dtrace_enabling_destroy(enab);