Print this page
4474 DTrace Userland CTF Support
4475 DTrace userland Keyword
4476 DTrace tests should be better citizens
4479 pid provider types
4480 dof emulation missing checks
Reviewed by: Bryan Cantrill <bryan@joyent.com>

@@ -19,11 +19,12 @@
  * CDDL HEADER END
  */
 
 /*
  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013 Joyent, Inc. All rights reserved.
  */
 
 #include <strings.h>
 #include <stdlib.h>
 #include <limits.h>

@@ -773,11 +774,11 @@
         yyintprefix = 0;
         yyintsuffix[0] = '\0';
         yyintdecimal = 0;
 
         dnp = dt_node_int(value);
-        dt_node_type_assign(dnp, dsp->ds_ctfp, dsp->ds_type);
+        dt_node_type_assign(dnp, dsp->ds_ctfp, dsp->ds_type, B_FALSE);
 
         if ((inp = malloc(sizeof (dt_idnode_t))) == NULL)
                 longjmp(yypcb->pcb_jmpbuf, EDT_NOMEM);
 
         /*

@@ -815,17 +816,22 @@
         char n[DT_TYPE_NAMELEN];
         uint_t flag;
         char *name;
         int rv;
 
+        tip->dtt_flags = 0;
+
         /*
          * Based on our current #include depth and decl stack depth, determine
          * which dynamic CTF module and scope to use when adding any new types.
          */
         dmp = yypcb->pcb_idepth ? dtp->dt_cdefs : dtp->dt_ddefs;
         flag = yypcb->pcb_dstack.ds_next ? CTF_ADD_NONROOT : CTF_ADD_ROOT;
 
+        if (ddp->dd_attr & DT_DA_USER)
+                tip->dtt_flags = DTT_FL_USER;
+
         /*
          * If we have already cached a CTF type for this decl, then we just
          * return the type information for the cached type.
          */
         if (ddp->dd_ctfp != NULL &&