Lines Matching defs:enab
259 static dtrace_genid_t dtrace_retained_gen; /* current retained enab gen */
9415 dtrace_probe_enable(dtrace_probedesc_t *desc, dtrace_enabling_t *enab)
9430 (void) dtrace_ecb_create_enable(NULL, enab);
9435 dtrace_cred2priv(enab->dten_vstate->dtvs_state->dts_cred.dcr_cred,
9439 enab));
11895 dtrace_enabling_t *enab)
11901 dtrace_ecbdesc_t *desc = enab->dten_current;
11967 if ((enab->dten_error = dtrace_ecb_action_add(ecb, act)) != 0) {
11973 if ((enab->dten_error = dtrace_ecb_resize(ecb)) != 0) {
11985 dtrace_enabling_t *enab = arg;
11986 dtrace_state_t *state = enab->dten_vstate->dtvs_state;
11990 if (probe != NULL && probe->dtpr_gen < enab->dten_probegen) {
11999 if ((ecb = dtrace_ecb_create(state, probe, enab)) == NULL)
12659 dtrace_enabling_t *enab;
12661 enab = kmem_zalloc(sizeof (dtrace_enabling_t), KM_SLEEP);
12662 enab->dten_vstate = vstate;
12664 return (enab);
12668 dtrace_enabling_add(dtrace_enabling_t *enab, dtrace_ecbdesc_t *ecb)
12677 ASSERT(enab->dten_probegen == 0);
12678 ASSERT(enab->dten_next == NULL && enab->dten_prev == NULL);
12680 if (enab->dten_ndesc < enab->dten_maxdesc) {
12681 enab->dten_desc[enab->dten_ndesc++] = ecb;
12685 osize = enab->dten_maxdesc * sizeof (dtrace_enabling_t *);
12687 if (enab->dten_maxdesc == 0) {
12688 enab->dten_maxdesc = 1;
12690 enab->dten_maxdesc <<= 1;
12693 ASSERT(enab->dten_ndesc < enab->dten_maxdesc);
12695 nsize = enab->dten_maxdesc * sizeof (dtrace_enabling_t *);
12697 bcopy(enab->dten_desc, ndesc, osize);
12698 if (enab->dten_desc != NULL)
12699 kmem_free(enab->dten_desc, osize);
12701 enab->dten_desc = ndesc;
12702 enab->dten_desc[enab->dten_ndesc++] = ecb;
12706 dtrace_enabling_addlike(dtrace_enabling_t *enab, dtrace_ecbdesc_t *ecb,
12730 dtrace_enabling_add(enab, new);
12734 dtrace_enabling_dump(dtrace_enabling_t *enab)
12738 for (i = 0; i < enab->dten_ndesc; i++) {
12739 dtrace_probedesc_t *desc = &enab->dten_desc[i]->dted_probe;
12754 dtrace_enabling_destroy(dtrace_enabling_t *enab)
12758 dtrace_vstate_t *vstate = enab->dten_vstate;
12762 for (i = 0; i < enab->dten_ndesc; i++) {
12766 ep = enab->dten_desc[i];
12779 if (enab->dten_desc != NULL)
12780 kmem_free(enab->dten_desc,
12781 enab->dten_maxdesc * sizeof (dtrace_enabling_t *));
12787 if (enab->dten_prev != NULL || enab->dten_next != NULL ||
12788 dtrace_retained == enab) {
12789 ASSERT(enab->dten_vstate->dtvs_state != NULL);
12790 ASSERT(enab->dten_vstate->dtvs_state->dts_nretained > 0);
12791 enab->dten_vstate->dtvs_state->dts_nretained--;
12795 if (enab->dten_prev == NULL) {
12796 if (dtrace_retained == enab) {
12797 dtrace_retained = enab->dten_next;
12803 ASSERT(enab != dtrace_retained);
12805 enab->dten_prev->dten_next = enab->dten_next;
12808 if (enab->dten_next != NULL) {
12810 enab->dten_next->dten_prev = enab->dten_prev;
12813 kmem_free(enab, sizeof (dtrace_enabling_t));
12817 dtrace_enabling_retain(dtrace_enabling_t *enab)
12822 ASSERT(enab->dten_next == NULL && enab->dten_prev == NULL);
12823 ASSERT(enab->dten_vstate != NULL);
12825 state = enab->dten_vstate->dtvs_state;
12838 dtrace_retained = enab;
12842 enab->dten_next = dtrace_retained;
12843 dtrace_retained->dten_prev = enab;
12844 dtrace_retained = enab;
12853 dtrace_enabling_t *new, *enab;
12868 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) {
12875 ASSERT(enab->dten_vstate->dtvs_state != NULL);
12877 if (enab->dten_vstate->dtvs_state != state)
12884 for (i = 0; i < enab->dten_ndesc; i++) {
12885 dtrace_ecbdesc_t *ep = enab->dten_desc[i];
12920 dtrace_enabling_t *enab, *next;
12928 for (enab = dtrace_retained; enab != NULL; enab = next) {
12929 next = enab->dten_next;
12935 ASSERT(enab->dten_vstate->dtvs_state != NULL);
12937 if (enab->dten_vstate->dtvs_state == state) {
12939 dtrace_enabling_destroy(enab);
12947 dtrace_enabling_match(dtrace_enabling_t *enab, int *nmatched)
12955 for (i = 0; i < enab->dten_ndesc; i++) {
12956 dtrace_ecbdesc_t *ep = enab->dten_desc[i];
12958 enab->dten_current = ep;
12959 enab->dten_error = 0;
12961 matched += dtrace_probe_enable(&ep->dted_probe, enab);
12963 if (enab->dten_error != 0) {
12980 enab->dten_error);
12983 return (enab->dten_error);
12987 enab->dten_probegen = dtrace_probegen;
12997 dtrace_enabling_t *enab;
13012 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) {
13014 cred_t *cr = enab->dten_vstate->dtvs_state->dts_cred.dcr_cred;
13019 (void) dtrace_enabling_match(enab, NULL);
13039 dtrace_enabling_t *enab;
13042 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) {
13043 ASSERT(enab->dten_vstate->dtvs_state != NULL);
13045 if (enab->dten_vstate->dtvs_state != state)
13055 if (enab->dten_primed)
13058 for (i = 0; i < enab->dten_ndesc; i++) {
13059 enab->dten_current = enab->dten_desc[i];
13060 (void) dtrace_probe_enable(NULL, enab);
13063 enab->dten_primed = 1;
13089 dtrace_enabling_t *enab;
13094 for (enab = dtrace_retained; enab != NULL;
13095 enab = enab->dten_next) {
13096 for (i = 0; i < enab->dten_ndesc; i++) {
13097 desc = enab->dten_desc[i]->dted_probe;
14108 dtrace_enabling_t *enab;
14271 if ((enab = *enabp) == NULL)
14272 enab = *enabp = dtrace_enabling_create(vstate);
14282 dtrace_enabling_destroy(enab);
14287 dtrace_enabling_add(enab, ep);
16380 dtrace_enabling_t *enab = NULL;
16391 if ((rv = dtrace_dof_slurp(dof, vstate, NULL, &enab, dhp->dofhp_addr,
16408 dtrace_enabling_destroy(enab);
16419 for (i = 0; i < enab->dten_ndesc; i++) {
16420 dtrace_ecbdesc_t *ep = enab->dten_desc[i];
16440 dtrace_enabling_destroy(enab);
16448 if (nhelpers < enab->dten_ndesc)
16452 dtrace_enabling_destroy(enab);
17046 dtrace_enabling_t *enab;
17177 if ((enab = dtrace_anon.dta_enabling) != NULL)
17178 (void) dtrace_enabling_match(enab, NULL);
17669 dtrace_enabling_t *enab = NULL;
17699 if (dtrace_dof_slurp(dof, vstate, cr, &enab, 0, B_TRUE) != 0) {
17707 dtrace_enabling_destroy(enab);
17714 if ((err = dtrace_enabling_match(enab, rv)) == 0) {
17715 err = dtrace_enabling_retain(enab);
17717 dtrace_enabling_destroy(enab);