Lines Matching refs:enab

9649 dtrace_probe_enable(dtrace_probedesc_t *desc, dtrace_enabling_t *enab)  argument
9664 (void) dtrace_ecb_create_enable(NULL, enab);
9669 dtrace_cred2priv(enab->dten_vstate->dtvs_state->dts_cred.dcr_cred,
9673 enab));
12139 dtrace_enabling_t *enab) argument
12145 dtrace_ecbdesc_t *desc = enab->dten_current;
12211 if ((enab->dten_error = dtrace_ecb_action_add(ecb, act)) != 0) {
12217 if ((enab->dten_error = dtrace_ecb_resize(ecb)) != 0) {
12229 dtrace_enabling_t *enab = arg; local
12230 dtrace_state_t *state = enab->dten_vstate->dtvs_state;
12234 if (probe != NULL && probe->dtpr_gen < enab->dten_probegen) {
12243 if ((ecb = dtrace_ecb_create(state, probe, enab)) == NULL)
12923 dtrace_enabling_t *enab; local
12925 enab = kmem_zalloc(sizeof (dtrace_enabling_t), KM_SLEEP);
12926 enab->dten_vstate = vstate;
12928 return (enab);
12932 dtrace_enabling_add(dtrace_enabling_t *enab, dtrace_ecbdesc_t *ecb) argument
12941 ASSERT(enab->dten_probegen == 0);
12942 ASSERT(enab->dten_next == NULL && enab->dten_prev == NULL);
12944 if (enab->dten_ndesc < enab->dten_maxdesc) {
12945 enab->dten_desc[enab->dten_ndesc++] = ecb;
12949 osize = enab->dten_maxdesc * sizeof (dtrace_enabling_t *);
12951 if (enab->dten_maxdesc == 0) {
12952 enab->dten_maxdesc = 1;
12954 enab->dten_maxdesc <<= 1;
12957 ASSERT(enab->dten_ndesc < enab->dten_maxdesc);
12959 nsize = enab->dten_maxdesc * sizeof (dtrace_enabling_t *);
12961 bcopy(enab->dten_desc, ndesc, osize);
12962 if (enab->dten_desc != NULL)
12963 kmem_free(enab->dten_desc, osize);
12965 enab->dten_desc = ndesc;
12966 enab->dten_desc[enab->dten_ndesc++] = ecb;
12970 dtrace_enabling_addlike(dtrace_enabling_t *enab, dtrace_ecbdesc_t *ecb, argument
12994 dtrace_enabling_add(enab, new);
12998 dtrace_enabling_dump(dtrace_enabling_t *enab) argument
13002 for (i = 0; i < enab->dten_ndesc; i++) {
13003 dtrace_probedesc_t *desc = &enab->dten_desc[i]->dted_probe;
13018 dtrace_enabling_destroy(dtrace_enabling_t *enab) argument
13022 dtrace_vstate_t *vstate = enab->dten_vstate;
13026 for (i = 0; i < enab->dten_ndesc; i++) {
13030 ep = enab->dten_desc[i];
13043 if (enab->dten_desc != NULL)
13044 kmem_free(enab->dten_desc,
13045 enab->dten_maxdesc * sizeof (dtrace_enabling_t *));
13051 if (enab->dten_prev != NULL || enab->dten_next != NULL ||
13052 dtrace_retained == enab) {
13053 ASSERT(enab->dten_vstate->dtvs_state != NULL);
13054 ASSERT(enab->dten_vstate->dtvs_state->dts_nretained > 0);
13055 enab->dten_vstate->dtvs_state->dts_nretained--;
13059 if (enab->dten_prev == NULL) {
13060 if (dtrace_retained == enab) {
13061 dtrace_retained = enab->dten_next;
13067 ASSERT(enab != dtrace_retained);
13069 enab->dten_prev->dten_next = enab->dten_next;
13072 if (enab->dten_next != NULL) {
13074 enab->dten_next->dten_prev = enab->dten_prev;
13077 kmem_free(enab, sizeof (dtrace_enabling_t));
13081 dtrace_enabling_retain(dtrace_enabling_t *enab) argument
13086 ASSERT(enab->dten_next == NULL && enab->dten_prev == NULL);
13087 ASSERT(enab->dten_vstate != NULL);
13089 state = enab->dten_vstate->dtvs_state;
13102 dtrace_retained = enab;
13106 enab->dten_next = dtrace_retained;
13107 dtrace_retained->dten_prev = enab;
13108 dtrace_retained = enab;
13117 dtrace_enabling_t *new, *enab; local
13132 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) {
13139 ASSERT(enab->dten_vstate->dtvs_state != NULL);
13141 if (enab->dten_vstate->dtvs_state != state)
13148 for (i = 0; i < enab->dten_ndesc; i++) {
13149 dtrace_ecbdesc_t *ep = enab->dten_desc[i];
13184 dtrace_enabling_t *enab, *next; local
13192 for (enab = dtrace_retained; enab != NULL; enab = next) {
13193 next = enab->dten_next;
13199 ASSERT(enab->dten_vstate->dtvs_state != NULL);
13201 if (enab->dten_vstate->dtvs_state == state) {
13203 dtrace_enabling_destroy(enab);
13211 dtrace_enabling_match(dtrace_enabling_t *enab, int *nmatched) argument
13219 for (i = 0; i < enab->dten_ndesc; i++) {
13220 dtrace_ecbdesc_t *ep = enab->dten_desc[i];
13222 enab->dten_current = ep;
13223 enab->dten_error = 0;
13229 if ((matched = dtrace_probe_enable(&ep->dted_probe, enab)) < 0)
13234 if (enab->dten_error != 0) {
13251 enab->dten_error);
13254 return (enab->dten_error);
13258 enab->dten_probegen = dtrace_probegen;
13268 dtrace_enabling_t *enab; local
13283 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) {
13285 cred_t *cr = enab->dten_vstate->dtvs_state->dts_cred.dcr_cred;
13290 (void) dtrace_enabling_match(enab, NULL);
13310 dtrace_enabling_t *enab; local
13313 for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) {
13314 ASSERT(enab->dten_vstate->dtvs_state != NULL);
13316 if (enab->dten_vstate->dtvs_state != state)
13326 if (enab->dten_primed)
13329 for (i = 0; i < enab->dten_ndesc; i++) {
13330 enab->dten_current = enab->dten_desc[i];
13331 (void) dtrace_probe_enable(NULL, enab);
13334 enab->dten_primed = 1;
13360 dtrace_enabling_t *enab; local
13365 for (enab = dtrace_retained; enab != NULL;
13366 enab = enab->dten_next) {
13367 for (i = 0; i < enab->dten_ndesc; i++) {
13368 desc = enab->dten_desc[i]->dted_probe;
14422 dtrace_enabling_t *enab; local
14585 if ((enab = *enabp) == NULL)
14586 enab = *enabp = dtrace_enabling_create(vstate);
14596 dtrace_enabling_destroy(enab);
14601 dtrace_enabling_add(enab, ep);
16751 dtrace_enabling_t *enab = NULL; local
16761 if ((rv = dtrace_dof_slurp(dof, vstate, NULL, &enab, dhp->dofhp_addr,
16778 dtrace_enabling_destroy(enab);
16789 for (i = 0; i < enab->dten_ndesc; i++) {
16790 dtrace_ecbdesc_t *ep = enab->dten_desc[i];
16810 dtrace_enabling_destroy(enab);
16818 if (nhelpers < enab->dten_ndesc)
16822 dtrace_enabling_destroy(enab);
17448 dtrace_enabling_t *enab; local
17579 if ((enab = dtrace_anon.dta_enabling) != NULL)
17580 (void) dtrace_enabling_match(enab, NULL);
18139 dtrace_enabling_t *enab = NULL; local
18169 if (dtrace_dof_slurp(dof, vstate, cr, &enab, 0, B_TRUE) != 0) {
18177 dtrace_enabling_destroy(enab);
18184 if ((err = dtrace_enabling_match(enab, rv)) == 0) {
18185 err = dtrace_enabling_retain(enab);
18187 dtrace_enabling_destroy(enab);