Lines Matching refs:ddp

40 dt_decl_check(dt_decl_t *ddp)  in dt_decl_check()  argument
42 if (ddp->dd_kind == CTF_K_UNKNOWN) in dt_decl_check()
43 return (ddp); /* nothing to check if the type is not yet set */ in dt_decl_check()
45 if (ddp->dd_name != NULL && strcmp(ddp->dd_name, "char") == 0 && in dt_decl_check()
46 (ddp->dd_attr & (DT_DA_SHORT | DT_DA_LONG | DT_DA_LONGLONG))) { in dt_decl_check()
51 if (ddp->dd_name != NULL && strcmp(ddp->dd_name, "void") == 0 && in dt_decl_check()
52 (ddp->dd_attr & (DT_DA_SHORT | DT_DA_LONG | DT_DA_LONGLONG | in dt_decl_check()
58 if (ddp->dd_kind != CTF_K_INTEGER && in dt_decl_check()
59 (ddp->dd_attr & (DT_DA_SIGNED | DT_DA_UNSIGNED))) { in dt_decl_check()
64 if (ddp->dd_kind != CTF_K_INTEGER && ddp->dd_kind != CTF_K_FLOAT && in dt_decl_check()
65 (ddp->dd_attr & (DT_DA_LONG | DT_DA_LONGLONG))) { in dt_decl_check()
71 return (ddp); in dt_decl_check()
77 dt_decl_t *ddp = malloc(sizeof (dt_decl_t)); in dt_decl_alloc() local
79 if (ddp == NULL) in dt_decl_alloc()
82 ddp->dd_kind = kind; in dt_decl_alloc()
83 ddp->dd_attr = 0; in dt_decl_alloc()
84 ddp->dd_ctfp = NULL; in dt_decl_alloc()
85 ddp->dd_type = CTF_ERR; in dt_decl_alloc()
86 ddp->dd_name = name; in dt_decl_alloc()
87 ddp->dd_node = NULL; in dt_decl_alloc()
88 ddp->dd_next = NULL; in dt_decl_alloc()
90 return (ddp); in dt_decl_alloc()
94 dt_decl_free(dt_decl_t *ddp) in dt_decl_free() argument
98 for (; ddp != NULL; ddp = ndp) { in dt_decl_free()
99 ndp = ddp->dd_next; in dt_decl_free()
100 free(ddp->dd_name); in dt_decl_free()
101 dt_node_list_free(&ddp->dd_node); in dt_decl_free()
102 free(ddp); in dt_decl_free()
110 dt_decl_t *ddp = dsp->ds_decl; in dt_decl_reset() local
112 while (ddp->dd_next != NULL) { in dt_decl_reset()
113 dsp->ds_decl = ddp->dd_next; in dt_decl_reset()
114 ddp->dd_next = NULL; in dt_decl_reset()
115 dt_decl_free(ddp); in dt_decl_reset()
116 ddp = dsp->ds_decl; in dt_decl_reset()
121 dt_decl_push(dt_decl_t *ddp) in dt_decl_push() argument
132 assert(ddp->dd_next == NULL); in dt_decl_push()
133 ddp->dd_next = top; in dt_decl_push()
134 dsp->ds_decl = ddp; in dt_decl_push()
136 return (ddp); in dt_decl_push()
143 dt_decl_t *ddp = dt_decl_top(); in dt_decl_pop() local
153 return (ddp); in dt_decl_pop()
177 dt_decl_t *ddp = yypcb->pcb_dstack.ds_decl; in dt_decl_top() local
179 if (ddp == NULL) in dt_decl_top()
182 if (ddp->dd_kind == CTF_K_UNKNOWN && ddp->dd_name == NULL) { in dt_decl_top()
183 ddp->dd_kind = CTF_K_INTEGER; in dt_decl_top()
184 (void) dt_decl_check(ddp); in dt_decl_top()
187 return (ddp); in dt_decl_top()
194 dt_decl_t *ddp = dsp->ds_decl; in dt_decl_ident() local
204 if (ddp == NULL) in dt_decl_ident()
205 ddp = dt_decl_push(dt_decl_alloc(CTF_K_UNKNOWN, NULL)); in dt_decl_ident()
207 return (ddp); in dt_decl_ident()
232 dt_decl_t *ddp = yypcb->pcb_dstack.ds_decl; in dt_decl_spec() local
234 if (ddp == NULL) in dt_decl_spec()
244 if (ddp->dd_name != NULL && kind == CTF_K_TYPEDEF) { in dt_decl_spec()
250 if (ddp->dd_name != NULL || ddp->dd_kind != CTF_K_UNKNOWN) in dt_decl_spec()
253 ddp->dd_kind = kind; in dt_decl_spec()
254 ddp->dd_name = name; in dt_decl_spec()
256 return (dt_decl_check(ddp)); in dt_decl_spec()
262 dt_decl_t *ddp = yypcb->pcb_dstack.ds_decl; in dt_decl_attr() local
264 if (ddp == NULL) { in dt_decl_attr()
265 ddp = dt_decl_push(dt_decl_alloc(CTF_K_UNKNOWN, NULL)); in dt_decl_attr()
266 ddp->dd_attr = attr; in dt_decl_attr()
267 return (ddp); in dt_decl_attr()
270 if ((attr & DT_DA_LONG) && (ddp->dd_attr & DT_DA_LONGLONG)) { in dt_decl_attr()
275 if ((attr & DT_DA_SHORT) && (ddp->dd_attr & DT_DA_SHORT)) { in dt_decl_attr()
280 if ((attr & DT_DA_SIGNED) && (ddp->dd_attr & DT_DA_SIGNED)) { in dt_decl_attr()
285 if ((attr & DT_DA_UNSIGNED) && (ddp->dd_attr & DT_DA_UNSIGNED)) { in dt_decl_attr()
290 if (attr == DT_DA_LONG && (ddp->dd_attr & DT_DA_LONG)) { in dt_decl_attr()
291 ddp->dd_attr &= ~DT_DA_LONG; in dt_decl_attr()
295 ddp->dd_attr |= attr; in dt_decl_attr()
296 return (dt_decl_check(ddp)); in dt_decl_attr()
387 dt_decl_t *ddp = dt_decl_push(dt_decl_alloc(CTF_K_ARRAY, NULL)); in dt_decl_array() local
389 dt_decl_t *ndp = ddp; in dt_decl_array()
400 if (ndp != ddp) { in dt_decl_array()
405 dsp->ds_decl = ddp->dd_next; in dt_decl_array()
406 ddp->dd_next = ndp->dd_next; in dt_decl_array()
407 ndp->dd_next = ddp; in dt_decl_array()
410 if (ddp->dd_next->dd_name != NULL && in dt_decl_array()
411 strcmp(ddp->dd_next->dd_name, "void") == 0) in dt_decl_array()
415 dnp = ddp->dd_node = dt_node_cook(dnp, DT_IDFLG_REF); in dt_decl_array()
427 ddp->dd_node = dnp; in dt_decl_array()
431 return (ddp); in dt_decl_array()
448 dt_decl_t *ddp = dt_decl_alloc(CTF_K_FUNCTION, NULL); in dt_decl_func() local
450 ddp->dd_node = dnp; in dt_decl_func()
456 return (dt_decl_push(ddp)); in dt_decl_func()
462 return (dt_decl_push(ddp)); in dt_decl_func()
464 ddp->dd_next = pdp->dd_next; in dt_decl_func()
465 pdp->dd_next = ddp; in dt_decl_func()
479 dt_decl_t *ddp = dt_decl_spec(kind, name); in dt_decl_sou() local
513 ddp->dd_ctfp = ctfp; in dt_decl_sou()
514 ddp->dd_type = type; in dt_decl_sou()
517 return (ddp); in dt_decl_sou()
524 dt_decl_t *ddp = yypcb->pcb_dstack.ds_decl; in dt_decl_member() local
539 if (ddp == NULL) in dt_decl_member()
545 if (ddp->dd_kind == CTF_K_UNKNOWN && ddp->dd_name == NULL) { in dt_decl_member()
546 ddp->dd_kind = CTF_K_INTEGER; in dt_decl_member()
547 (void) dt_decl_check(ddp); in dt_decl_member()
550 if (dt_decl_type(ddp, &dtt) != 0) in dt_decl_member()
676 dt_decl_t *ddp = dt_decl_spec(CTF_K_ENUM, name); in dt_decl_enum() local
702 ddp->dd_ctfp = ctfp; in dt_decl_enum()
703 ddp->dd_type = type; in dt_decl_enum()
706 return (ddp); in dt_decl_enum()
828 dt_decl_type(dt_decl_t *ddp, dtrace_typeinfo_t *tip) in dt_decl_type() argument
850 if (ddp->dd_attr & DT_DA_USER) in dt_decl_type()
857 if (ddp->dd_ctfp != NULL && in dt_decl_type()
858 (dmp = dt_module_lookup_by_ctf(dtp, ddp->dd_ctfp)) != NULL) { in dt_decl_type()
860 tip->dtt_ctfp = ddp->dd_ctfp; in dt_decl_type()
861 tip->dtt_type = ddp->dd_type; in dt_decl_type()
872 if (ddp->dd_kind == CTF_K_FUNCTION) { in dt_decl_type()
884 if (ddp->dd_kind == CTF_K_POINTER) { in dt_decl_type()
885 if (ddp->dd_next->dd_kind == CTF_K_FUNCTION) { in dt_decl_type()
892 if ((rv = dt_decl_type(ddp->dd_next, tip)) == 0 && in dt_decl_type()
927 if (ddp->dd_kind == CTF_K_ARRAY) { in dt_decl_type()
932 if (ddp->dd_node != NULL && in dt_decl_type()
933 ddp->dd_node->dn_kind == DT_NODE_TYPE) { in dt_decl_type()
940 if ((rv = dt_decl_type(ddp->dd_next, tip)) != 0) in dt_decl_type()
969 r.ctr_nelems = ddp->dd_node ? in dt_decl_type()
970 (uint_t)ddp->dd_node->dn_value : 0; in dt_decl_type()
990 name = alloca(ddp->dd_name ? strlen(ddp->dd_name) + 20 : 20); in dt_decl_type()
993 switch (ddp->dd_kind) { in dt_decl_type()
996 if (ddp->dd_attr & DT_DA_SIGNED) in dt_decl_type()
998 if (ddp->dd_attr & DT_DA_UNSIGNED) in dt_decl_type()
1000 if (ddp->dd_attr & DT_DA_SHORT) in dt_decl_type()
1002 if (ddp->dd_attr & DT_DA_LONG) in dt_decl_type()
1004 if (ddp->dd_attr & DT_DA_LONGLONG) in dt_decl_type()
1006 if (ddp->dd_attr == 0 && ddp->dd_name == NULL) in dt_decl_type()
1022 "bad decl kind %u\n", ddp->dd_kind); in dt_decl_type()
1030 if (ddp->dd_name != NULL && (ddp->dd_kind != CTF_K_INTEGER || in dt_decl_type()
1031 (ddp->dd_attr & (DT_DA_SHORT | DT_DA_LONG | DT_DA_LONGLONG)) == 0)) in dt_decl_type()
1032 (void) strcat(name, ddp->dd_name); in dt_decl_type()
1042 switch (ddp->dd_kind) { in dt_decl_type()
1047 ddp->dd_name, ddp->dd_kind); in dt_decl_type()
1061 ddp->dd_ctfp = dmp->dm_ctfp; in dt_decl_type()
1062 ddp->dd_type = type; in dt_decl_type()