Lines Matching defs:enab

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