Home | History | Annotate | Download | only in common

Lines Matching defs:ddp

43 dt_decl_check(dt_decl_t *ddp)
45 if (ddp->dd_kind == CTF_K_UNKNOWN)
46 return (ddp); /* nothing to check if the type is not yet set */
48 if (ddp->dd_name != NULL && strcmp(ddp->dd_name, "char") == 0 &&
49 (ddp->dd_attr & (DT_DA_SHORT | DT_DA_LONG | DT_DA_LONGLONG))) {
54 if (ddp->dd_name != NULL && strcmp(ddp->dd_name, "void") == 0 &&
55 (ddp->dd_attr & (DT_DA_SHORT | DT_DA_LONG | DT_DA_LONGLONG |
61 if (ddp->dd_kind != CTF_K_INTEGER &&
62 (ddp->dd_attr & (DT_DA_SIGNED | DT_DA_UNSIGNED))) {
67 if (ddp->dd_kind != CTF_K_INTEGER && ddp->dd_kind != CTF_K_FLOAT &&
68 (ddp->dd_attr & (DT_DA_LONG | DT_DA_LONGLONG))) {
74 return (ddp);
80 dt_decl_t *ddp = malloc(sizeof (dt_decl_t));
82 if (ddp == NULL)
85 ddp->dd_kind = kind;
86 ddp->dd_attr = 0;
87 ddp->dd_ctfp = NULL;
88 ddp->dd_type = CTF_ERR;
89 ddp->dd_name = name;
90 ddp->dd_node = NULL;
91 ddp->dd_next = NULL;
93 return (ddp);
97 dt_decl_free(dt_decl_t *ddp)
101 for (; ddp != NULL; ddp = ndp) {
102 ndp = ddp->dd_next;
103 free(ddp->dd_name);
104 dt_node_list_free(&ddp->dd_node);
105 free(ddp);
113 dt_decl_t *ddp = dsp->ds_decl;
115 while (ddp->dd_next != NULL) {
116 dsp->ds_decl = ddp->dd_next;
117 ddp->dd_next = NULL;
118 dt_decl_free(ddp);
119 ddp = dsp->ds_decl;
124 dt_decl_push(dt_decl_t *ddp)
135 assert(ddp->dd_next == NULL);
136 ddp->dd_next = top;
137 dsp->ds_decl = ddp;
139 return (ddp);
146 dt_decl_t *ddp = dt_decl_top();
156 return (ddp);
180 dt_decl_t *ddp = yypcb->pcb_dstack.ds_decl;
182 if (ddp == NULL)
185 if (ddp->dd_kind == CTF_K_UNKNOWN && ddp->dd_name == NULL) {
186 ddp->dd_kind = CTF_K_INTEGER;
187 (void) dt_decl_check(ddp);
190 return (ddp);
197 dt_decl_t *ddp = dsp->ds_decl;
207 if (ddp == NULL)
208 ddp = dt_decl_push(dt_decl_alloc(CTF_K_UNKNOWN, NULL));
210 return (ddp);
235 dt_decl_t *ddp = yypcb->pcb_dstack.ds_decl;
237 if (ddp == NULL)
247 if (ddp->dd_name != NULL && kind == CTF_K_TYPEDEF) {
253 if (ddp->dd_name != NULL || ddp->dd_kind != CTF_K_UNKNOWN)
256 ddp->dd_kind = kind;
257 ddp->dd_name = name;
259 return (dt_decl_check(ddp));
265 dt_decl_t *ddp = yypcb->pcb_dstack.ds_decl;
267 if (ddp == NULL) {
268 ddp = dt_decl_push(dt_decl_alloc(CTF_K_UNKNOWN, NULL));
269 ddp->dd_attr = attr;
270 return (ddp);
273 if (attr == DT_DA_LONG && (ddp->dd_attr & DT_DA_LONG)) {
274 ddp->dd_attr &= ~DT_DA_LONG;
278 ddp->dd_attr |= attr;
279 return (dt_decl_check(ddp));
370 dt_decl_t *ddp = dt_decl_push(dt_decl_alloc(CTF_K_ARRAY, NULL));
372 dt_decl_t *ndp = ddp;
383 if (ndp != ddp) {
388 dsp->ds_decl = ddp->dd_next;
389 ddp->dd_next = ndp->dd_next;
390 ndp->dd_next = ddp;
393 if (ddp->dd_next->dd_name != NULL &&
394 strcmp(ddp->dd_next->dd_name, "void") == 0)
398 dnp = ddp->dd_node = dt_node_cook(dnp, DT_IDFLG_REF);
410 ddp->dd_node = dnp;
414 return (ddp);
431 dt_decl_t *ddp = dt_decl_alloc(CTF_K_FUNCTION, NULL);
433 ddp->dd_node = dnp;
439 return (dt_decl_push(ddp));
445 return (dt_decl_push(ddp));
447 ddp->dd_next = pdp->dd_next;
448 pdp->dd_next = ddp;
462 dt_decl_t *ddp = dt_decl_spec(kind, name);
496 ddp->dd_ctfp = ctfp;
497 ddp->dd_type = type;
500 return (ddp);
507 dt_decl_t *ddp = yypcb->pcb_dstack.ds_decl;
522 if (ddp == NULL)
528 if (ddp->dd_kind == CTF_K_UNKNOWN && ddp->dd_name == NULL) {
529 ddp->dd_kind = CTF_K_INTEGER;
530 (void) dt_decl_check(ddp);
533 if (dt_decl_type(ddp, &dtt) != 0)
659 dt_decl_t *ddp = dt_decl_spec(CTF_K_ENUM, name);
685 ddp->dd_ctfp = ctfp;
686 ddp->dd_type = type;
689 return (ddp);
812 dt_decl_type(dt_decl_t *ddp, dtrace_typeinfo_t *tip)
834 if (ddp->dd_attr & DT_DA_USER)
841 if (ddp->dd_ctfp != NULL &&
842 (dmp = dt_module_lookup_by_ctf(dtp, ddp->dd_ctfp)) != NULL) {
844 tip->dtt_ctfp = ddp->dd_ctfp;
845 tip->dtt_type = ddp->dd_type;
856 if (ddp->dd_kind == CTF_K_FUNCTION) {
868 if (ddp->dd_kind == CTF_K_POINTER) {
869 if (ddp->dd_next->dd_kind == CTF_K_FUNCTION) {
876 if ((rv = dt_decl_type(ddp->dd_next, tip)) == 0 &&
911 if (ddp->dd_kind == CTF_K_ARRAY) {
916 if (ddp->dd_node != NULL &&
917 ddp->dd_node->dn_kind == DT_NODE_TYPE) {
924 if ((rv = dt_decl_type(ddp->dd_next, tip)) != 0)
953 r.ctr_nelems = ddp->dd_node ?
954 (uint_t)ddp->dd_node->dn_value : 0;
974 name = alloca(ddp->dd_name ? strlen(ddp->dd_name) + 20 : 20);
977 switch (ddp->dd_kind) {
980 if (ddp->dd_attr & DT_DA_SIGNED)
982 if (ddp->dd_attr & DT_DA_UNSIGNED)
984 if (ddp->dd_attr & DT_DA_SHORT)
986 if (ddp->dd_attr & DT_DA_LONG)
988 if (ddp->dd_attr & DT_DA_LONGLONG)
990 if (ddp->dd_attr == 0 && ddp->dd_name == NULL)
1006 "bad decl kind %u\n", ddp->dd_kind);
1014 if (ddp->dd_name != NULL && (ddp->dd_kind != CTF_K_INTEGER ||
1015 (ddp->dd_attr & (DT_DA_SHORT | DT_DA_LONG | DT_DA_LONGLONG)) == 0))
1016 (void) strcat(name, ddp->dd_name);
1026 switch (ddp->dd_kind) {
1031 ddp->dd_name, ddp->dd_kind);
1045 ddp->dd_ctfp = dmp->dm_ctfp;
1046 ddp->dd_type = type;